You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

You need to perform two steps to implement executional parts to your model:

  1. Provide all necessary data types and operations for the implementation of your process. These types and operations reside in the Service panel of the BPMN editor.
    • You can use the Base Types that are provided with the Designer.
    • You can create other necessary types yourself in the Implementation section.
      Refer to Modeling Data Mapping for further information.
    • You can import a library that provides additional types and operations.
      Refer to Designer Administration > Libraries for further information.
  2. In the second step, select data types and operations from the Service panel, and add them to your process at the right places.
    • How this is done will be explained in this chapter.

Differences of Operations

Operations in a library can be static or non-static operations.

Use the execution pane context menu to display the parameter names / pin names.

  • Static operations are like functions. They have no self context, and thus no target pin - only input, output, and return pins.

  • Non-static operations provide a self context. When added to the execution pane, they provide a target pin in addition to the parameters. Here, the user should provide the related element.

You have two options to determine the target of a non-static operation:

  • Check your library: The needed target is the class where the operation resides in.
  • Hover over the target pin: The type of the expected target will be displayed on the execution pane.

Adding Operations

Select the operation you want to use from the library panel.

Drag & drop the operation to the operations flow in the execution pane.

For further information see also page Adding Variables.

When the operation has been added to the operations flow, the displayed pins indicate needed object flows.

Hover over a pin to see the name and the type of the expected object flow.

Pins on the left of the action node indicate needed incoming object flow.

Pins on the right indicate outgoing object flow.

Target pins indicate the target of the operation which is the element to which the operation is to be applied.

Now you need to connect the pins with the corresponding variables. Depending on which data is required, you can use variables from the Persisted or Local section.

  • Local: Draw a relation between the operation pin to the variable in section Local.

Variables created in section Local are only available for use within the current execution.

  • Persisted: Open the list of available persisted variables by using the icon in section Persisted and select the needed variable.

Page Persisting Data contains detailed information about persisted variables.

You can use the search to narrow down the content of the list.

When the persisted variable is displayed on the execution pane, draw the necessary object flow to the operation call.

While dragging the object flow, the color of the pins assists you:

  • Unavailable pins are highlighted in red.
  • All valid pins are highlighted in blue.

Object flows on the execution pane are routed automatically.

You can use the execution pane context menu to change the algorithm of the relation path.

You can also select an object flow to highlight it in blue - in larger models this helps to track the paths more easily.


You can also hover over an object flow to highlight it in black.

Special Case: Guard Expressions

Guard expressions (conditions) of exclusive gateways are implemented to the outgoing relations of the gateway.

If you select the outgoing relation of an exclusive gateway on the diagram pane, section Return is displayed in the execution pane automatically.

This section contains the unchangeable object return of type Boolean.

Operations that should be able to be used on a guard need to have a Boolean return value. This value should transport the following meaning:

  • true if the process flow should be continued on this branch.
  • false if this branch should be omitted.

Set the return value of the guard expression by connecting the output pin of the operation call to the return object.

  • No labels