一、分合流
在BPM中,大家可能听过线性流程、子流程等等,分合流这种叫法可能是第一次听说,也不理解其模式与意义,那么下面我们讲一讲什么是分合流,它是怎么来的,是一种什么样的场景模式。
1.1分合流的定义
在一个流程中,通过设置与配置几个有关联关系的实例,被主流程节点调起使用,来辅助主流程实现某个或多个特定业务的活动或事件,我们将之称之为分合流。
具体点讲就是我们将多实例的分叉活动称之为分流,多实例同步活动称之为合流,分叉之后生成的分支多实例称之为子线程。如果在一个流程中存在分叉、多实例并行与多实例同步,则称之为分合流。
也可以理解为,在某一个流程中,可以同时发起、并行多个线性流程的流程模式。
1.2分合流与线性流程的区别
线性流程,即按照流程设计的步骤顺序或条件,呈线性方式,一步步的向下运行,这样的模式下每个节点有先后顺序,就是每个节点只有一个节点是活动的。
分合流与线性流程的不同之处在于,分合流可以产生多个分支,分合分支可以并行流转,也可以在指定环节进行合流同步。
相比较线性流程而言,分合流可以实现更为复杂的业务逻辑,在某些场景下,可以尽量少的配置线程流程,实现统一、有序、业务相近的业务流程。
分合流整合的JBPM中的几种模式:
1.并行分叉(ParallelSplit):流程在某个活动(节点、步骤)之后产生多个分支,并且并行流转。
2.同步(Synchronization):在流程中的某个点,多个并行的子流程或者活动,合并成一个流程。流程必须等待所有的分支都执行完成后,才能激活后续活动。
3.多重选择(Multiple Choice):在流程中,当一个活动完成后,有多个分支进行选择,可以选择执行其中的一个或者N个分支。
4.同步聚合(Synchronizing Merge):在流程中的某个聚合点,流程会等待所有的分支到来,才能激活后续的活动。如果分支只有一个,那么就变成简单聚合模式;如果存在2个以上分支,那就是同步模式。这种模式的关键在于能够动态的根据分支的多少进行聚合。
5.多重聚合(Multiple Merge):在流程中的多个分支,都可以激活后续的活动,也就是会产生多个实例。
6.鉴别器(Discriminator):在流程的某个聚合点,N个分支的第一个分支到达后,就立刻激活后续活动;与此同时,流程仍然要等待其余的分支完成并忽略完成。
7.无同步的多实例(MIwithout):在流程中,一个活动可以激活多个实例,每个实例相互独立,并不需要在后面进行同步。
8.设计时确定的多实例(MIwith a Priori Design Time Knoledge):在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计的时候就已经知晓率。
9.运行时确定的多实例(MI with a Priori RunTime Knoledge):在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计的时候并不知道,只有在运行时根据条件来决定需要激活多少个实例。
二、分合流的使用场景
场景一:设备巡检
制定巡检计划(包括日常巡检计划与定期巡检计划),巡检计划包括巡检内容、巡检时间、巡检人员、巡检确认人等,巡检人员按照计划内容对巡检区域内设备进行日常检查或定期检查,并将检查情况汇 确认人,当所有设备巡检完成之后,负责人可以查看此次巡检的完成情况。
在进行设备巡检时,每个人负责巡检的设备、内容、区域可能都不相同,而且确认人也可能不一样,此场景下可以使用分合流,将计划内容分发给各个巡检人员进行巡检。
场景二:处理工单
客服组接到工单之后,按照工单的类型将工单指派给相关工单处理小组的组长,并由组长根据工单内容进行任务分配,接到任务的工程师在完成各自的工作之后,将工单处理情况汇总并交给组长进行确认,组长确认完成之后,反馈给客服人员。
在此处流程中,可能存在多个工程分别处理不同任务的情况,我们可以将组长接单环节,设置成分流点,工程师处理环节及步骤设置成子线程,组长确认环节设置成合流点,通过分合流的方式完成工单的流程。
场景三:项目评审
某证卷公司打算某公司进行增资,须由基金经理、风控总监及运营总监,同时分别填写或上传基金 告、风控 告及运营 告,然后由副总安排上会讨论,与会人员需要根据上传的三份 告进行评审与讨论,最终根据会议结果决定是否对该公司进行增投。
此案例中,除了某公司的基本信息之外,还需要填写3份 告,每份 告都是不同的人分别填写,且都填写完成之后,才能进行下一步的会议评审环节,此种场景也符合分合流的应用。
以上场景只是分合流模式应用的几个场景之一,何种情况下使用分合流,其实主要看该业务流程是否符合以下几种特点即可:
- 多实例,但并不是会签。
- 每个实例都有独立的业务,比如,同时发给A和B,A处理完给张三,B处理完给李四。
- 是否需要汇总。
三、设计示例
本示例以CCFlow为平台进行设计一个工单流程。在ccflow中,分合流分为两种模式: 第一种为同表单分合流,即子线程中挂在的表单都是相同的。
第二种为异表单分合流,即子线程中挂载的表单可以是不相同的,子线程的数量也是固定设置好的。
处理工单同表单分合流流程设计步骤:
第一步:设计好流程。
第二步,设置分流节点。
第三步,设置子线程节点。
第四步:设置合流点。
四、完结
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!