Process modelling

We are going to describe the elements which define a jBPM process. A process is composed by:

  • Nodes
  • Transitions
  • Actions

To create a process definition in a graphical way, you can use jBPM Graphical Process Designer.

This tool is packaged as an Eclipse plug-in. If you decide to use OpenKM Portable Development Environment this plug-in is already installed.

For a more detailed description, please read jBPM User Guide: Process Modeling. Also is recommended to read:

Basics

Nodes

Defines the states of the process definition. They are connected by transitions. Both define the different path which can be followed in a running process definition. A running process definition is called process instance.

There are several types of nodes:

TypeImageDescription

Start

The start node defines the process entry point. Only one start node is permitted.

End

End nodes defines the end of the process execution. A process may have several end nodes. In this case the process finish when the process arrives to any of these end nodes.

Task

A task node represents one or more tasks that are to be performed by humans.

Node

You can define the behaviour using a Action element, which will be executed when the process arrives to the node.

State

A state is a bare-bones wait state. The difference with a task node is that no task instances will be created in any task list. This can be useful if the process should wait for an external system.

Decision

 

There are 2 ways to model a decision. The distinction between the two is based on *who* is making the decision.

  • When the decision is to be taken by the process, a decision node should be used.
  • When the decision is taken by an external party, you should use multiple transitions leaving a state or wait state node.

Fork

A fork node splits one path of execution into multiple concurrent paths of execution.

Join

The join node take all these concurrent executions before continue with the process execution.

Transitions

Transitions have a source node and a destination node. The source node is represented with the property from and the destination node is represented by the property to. A transition can optionally have a name.

Actions

Actions are pieces of Java code that are executed upon events in the process execution. The main event types are entering a node, leaving a node and taking a transition.

Note the difference between an action that is placed in an event versus an action that is placed in a node:

  • Actions that are put in an event are executed when the event fires. Actions on events have no way to influence the flow of control of the process.
  • An action that is put on a node has the responsibility of propagating the execution.