Changes

Template:July2023Upgrade

1,710 bytes added, 1 February
Updated Workflow Behavior
====Updated Workflow Behavior====
Updated the behavior of workflows to run in a linear serial, single-threaded manner where child workflows are triggered during the processing of a workflow. Previously when stepping through a workflow, if another workflow was triggered, a new thread would be created to process the child workflow simultaneously and asynchronously, as the original system thread would then return to the original workflow and continue to step through its tasks without waiting on the child workflow to complete. This could lead to inconsistent results if the system was configured to run multiple workflows against the same object, or if the order of operations of their tasks needed to be preserved, but results would vary 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 generating operations and behavior are more consistent and predictable. Now when a workflow triggers another workflow, the system will process all child workflows fully to completion in the original system thread rather than passing each new workflow to a new threads when separate processing thread. This means that child workflows will be processed in a serial fashion, and their order of tasks will be preserved, before the system returns back to working on the original workflow. This may impact systems where workflows are configured to launch other child workflows, and you may now experience an increase in the runtime of such workflows. 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 new '''Run Asynchronously''' option toggle that is toggled off. This change will reduce now available inside the likelihood configuration of two workflows running simultaneously a workflow, and to enable this option on the same recordinitial workflows that are instantiating child workflows. Examples and notes. After the upgrade, the task process order will be:
# If the workflow is a trigger workflow task, go to the trigger workflow
Smartstaff, administrator
3,321
edits