[b]两个结构化模式
这两个模式的共同点在于:模式所涉及流程的执行路径是由运行时决定的,而非设计时确定。包括:
[list]
[*] Arbitrary cycles(强制循环模式)
[*] Implicit termination(隐式终止模式)
[/list]
[color=red]WP_10、Arbitrary cycles(强制循环模式)[/color][/b]
描述:在一个流程实例中,有些活动是需要多次执行的。
[img]/upload/attachment/129072/dcda4986-6df6-3e68-a23b-c8b8131b42e9.jpg[/img]
图wp10:强制循环模式
[flash=500,400]http://www.workflowpatterns.com/patterns/control/images/cp10_flash.swf[/flash]
图wp10:强制循环模式(flash)
比如在一个审批流程中,如果经理不审批,则审批发起人需要重新提交审批申请,直到经理审批同意。利用xor_split节点,可以模拟出一条循环流程,在条件无法满足的情况下,循环部分会反复执行,图wp10中,auto活动2、3就是一个循环部分。
[color=red]WP_11、Implicit termination(隐式终止模式)[/color]
描述:在一个流程实例中,当执行完所有的激活的活动之后,该流程实例应该终止。
[img]/upload/attachment/129074/79c901b6-e8c2-3851-a9d9-5e4c7fed128b.jpg[/img]
图wp11:隐式终止模式
[flash=500,400]http://www.workflowpatterns.com/patterns/control/images/cp11_flash.swf[/flash]
图wp11:隐式终止模式(flash)
以上图例是个常见的设计图,有1个起始活动,3个终止活动(对于TW引擎而言,每个流程支持唯一起始活动,n个结束活动),在用流程建模工具设计流程的时候,要求有起始活动和结束活动,即显示告知引擎什么地方结束。TW工作流引擎不支持隐含终止模式,在流程设计的时候必须宣告确定结束的节点。
不过对于多结束活动而言,某个分支已经到达了结束活动,会对流程实例做个查询,没有处于激活或者处于运行态的活动,才会把流程状态也设置为结束,否则只是设置本身的结束活动为结束。
这两个模式的共同点在于:模式所涉及流程的执行路径是由运行时决定的,而非设计时确定。包括:
[list]
[*] Arbitrary cycles(强制循环模式)
[*] Implicit termination(隐式终止模式)
[/list]
[color=red]WP_10、Arbitrary cycles(强制循环模式)[/color][/b]
描述:在一个流程实例中,有些活动是需要多次执行的。
[img]/upload/attachment/129072/dcda4986-6df6-3e68-a23b-c8b8131b42e9.jpg[/img]
图wp10:强制循环模式
[flash=500,400]http://www.workflowpatterns.com/patterns/control/images/cp10_flash.swf[/flash]
图wp10:强制循环模式(flash)
比如在一个审批流程中,如果经理不审批,则审批发起人需要重新提交审批申请,直到经理审批同意。利用xor_split节点,可以模拟出一条循环流程,在条件无法满足的情况下,循环部分会反复执行,图wp10中,auto活动2、3就是一个循环部分。
[color=red]WP_11、Implicit termination(隐式终止模式)[/color]
描述:在一个流程实例中,当执行完所有的激活的活动之后,该流程实例应该终止。
[img]/upload/attachment/129074/79c901b6-e8c2-3851-a9d9-5e4c7fed128b.jpg[/img]
图wp11:隐式终止模式
[flash=500,400]http://www.workflowpatterns.com/patterns/control/images/cp11_flash.swf[/flash]
图wp11:隐式终止模式(flash)
以上图例是个常见的设计图,有1个起始活动,3个终止活动(对于TW引擎而言,每个流程支持唯一起始活动,n个结束活动),在用流程建模工具设计流程的时候,要求有起始活动和结束活动,即显示告知引擎什么地方结束。TW工作流引擎不支持隐含终止模式,在流程设计的时候必须宣告确定结束的节点。
不过对于多结束活动而言,某个分支已经到达了结束活动,会对流程实例做个查询,没有处于激活或者处于运行态的活动,才会把流程状态也设置为结束,否则只是设置本身的结束活动为结束。