zoukankan      html  css  js  c++  java
  • 动态分支在工作流中的应用

          在工作流管理系统的实际应用中,经常有这样的需求,当一个流程流转到分支的时候,需要产生几个分支不是在流程定义的时候预先能确定好的,而是在每个流程实例流转的时候,根据实际的需要动态的产生的。

    例如,当一个申请单填写完成后,交个下一步骤去审批,需要几组,需要根据申请单中申请的项目数来决定,
      如果申请单中有2个明细项,就需要2组人审批;
      如果申请单中有3个明细项,就需要3组人审批。

    这样的需求适合用动态分支来实现,产生多少个分支根据申请单中用户填写的明细项来决定,当有3项,就做3个动态分支,有2项,就做2个,有n项,做n个分支,每个流程实例是不一样的,在流程定义的时候,无法确定分支的个数,因此只能做动态分支,在流程实例运行的时候,再根据实际的需要来产生分支的个数。

    在动态分支--....--动态合并  这之间的节点,在流程定义的时候,只能做一个节点来定义,即步骤的执行人等,只能是一次性的定义。当需要在每个动态分支中有不同的执行人的时候,则需要在动态分支节点上设置动态分支参数,分支后的节点参数人,选择设置的动态分支参数。在进入动态分支之前给这些参数赋值好相应的执行人,按每个分支来分配,这样就能达到各个分支不同了。

    如上面的示例中,申请单明细中,如果有A项目,则需要A项目组的上级来审批。
                   如果有B项目,则需要B项目组的上级来审批。
       这时候,就可以在动态分支节点上,先定义一个动态分支参数,在进入分支之前,根据申请单明细项目,找到项目组的上级,赋值给分支变量,分分支来分配变量值。
       也可以在进入分支后,核对资质,或项目评估的步骤中,再按项目组找上级,赋值给分支变量,当到达审批节点的时候,就已经分配好了步骤的执行人了。
       
       动态分支在工作流的实际应用中,经常会遇到,需要根据实际情况来确定。动态分支中在流程实例运行的时候,每个分支会产生一个分支实例id,每个节点在运行的时候,也会有运行轨迹id,都会记录到流程的运行轨迹中。根据动态分支实例id或运行轨迹id,和业务表关联,也能定位到每个节点上办理的业务数据,在流程的跟踪和监控上,分支实例id和轨迹id都可以发挥出作用。
       
       有些审批步骤,可以参与审批的人数不定,但是只是一个审批节点的,这种用会签型的任务节点,就可以了,不需要用动态分支,动态分支通常是分支和合并之间还有一序列的处理过程,并且每流程实例在运行时产生的分支个数不一样,这种类型的需求才适合用动态分支。

  • 相关阅读:
    实用的DBHelper帮助类
    无刷新分页技术
    Android回部古剑之ViewFlipper之仙人指路
    Android玉石短剑之GridView之精挑细选
    构建门户之利刃Liferay Portal系统架构
    Android回部古剑之ViewFlipper之翻来覆去
    Android凝碧剑之CalendarView之万年历
    自己动手写Web容器之TomJetty之四:静态页面起步
    Android白虹剑之EditView之非法输入
    AssetBundle压缩/内部结构/下载和加载
  • 原文地址:https://www.cnblogs.com/webreport/p/2585954.html
Copyright © 2011-2022 走看看