Business Process Definition - BPDs : IBM BPM

Lanes
Sequence Lines
BPD Overview settings
Activities
Events
BPD notes

BPD is a diagram that represents the overall view and flow of the process.
The diagram style of a Business Process Definition conforms to the industry standard Business Process Model and Notation (BPMN) format.

 
This main area of the window is called the canvas and is where we visually model the process solution we wish to construct. Icons representing the activities and other elements of the process can be dragged from the palette of available types shown on the right of the window. These icons can be dropped onto the canvas and wired into place using Sequence Lines. Each icon represents a "step" in the process.
The icons conform to the Business Process Model and Notation (BPMN) style and their interpretation is also that of BPMN.

The palette of available icons are
Lanes:
Here we see an example of a BPD pool with a couple of lanes:

Additional lanes can be added by dragging a lane icon from the tools palette:




When a lane is added to the diagram we can specify some primary attributes:


Every lane has a Name attribute so we should supply a meaningful name that will remind us of its purpose. A Presentation Color can be assigned which will change the background color of the lane. This can be especially useful if you have many lanes and need to read to the far right in order to see all of the process content. The Name of the lane may not always be immediately visible but if colored correctly, will highlight its intent.
For human services, we can assign the set of users that should be associated with the lane. This set of users is known as a Team. When a human service is added as a step on the lane, if no specific human routing instructions are supplied, then the human service will be routed to the members of the Team associated with the lane.
We can re-order the lanes in a pool from their existing values. By right clicking in a lane, a context menu is shown:
Sequence Lines
The lines which are drawn which connect individual steps in a BPD are called Sequence Lines.

The control point can be dragged with the mouse to re-orient the line.


BPD Overview settings

Exposing the Process
The details of who can start an instance of the process and who has authority to examine the details of an instance is defined in the Exposing section. There are three types of exposable information.
Those are:
• Expose to start – Who can start a new instance of a process from the Process Portal web pages
• Expose Business Data – Who can see the data associated with a process in an ad-hoc report
• Expose Performance Metrics – Who can see the performance data collected for a process

BPD Views Settings
A tab on the BPD editor for a BPD is called "Views":
Within this section of the BPD editor, BPM Human Services can be declared which will be run within Process Portal when a request to look at the details of an instance of this type of Process is requested.

Activities are the declarations that some work is going to be performed.
BPM provides a set of defined possibilities for implementing an activity.
These are:

The initial properties of an activity look as follows:

• None – No implementation is associated with this activity. This is most useful when the diagram is initially being drawn and we are not yet ready to make a decision on how this step will best be implemented.
• User Task – Implemented as a Human Service. This step in the process will be performed by a human being
• Decision Task – Implemented as a decision service where rules will be executed to make a business decision 
• System Task – Implemented as a technical or straight through step without human interaction 
◦ Ajax Service
◦ Integration Service
◦ General System Service
• Script – Implemented as a piece or snippet of in-line JavaScript code. This is most appropriate for one-time data manipulation such as initialization or simple copies of data from one variable to another.
• Sub-process – Implemented as a sequence of additional activities where those activities are contained within this process. Think of the Sub-process activity like a grouping or container.
• Linked Process – Implemented as a call to another process defined separately.
• Event Sub-process – Implemented as a sequence of steps that will be performed concurrently with the main process when an external event occurs.


User Task
The User Task is a step in the BPD that is designed to be performed by a person. The implementation of a User Task is always a Human Service.

Sub-processes
Within a BPD, we can create a sub-process. A sub-process is simply a grouping together of a set of activities into an aggregate area.
This sub-process shares the same variables as the parent. In addition, the name of the steps defined in the sub-process must be distinct from those of the parent. It is as though the steps were placed "in-line" in the parent process and have simply been hidden for readability. An important aspect to note is that there is no re-usability of these sub-process steps. Their hiding in a sub-process is for readability only.
Experimentation has shown that if a Terminate Event is met within a sub-process then the sub process is terminated and control is returned to the step following the sub-process definition.

Linked Processes
An alternative style of creating sub-processes is the notion of the Linked Process. In this story, a separate BPD is created that contains re-usable BPD activities. Input and Output variables are defined which describe the expected inputs and outputs from the linked process. In the calling process, a Linked Process activity is defined and a reference added to the target BPD that should be invoked when the parent reaches it.

Again we can see the marker that indicates that it contains additional steps. Notice the heavy border around the activity which marks it as distinct from a sub-process.
A step in the process can dynamically choose which linked-process to invoke without explicitly having to define the name of the BPD to be called. To achieve this, create a variable of type String and populate its value with the name of the linked-process to invoke. In the Advanced section of the Implementation area, select that variable as the source of the name of the process. At run-time, the variable will be consulted and a dynamic call to the process with that name will be made.
If parameters are to be passed to a dynamically called process then each process that may be potentially selected to be called must have the same set of parameters. Think of this as the dynamically invoked process having a template.
The BPD that is named as the process to be started must have a Start Event contained within it and this will be the starting point for the new sub-process.
When a parent BPD invokes a child BPD any variables passed in as parameters are passed by reference. What this means is that if a child process changes the values of these passed in variables then the changes will also occur in the parent process. Care must be taken here to watch out for unexpected side effects.
The BPD Process ID of the parent is the same Process ID used for the child.

Event Sub-processes 
For certain types of events, we can create a "sub-process" which will be invoked if such an event is detected but is not otherwise handled elsewhere.



Script Activities
An activity can have an implementation type of Script.


Script allows the programmer to include JavaScript code in-line within the BPD process. The JavaScript can utilize the IBPM supplied JavaScript classes. Although this option is exposed to be used it is unlikely to be a good long term strategy. Code entered here is not re-usable by other activities or services. A better idea would be to build a General Service which includes a Server Script element and invoke the General Service.


Data Mapping
Many activities have a Data Mapping section. This is the act of mapping the variables in scope in the BPD to the expected parameters of the service that is to be called by the Activity. This applies to both input parameters and output parameters.
The Data Mapping screen area is split into two columns. One for input mapping (mapping BPD variables to the parameters expected by a service) and the other is for output mapping (mapping returned values from a service to the variables in the BPD). Entry assistance is available to bring up lists of BPD scope variables which can be selected.



Conditional Activities
When an Activity is reached in the BPD, it may not always be applicable to execute this activity but instead it can be skipped over. An attribute of the Activity in Process Designer can be set to achieve this effect.
In the Properties of the Activity a tab called Condition can be selected.


Start Event
The Start Event is a starting node that can be used to indicate the starting point of an instance of a process.

The Start Event activity can be triggered by additional mechanisms. From the Implementation Tab of the Start Event, alternative choices may be made:
The Message choice will cause an instance of the process to be created through the arrival of a corresponding event (UCA).

The Content choice will cause an instance of the process to be created through a new document instance being created in the Enterprise Content Management (ECM) system.


End Event
The End Event is used to model the end of a process. The process instance will come to an end only when all the concurrently executing branches reach their End Events.


The Message End Event ends the current path of the process and fires an event.

Error End Event
If a process detects that an error condition has occurred, it can terminate the remaining and current steps of the process and throw an Exception. This exception can be caught by higher level exception handlers or passed on to the user.
To add this item, drag an End Event activity from the palette and change the implementation type.

Terminate Event
This activity will cause the immediate termination of a process instance. If there are multiple branches of control within the process, the first branch that reaches a terminate event will cause the immediate termination of all branches. Putting it another way, it will close all outstanding tasks and cancel any timers.
A check box on the implementation section of this event allows us to flag it as terminating the entire process instance or just the process part in which the terminate end event is found. This comes into play when we think about linked or sub-processes.


Intermediate Events

Timer Event
It can be dragged and dropped on to the edge of an existing activity. This is called "attaching" a timer event. A link from this timer can then be associated with a different activity. If the timer fires, the linked activity will be called.

Tracking Intermediate Event
A tracking intermediate event is used to generate a data point used in performance reporting on process instances.
Message Intermediate Event
A Message Intermediate Event is always associated with a UCA and a UCA can carry data with it.
The Message Intermediate Event is an Event listener that is used to listen for incoming events within a process instance that is already running. Contrast this with a Message Start Event which will initiate a new instance of a process when a message arrives. The Message Intermediate Event has two flavors.
These are called:
• Stand alone listener
• Attached listener

In the IBPM PD, we can specify a variable whose value must match that of an incoming event's UCA payload in order to be considered a match.


Error Intermediate Event
Control is passed to this event handler when an exception is caught within the implementation of that activity. The exception occurrence details are available within the variable called tw.system.step.error.

Gateways, Conditionals and Joins

Gateways are decision points in the BPD. When reached, an expression is evaluated and based on the outcome of that expression, control flows in different paths. In IBPM, the JavaScript language is used to evaluate the decision's outcome.

The simplest gateway is called the Exclusive Gateway. The outcome of the expression is a Boolean (true or false) outcome. The output of the decision is always that a single path is taken.
Parallel Gateway: It does not have an expression associated with it. When reached, all the paths associated are followed in parallel. Each followed path is termed a branch.

Inclusive Gateway: 
 Like the simple decision, there are expressions involved but in this case, control can flow from this primitive in one or more directions assuming multiple conditions evaluate to true.


It is a synchronizing join and will wait for all possible inputs to arrive before it continues but the magic here is my use of the word "possible" inputs. In this diagram, it will know that a token will arrive only from one of A or B and when one arrives, it will pass on to "C". However, if there were other diagram structures where other tokens could arrive, it will wait for those.

Event gateway:



The event gateway waits for a message to arrive but, if a message has not been delivered within a time period, the gateway times out and follows the path associated with the timer. This allows us to wait for a message and, if none has arrived, we can timeout.

BPD Notes
Notes are documentation items added to the BPD diagram. They appear as yellow rectangles into which text can be entered. They have no operational semantics and do not affect the execution of the process.


Reference: Kolban



Comments

Popular posts from this blog

IBM BPM Overview, Architecture and Components