Overview of Business Process Patterns
Inter-Process Communication
This lesson is part of the Modeling Business Process course.
LEARN MORE

Use this patterns to communicate with a process, from another process or from the application.

There are two ways of doing this:

  • Explicitly: the communication is made through explicit call to process-specific actions;
  • Implicitly: the communication is made through actions over records in the database.

Explicit Communication

The communication to a process is made through process extended actions or process system actions/functions.

Launch a Process

Use the Launch<Process> process extended action to launch the execution of another process.

Start a Flow within a Process

Design the flow in a Conditional Start and use the Start<Conditional Start> action to start executing new instances of the flow. This is useful when the number of executed instances of a flow is only known at runtime.

Terminate a Process

A process may be terminated with the ProcessTerminate system action or with the Terminate tool in the process flow. If the process has launched child processes, make sure you design logic to also terminate them.

Close an Activity

One way of ending the execution of an activity in a process is through the ActivityClose system action.

The other way is to use extended actions, which are directly bound to the activity:

 Close<Human Activity>: Ends the execution of a Human Activity in a process. You may use it for, for example, explicitly end the execution of a human activity that is no longer necessary;

 Close<Wait>: Ends the execution of aWait in a process. You may use it for, for example, to explicitly end a wait activity in a process when another process reaches a certain point in its flow.

Once the activity is closed, the process follows on to the next activity in the flow.

You may use the On Close callback action to add specific logic to validate whether to close the activity or not.

Implicit Communication

The communication to the process is made through events that occur in the database, such as the creation and update of entity records.

Implicitly Launch a Process

To implicitly launch a process, set that process Launched On property to Create<Entity>. For each newly created entity record a process instance is launched.

Implicitly Start a Flow within a Process

Design the flow in a Conditional Start and set its Start On property to Create<Entity> / Update<Entity>.  After that, the execution of a new instance of the flow is started every time a record of the entity is created/updated. This is useful when the number of executed instances of a flow is only known at runtime.

Implicitly Close an Activity

Use the Close On property of activities to implicitly end their execution when an entity is either created or updated:

 Human Activity: for example, end the execution of a human activity when an entity is updated with a specific value;

Wait: for example, implement a waiting activity in a process that waits until another process updates an entity with a specific value.

Once the activity is closed, the process follows on to the next activity in the flow.

You may use the On Close callback action to add specific logic to validate whether to close the activity or not.

See Also

Overview of Process Patterns