根据多个对象状态更改情况进行同步
以下每个自动机均已转换为类事件同步自动机,如下所述。
模板
自动机
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
在版本 5.1 之前,表达式逻辑执行了以下操作:
1. 确定适合同步的子对象。例如,在 Sync on Change Activities 自动机中,与更改单相关的所有更改活动都是相关的。
2. 确定所有相关对象的生命周期状态。
3. 根据步骤 2 的结果,可以继续保持或移动到工作流中后续的几个可能活动之一。
版本 5.1 对此逻辑进行了以下更改:
表达式同步自动机被替换为条件路由器,随后同步自动机。同步自动机已更改为新的类事件同步自动机。类可能会根据特定同步自动机的不同而有所不同,但事件始终为“状态更改”。条件路由器包含与对象事件订阅自动机中的表达式完全相同的逻辑。此条件路由器的目的是立即检查是否已达到状态。这有助于避免在实例化同步自动机之前达到状态的争用条件。
此更改可获得以下改进:
仅当相应类中的对象状态发生更改时,才会执行同步表达式。因此,仅当所有相关对象都处于同步状态时,才会执行表达式。
这对您有帮助吗?