Changes

Jump to: navigation, search

Template:July2023Upgrade

1,489 bytes added, 1 February
Updated Workflow Behavior
Workflow completion time may be affected and can vary depending on the configuration.
 
Previously when stepping through a Workflow, if another Workflow was triggered, it would be run in a new thread simultaneously and asynchronously, and the system would return to the original Workflow and continue to step through its Tasks. This could lead to inconsistent results if the system was configured to run multiple Workflows against the same object, and if the order of operations of their Tasks needed to be preserved due to race conditions of the Workflows.
 
After this upgrade the default behavior of Workflows has now been changed to instead process multiple Workflows in a serial synchronous fashion so that their order of operations and behavior are more consistent and predictable. Now when a Workflow triggers another Workflow, the system will process all sub-Workflows to completion in the original thread rather than starting them in a new thread. This means that sub-Workflows will be processed in a serial recursive fashion before the system returns back to working on the original Workflow. This may impact systems where you may now control this behavior with the new option '''Run Asynchronously''' that has been introduced on the Workflow configuration screen. If the areas in your system that trigger multiple Workflows, do so with different target objects for each of the Workflows, then it should be safe for you to revert back to the previous mode of operation by enabling the '''Run Asynchronously''' toggle on Workflows that trigger other sub-Workflows.
In general, "chained" workflows that are triggering against the same object should remain synchronous. For example, if the Level 1 record triggered workflow A and one of its task triggers workflow B on the same Level 1 record, then the workflows should remain running synchronously. Therefore, do not toggle on the '''Run Asynchronously''' option). However, if the Level 1 triggers workflow A and then one of its tasks is to trigger workflow B on all of the associated contacts on the Level 1, then this workflow can run asynchronously and the '''Run Asynchronously''' option should be enabled on workflow B to optimize performance.
Smartstaff, administrator
3,320
edits

Navigation menu