Process execution
The workflow engine executes the process in a transactional way, advancing until it encounters a wait state, such as a timer event, in each active path of the execution. Subsequent tasks, sub-processes, and call activities are executed in a single transaction, and if one fails, the entire transaction is rolled back.
Asynchronous activities
You can have tasks, sub-processes, and call activities run asynchronously to split execution into smaller units of work. The benefit of an asynchronous activity is that it is part of a separate transaction, and if it fails, the actions that were performed before it are not rolled back.
Synchronous script tasks are attributed to the user who starts the task. Asynchronous script tasks are attributed to the workflow user.
Notwithstanding the above, the type of actions that the scripts invoke determine whether Collibra checks for permissions or not:
- If the script invokes synchronous calls, such as
domainApi.removeDomain
orworkflowInstanceApi.startWorkflowInstances
, the actions are performed within the workflow context. The users who start the task do not need roles with permissions that allow the task to complete. - If the script invokes asynchronous calls, such as
importerApi.importExcelInJob
ordomainApi.removeDomainInJob
, the jobs run outside of the workflow context. The users who start the task need roles with permissions that allow the task to complete.
Exclusive activities
By default, all activities are exclusive and can not be completed at the same time as another exclusive activity that belongs to the same process. This ensures the workflow engine performs all activities sequentially. You do not need to change this behavior, as the built-in capabilities can manage different scenarios. You can learn more about the logic behind exclusive jobs in the Flowable documentation.