Process modelling

From OpenKM Documentation
Jump to: navigation, search

Contents

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

  • Nodes
  • Transitions
  • Actions
Workflow example simple.png

To create a process definition in a graphical way, you can use jBPM Graphical Process Designer. This tool is packaged as a Eclipse plugin.

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

Nodes

The define 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:

Start node

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

Jbpm node start.png

End node

End nodes define 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.

Jbpm node end.png

Task node

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

Jbpm node task.png

Node node

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

Jbpm node node.png

State node

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 usefull if the process should wait for an external system.

Jbpm node state.png

Decision node

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.
Jbpm node decision.png

Fork node

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

Jbpm node fork.png

Join node

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

Jbpm node join.png

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.