BPMN stands for Business Process Modeling Notation and is an executable graphical notation for business processes. With the graphical notation capability, business analysts can develop the processes and then technical personnel can build the executable process that can be executed and followed by the management.
A business process in BPMN is a collection of business activities that is focused on a particular business goal or a use case. A process deployment can have one or more such processes. The following is a sample business process that is graphically visualized using the Activiti Designer Eclipse plugin.
Figure: User Approval Process
This is a simple user approval process. The process starts with a none start event followed by two user tasks, i.e., the registration form getting filled by a front officer followed by the approval from a user in a managerial position. The process ends in a none end event by approving or rejecting the user. Each of these steps are discussed below.
In order to start a process, a process definition must be deployed in the BPMN engine. Deployed processes can then be started as required. In this scenario, when there is a new arrival, a front officer can start a new process. So the none start event will create a new process instance and the engine will execute the process until it reaches a wait state. Now, a new task has been persisted in the system.
A none start event technically indicates that the start time of the task is not defined. There are other start events such as Timer Start Event, Message Start Event, Signal Start Event, etc.
Now the process waits at the ‘Fill registration Form’ step. This is called a User Task in BPMN. User tasks are tasks that should be completed by human users or an external party to the activity engine. A user task should have authorized users or user groups. So a candidate user can claim and complete the task when a task is created. In this scenario, the front officer can be assigned for the first user task to fill the registration form.
After he completes the task, the engine will continue and halt on the second user task. This task can be assigned to the manager user group so that any of the managers can claim the task and complete it. Once a task is claimed, it will disappear from the task lists of other users.
An end event marks the end of a process instance. In this scenario, the process will end after the approval in a none end event. Since this is a none end event, the engine will not do anything other than finishing the process.
There are other types of end events such as Error End Event, that will throw an error, and Cancel End Event, that would cancel the BPMN transaction, etc.
The scenario explained here is a very simple scenario to introduce the basics. There are a number of constructs available in BPMN 2.0, that could address complex business scenarios. The following are few more useful constructs.
- Gateways that act as decisions. This way, a manager could reject the new user registration, which could return back to the Fill Registration Form user task. .
- Variables, such that we can store or reference the user information so that it can be visualized in the form provided to managers for approval.
- Service task at the end of the process that will send the report to every shareholder.