Process Modification

Information

Please note that this feature is only included in the enterprise edition of CIB seven.

The Modification feature allows you to make changes to running process instances without stopping or interrupting their execution. It enables you to modify various aspects of a process, such as adding or removing user tasks, changing variables, or altering the process flow. This feature is particularly useful for correcting issues in a live process, adjusting workflows on the fly, or implementing emergency changes. It provides flexibility in managing long-running or critical processes, ensuring that process executions continue smoothly while necessary updates are applied.

In the detail view, you can modify the process instance’s execution state. A modification can include one or more of the following operations:

  • Starting execution before an activity
  • Starting execution after an activity on its single outgoing sequence flow
  • Canceling a running instance or all running instances of an activity

Perform a Modification

A modification consists typically of multiple instructions, which are displayed in the modification tab at the bottom half of the screen. It is possible to make a modification for:

  • One specific instance using the Process Instance View
  • Multiple instances using the Process Definition View — this is also referred to as batch modification

For both cases, first you need to navigate to the 'Modify Tab' which is highlighted in the screenshot above. Additionally, you need to select a task and then click on the modification icon in the upper-right corner. A dropdown will be displayed where you can select the operations 'start before', 'start after', or 'cancel'. The 'cancel' operation is only available if there is a running instance. The 'start after' operation is only possible if there is only one outgoing sequence flow from the task, not multiple.

As soon as an operation is selected, an orange circle symbol will appear in the upper-left corner, indicating that a modification will be performed. A minus means that an activity or several will be canceled. A plus symbol means that it will be started. In the following screenshot we will make a modification for the activity 'Evaluate result'.

When executing a modification, the instructions are applied in the specified order. You can change the order of the instructions by using the up and down arrows on the left. These options will be activated, if one or more instructions are added. You can also remove an instruction from the modification by clicking on the trash button. The mentioned options are highlighted with an orange frame in the next screenshot:

Next to this area on the right, you will find a dropdown menu where you can adjust the operation being performed. Further on the right, you will see the name of the selected task.

If you like to change multiple instances, you need to perform a so-called batch operation. This you need to do via the Process Definition View.

Warning

Selecting all instances might create a high load on the database and application runtime/server if the query has a high number of results.

When performing a batch operation, you first need to select the instances. The following dialog shows how you can select them using the checkboxes on the left.

You can also search for instances using a range of available selection criteria or by creating your own query. To use this feature, activate the 'Query' radio button, as shown in the following screenshot.

As soon as you click on the button 'Apply modification', another dialog is shown (see below Review Modification Instructions).

Let us discuss some typical operations in the following:

Cancel Running Active Instances

When canceling all instances of an activity, all instances that exist at the moment this instruction is executed will be canceled. This will also cancel instances created in the same modification (e.g., using a startBefore instruction before the cancel instruction). In most cases, you will probably want to explicitly state which instances to cancel.

Start New Activity Instances

Using a combination of canceling the running active instance and starting a new instance allows you to move a process token of an instance to another part of the process.

When starting a new activity instance, you have the option to start it before or after the activity. In both cases, you have the option to create new variables, which are created or updated with the creation of the activity. Starting an activity instantiates all parent scopes (e.g., embedded subprocesses that contain the activity) that are not yet instantiated before the actual activity is executed.

When starting activities with a multi-instance, there is the option to either start a new multi-instance body for the activity, which executes the entire multi-instance construct and creates the number of child activities specified in the multi-instance configuration for this task, or start a new single instance of the activity in an already existing multi-instance body. The next screenshot shows the options marked with an orange frame. Start before starts the selected instance before the multi-instance, and Start before (Multi Instance) starts it within the body.

Review Modification Instructions

To perform the modification, you have to click on Apply Modifications.

You will then have a final opportunity to review the changes you are about to apply, along with the request payload. In this dialog, several options are preselected by default. Some options are only visible if they are relevant to the specific use case.

  • Asynchronous: It is recommended to keep this checked if there is a significant number of instances to restart.
  • Skip Custom Listeners: Skips execution listener invocation for activities that are started or ended as part of this request.
  • Skip IO Mappings: Skips execution of input/output variable mappings for activities that are started or ended as part of this request.
  • Only Cancel Currently Active Activity Instances: Can only be used with cancel instructions. It prevents the deletion of all newly created activity instances.

Additionally, you can include an annotation, which will be logged in the user operation log.

After confirming the change, the modification is executed, and the page is updated with the new execution state of the process instance.

At any point during the creation of the modification, you can view the payload of the modification by clicking the link 'Show request payload'. This will display the request payload that will be sent via the REST API.

Perform a Batch Modification

When multiple process instances need to be modified, the batch modification feature can be used. To perform batch modifications, you need to click on the 'Modify Tab' in the Process Definition View.

On this Page: