路由概念
如果要指定工作将如何从一个步骤进展到下一个步骤,应在工作流程定义中定义步骤之间的路由。
除了图中的最后一个步骤之外,其余每个步骤都有一个或多个路由源自该步骤。
工作流程路由 | 描述 |
---|---|
始终为 true |
只有最简单的工作流程是沿着一条线从一个步骤进展到下一个步骤。在(左边的)插图中,因为没有条件,所以每个路由始终为 true。 提示: 如果您为步骤中的唯一路由定义一个条件,而完成此步骤时该条件并未求值为 true,那么工作流程或者工作流程的特定分支将停止。
|
路由条件 |
大多数工作流程要求在各种不同的位置进行分支,根据参与者作出的响应或者根据工作流程中一个或多个字段的值来进行分支。在(左边的)插图中,源自启动步骤的路由始终为 true。源自“评估”步骤的路由取决于“评估”步骤的参与者作出的响应的值。(路由条件还可以基于表达式的值。)将仅采用其中一条路由。
|
采用所有为 true 的路由 |
当有多条路由源自某个步骤,并且这些路由中的多条路由可以求值为 true 时,有两个选项可用来处理路由:
当您指定采用所有求值为 true 的路由选项(也称为 AND-split)时,工作将分成多个子工作项。在左边的插图中,Graphics 的路由始终为 true,并且路由 A 或路由 B 可能求值为 true,因此在运行时有两个不同的工作项:一个用于 Graphics,另一个用于 ReviewA 或 ReviewB。要创建有效的图,您必须定义一个收集器步骤,此步骤显示在“编辑”步骤处,它使工作返回到所有求值为 true 的路由末尾的单条路径。 请注意,将等到刚好在收集器步骤(“编辑”步骤)前面,直到所有子流程(在本例中有两个子流程)都到达此阶段才进行处理。 |
关于 AND-split 的特殊案例
特殊案例路由 | 描述 |
---|---|
![]() |
对于某些应用程序,期望指定同时进行处理(AND-split),但是有可能并不方便等到所有子流程都到达收集器步骤以便继续处理。在左边显示的工作流程中,工作流程作者想允许工作在工作流程的 ProcessA 步骤、“核准”步骤以及其余步骤继续完成,而不用等待“归档”步骤完成处理。 在左边的插图中,Submap1 在 StartStep 包含 AND-split 以生成两个单独的工作项。
为了避免等待“归档”步骤完成,ProcessA 步骤定义为收集器步骤。这将 ProcessA 路径上的工作项指定为父代(将继续执行),并释放会在 TerminateBranch 步骤结束的子工作项(“归档”路径)。 注: 如果“归档”或者 TerminateBranch 步骤定义为收集器步骤,那么在完成子图之后,ProcessA 工作项和“归档”工作项都将继续执行。在 ReviewDocs 处将有两个工作项,并将对工作流程的其余步骤继续执行。
|