Sync on Multiple Object State Change
Each of the following robots has been converted to a class event synchronization robot as described below.
Template
Robot
Change Request Process 2
Sync on Investigation
Change Request Process 2
Sync on Proposal
Change Request Process 2
Sync on Change Orders
Change Investigation Process
Sync on Analysis Activities
Change Proposal Process
Sync on Activities
Change Order Process
Sync on Change Activities
Before Release 5.1, the expression logic performed the following actions:
1. Determine which children objects are applicable to the synchronization. For example, in the Sync on Change Activities robot, all the change activities related to the change order are relevant.
2. Determine the life cycles states of all the relevant objects.
3. Based on the result of step 2, either continue holding or move on to one of several possible activities that follow in the workflow.
Release 5.1 includes the following changes to this logic:
The expression synchronization robot has been replaced with a conditional router followed by the sync robot. The sync robot has been changed to a new class event synchronization robot. The class differs depending on the particular synchronization robot, but the event is always STATE CHANGE. The conditional router contains exactly the same logic as the expression in the object event subscription robot. The purpose for this conditional router is to immediately check whether the state has already been reached. This helps avoid the race condition of the state being achieved prior to the instantiation of the synchronization robot.
This change resulted in the following improvements:
The synchronization expression is executed only when an object in the proper class has changed state. As a result, the expression is executed only when there is a chance that the states of all related objects are in synchronization.
Was this helpful?