1. 多重选择(Multiple Choice)

在流程中,当一个活动完成后,有多个分支进行选择,可以选择执行其中的一个或者N个分支。

例子:比如去世博园玩,在门口检票后,可以选择A-E个片区中的N个进行观光。

ACTIVITI 中的支持情况:

1.JPDL方式不支持先定义好这里的几种,然后根据条件去筛选其中的几种进行,但是ACTIVITI.4之后支持一种叫foreach的节点,允许我们在运行时指定几种特定的任务,比如上面例子中的片区,我们可以在选定后再去循环。

2.BPMN方式支持根据条件执行多个子分支。

JFLOW中的支持情况:

1.通过定义流程为异表单分合流来实现。

a通过条件控制发起子线程数量。设置方向条件的时候,可以根据需要,选择不通的条件设置,比如:岗位条件、部门条件、表单条件等。

b通过节点树形中设置手工选择方向控制,可以控制发起子线程的发起数量。

2.通过父子流程也可以实现。

  1. 同步聚合(Synchronizing Merge)

在流程中的某个聚合点,流程会等待所有的分支到来,才能激活后续的活动。如果分支只有一个,那么就变成简单聚合模式;如果存在2个以上分支,那就是同步模式。

这种模式的关键在于能够动态的根据分支的多少进行聚合。

ACTIVITI 中的支持情况:

可以通过设置ACTIVITI 的join节点属性multiplicity的值为某个变量,并在程序中动态的修改变量的值来制定分支的数量。

JFLOW中的支持情况:

分合流中合流操作。无论分支有多少,都可以进行汇总,并且可以对汇总的子线程进行删除操作、完成率控制等。

JFLOW的多重选择与同步聚合实例图:

结束为聚合点,中间的为分支。

  1. 多重聚合(Multiple Merge)

在流程中的多个分支,都可以激活后续的活动,也就是会产生多个实例。

例子:游客观光完N个片区之后,每个片区各自的系统可以对游客在自己片区的信息进行存储。

ACTIVITI 与JFLOW的支持请参考 同步聚合。

  1. 鉴别器(Discriminator)

在流程的某个聚合点,N个分支的第一个分支到达后,就立刻激活后续活动;与此同时,流程仍然要等待其余的分支完成并忽略完成。

注意:在其余分支未全部完成前,第一个到达的分支所激活的后续节点是无法执行的。

例子:个人申请提交后,并行提交给第一导师审批、第二导师审批、第三导师审批,他们中只要有一个完成了,那么就可以提交给学院审批。

N-out-of-M鉴别器模式:

跟鉴别器模式一样的,只是这种模式是N个到达后,激活后续节点,而剩下的M-N个节点未完成前,新激活的后续节点一样无法被执行。

ACTIVITI 中的支持情况:

没有直接支持这种模式,但是通过自定义节点,应该是可以处理这种模式的。

JFLOW中的支持情况:

有两个属性的控制,可以实现功能,就是上面所说的子线程完成路和子线程删除规则。

第1个:子线程完成率。 该规则可以决定是否可见

第2个:子线程删除规则。该规则决定那些子线程可以被删除以及他们的删除方式。

驰骋工作流引擎JFlow与activiti的对比之4种高级分支同步模式的更多相关文章

  1. 驰骋工作流引擎JFlow与activiti的对比之2种取消模式

    1. 取消模式(Cancel Activity) 就是将某个活动取消. JFLOW中,类似与删除流程操作相同. 不能删除:不允许删除. 逻辑删除:仅仅将此流程标记为删除状态,数据仍然存在节点表单与流程 ...

  2. 驰骋工作流引擎JFlow与activiti的对比之4种包含多实例的模式

    1. 无同步的多实例(MIwithout) 在流程中,一个活动可以激活多个实例,每个实例相互独立,并不需要在后面进行同步. 例子:比如用户购买了N本书,于是后续的支付账单.更新客户可以以本书为单位各自 ...

  3. 驰骋工作流引擎JFlow与activiti的对比之2种结构化模式

    1. 任意循环(Arbitrary Cycles) ACTIVITI : 某一个或多个活动可以反复执行. 例子:用户买了瓶汽水,拿到汽水后,中了一瓶,又去兑换了一瓶汽水,如果又中了,再去兑换一瓶汽水- ...

  4. 驰骋工作流引擎JFlow与activiti的对比 -总结

    共同点: 1. 嵌入式的工作流引擎,降低集群复杂性. 2. 严格而灵活的流程版本控制 3. 支持多种数据库 4. 支持多种流程设计模式 5. 成熟度高的开源工作流,具有可靠的稳定性和性能. 区别: 1 ...

  5. 工作流引擎JFlow与activiti 对比分析(一)5种基本控制流模式的对比

    为了更好的说明activiti 与jflow的两款工作流引擎的特点与区别,我们按照如下几个方面做一次全面的.客观的对比. 首先activiti是国外的一款开源的工作流程引擎,在国际上影响比较深远与广泛 ...

  6. Java开源工作流引擎Jflow表单方案系列讲解一

    关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单  拖拽式表单  表单方案介绍 适配数据库: oralce,mysql,sq ...

  7. 驰骋工作流引擎 -CCBPM如何自动升级

    关键词:工作流引擎自动升级   工作流自动升级升级步骤设置1,CCBPM把更新分成三类, 应用程序代码更新.数据表结构更新.数据更新.2,CCBPM在您登录流程设计器时自动判断当前的版本与数据库版本是 ...

  8. java工作流引擎Jflow父子流程demo

    关键字 驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow  .net开源工作流 定义 一个流程A的一个节点,因工作的需要调起另外的流程B,A就叫父流程,B就叫子流程.如果流 ...

  9. 驰骋工作流引擎与jFinal集成版本2.0

    驰骋工作流引擎与jFinal集成版本2.0 发布说明 关键字: 驰骋工作流程快速开发平台 工作流程管理系统java工作流引擎. 使用协议:GPL. 关于JFinal: https://www.jfin ...

随机推荐

  1. Java 延迟队列使用

    延时队列,第一他是个队列,所以具有对列功能第二就是延时,这就是延时对列,功能也就是将任务放在该延时对列中,只有到了延时时刻才能从该延时对列中获取任务否则获取不到…… 应用场景比较多,比如延时1分钟发短 ...

  2. 关于H5页面的测试总结与分析

    一.时下最流行的H5到底是什么 ?有什么优势和劣势? (1)H5 即HTML5,其实就是:移动端Web页面. (2)优势: H5可以跨平台使用,开发成本相对较低 H5可随时上线就更新版本,适合快速迭代 ...

  3. [Swift]LeetCode904. 水果成篮 | Fruit Into Baskets

    In a row of trees, the i-th tree produces fruit with type tree[i]. You start at any tree of your cho ...

  4. Python档案袋(列表、元组、字典、集合 )

    列表 可以同名,有序(通过下标可找到) 取值: 1 #声明列表 2 listx=["L0","L1","L2",33,"L4&qu ...

  5. java8新特征

    一:Lambda 表达式 为什么使用    :使用 Lambda 表达式可以使代码变的更加简洁紧凑. 表达了什么?: 匿名内部类的新写法: 语法 :(parameters) -> express ...

  6. Python爬虫入门项目

    Python是什么 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. 创始人Guido van Ros ...

  7. [Abp 源码分析]三、依赖注入

    0.简要介绍 在 Abp 框架里面,无时无刻不存在依赖注入,关于依赖注入的作用与好处我就不在这里多加赘述了,网上有很多解释的教程.在 [Abp 源码分析]一.Abp 框架启动流程分析 里面已经说过,A ...

  8. MT2018笔试题之计算数字位数

    一.计算数字位数 1.题目 给定一个数字T,计算从1到T的所有正整数的位数和.比如T=13,则12345678910111213有17位数字. 输入描述 3 13 4 5 输出 17 4 5 2.思路 ...

  9. 初探React与D3的结合-或许是visualization的新突破?

    自诞生之初截止目前(2016年初),React可以说是前端界最流行的话题,如果你还不知道React是何物,你就该需要充充电了. d3是由纽约时报工程师开源的一个绘制基于svg的数据可视化工具,是近几年 ...

  10. 『Asp.Net 组件』第一个 Asp.Net 服务器组件:自己的文本框控件

    代码: using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DemoWebControl ...