驰骋工作流引擎JFlow与activiti的对比之4种高级分支同步模式
- 多重选择(Multiple Choice)
在流程中,当一个活动完成后,有多个分支进行选择,可以选择执行其中的一个或者N个分支。
例子:比如去世博园玩,在门口检票后,可以选择A-E个片区中的N个进行观光。

ACTIVITI 中的支持情况:
1.JPDL方式不支持先定义好这里的几种,然后根据条件去筛选其中的几种进行,但是ACTIVITI.4之后支持一种叫foreach的节点,允许我们在运行时指定几种特定的任务,比如上面例子中的片区,我们可以在选定后再去循环。
2.BPMN方式支持根据条件执行多个子分支。
JFLOW中的支持情况:
1.通过定义流程为异表单分合流来实现。
a通过条件控制发起子线程数量。设置方向条件的时候,可以根据需要,选择不通的条件设置,比如:岗位条件、部门条件、表单条件等。
b通过节点树形中设置手工选择方向控制,可以控制发起子线程的发起数量。
2.通过父子流程也可以实现。
- 同步聚合(Synchronizing Merge)
在流程中的某个聚合点,流程会等待所有的分支到来,才能激活后续的活动。如果分支只有一个,那么就变成简单聚合模式;如果存在2个以上分支,那就是同步模式。
这种模式的关键在于能够动态的根据分支的多少进行聚合。

ACTIVITI 中的支持情况:
可以通过设置ACTIVITI 的join节点属性multiplicity的值为某个变量,并在程序中动态的修改变量的值来制定分支的数量。
JFLOW中的支持情况:
分合流中合流操作。无论分支有多少,都可以进行汇总,并且可以对汇总的子线程进行删除操作、完成率控制等。
JFLOW的多重选择与同步聚合实例图:

结束为聚合点,中间的为分支。
- 多重聚合(Multiple Merge)
在流程中的多个分支,都可以激活后续的活动,也就是会产生多个实例。
例子:游客观光完N个片区之后,每个片区各自的系统可以对游客在自己片区的信息进行存储。
ACTIVITI 与JFLOW的支持请参考 同步聚合。

- 鉴别器(Discriminator)
在流程的某个聚合点,N个分支的第一个分支到达后,就立刻激活后续活动;与此同时,流程仍然要等待其余的分支完成并忽略完成。
注意:在其余分支未全部完成前,第一个到达的分支所激活的后续节点是无法执行的。
例子:个人申请提交后,并行提交给第一导师审批、第二导师审批、第三导师审批,他们中只要有一个完成了,那么就可以提交给学院审批。
N-out-of-M鉴别器模式:
跟鉴别器模式一样的,只是这种模式是N个到达后,激活后续节点,而剩下的M-N个节点未完成前,新激活的后续节点一样无法被执行。
ACTIVITI 中的支持情况:
没有直接支持这种模式,但是通过自定义节点,应该是可以处理这种模式的。
JFLOW中的支持情况:
有两个属性的控制,可以实现功能,就是上面所说的子线程完成路和子线程删除规则。
第1个:子线程完成率。 该规则可以决定是否可见
第2个:子线程删除规则。该规则决定那些子线程可以被删除以及他们的删除方式。
驰骋工作流引擎JFlow与activiti的对比之4种高级分支同步模式的更多相关文章
- 驰骋工作流引擎JFlow与activiti的对比之2种取消模式
1. 取消模式(Cancel Activity) 就是将某个活动取消. JFLOW中,类似与删除流程操作相同. 不能删除:不允许删除. 逻辑删除:仅仅将此流程标记为删除状态,数据仍然存在节点表单与流程 ...
- 驰骋工作流引擎JFlow与activiti的对比之4种包含多实例的模式
1. 无同步的多实例(MIwithout) 在流程中,一个活动可以激活多个实例,每个实例相互独立,并不需要在后面进行同步. 例子:比如用户购买了N本书,于是后续的支付账单.更新客户可以以本书为单位各自 ...
- 驰骋工作流引擎JFlow与activiti的对比之2种结构化模式
1. 任意循环(Arbitrary Cycles) ACTIVITI : 某一个或多个活动可以反复执行. 例子:用户买了瓶汽水,拿到汽水后,中了一瓶,又去兑换了一瓶汽水,如果又中了,再去兑换一瓶汽水- ...
- 驰骋工作流引擎JFlow与activiti的对比 -总结
共同点: 1. 嵌入式的工作流引擎,降低集群复杂性. 2. 严格而灵活的流程版本控制 3. 支持多种数据库 4. 支持多种流程设计模式 5. 成熟度高的开源工作流,具有可靠的稳定性和性能. 区别: 1 ...
- 工作流引擎JFlow与activiti 对比分析(一)5种基本控制流模式的对比
为了更好的说明activiti 与jflow的两款工作流引擎的特点与区别,我们按照如下几个方面做一次全面的.客观的对比. 首先activiti是国外的一款开源的工作流程引擎,在国际上影响比较深远与广泛 ...
- Java开源工作流引擎Jflow表单方案系列讲解一
关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单 拖拽式表单 表单方案介绍 适配数据库: oralce,mysql,sq ...
- 驰骋工作流引擎 -CCBPM如何自动升级
关键词:工作流引擎自动升级 工作流自动升级升级步骤设置1,CCBPM把更新分成三类, 应用程序代码更新.数据表结构更新.数据更新.2,CCBPM在您登录流程设计器时自动判断当前的版本与数据库版本是 ...
- java工作流引擎Jflow父子流程demo
关键字 驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow .net开源工作流 定义 一个流程A的一个节点,因工作的需要调起另外的流程B,A就叫父流程,B就叫子流程.如果流 ...
- 驰骋工作流引擎与jFinal集成版本2.0
驰骋工作流引擎与jFinal集成版本2.0 发布说明 关键字: 驰骋工作流程快速开发平台 工作流程管理系统java工作流引擎. 使用协议:GPL. 关于JFinal: https://www.jfin ...
随机推荐
- MongoDB 分片键的选择与案例
MongoDB版本:3.6 一.分片键类别 1.升序片键 升序片键例如:日期时间字段.自增字段. 2.随机分发片键 随机分发片键例如:用户名.邮件名.UUID.MD5值或者是其它的一些没有规律的值的列 ...
- [Swift]LeetCode945. 使数组唯一的最小增量 | Minimum Increment to Make Array Unique
Given an array of integers A, a move consists of choosing any A[i], and incrementing it by 1. Return ...
- Java中构造方法、实例方法、类方法的区别
1. 构造方法 构造方法负责对象的初始化工作,为实例变量赋予合适的初始值.必须满足以下的语法规则: 方法名与类名相同: 不要返回类型(例如return.void等): 不能被static.final. ...
- Docker 搭建pxc集群 + haproxy + keepalived 高可用(一)
一.首先需要安装好docker,安装方法可以参考之前一篇博文Centos7安装docker [root@localhost ~]# systemctl start docker [root@local ...
- 记录一次安装OpenGL的漫长过程
尝试codeblock和Dev-C++ 这学期新开了一门计算机图形图像的课,里面涉及到openGL,中午跑到图书馆开始倒腾OpenGL. 因为电脑里本来有codeblock,于是就想不用教材里面所说的 ...
- BBS论坛(七)
7.1.修改邮箱界面完成 (1)cms/cms_resetemail.html {% extends 'cms/cms_base.html' %} {% block title -%} 修改邮箱 {% ...
- ios 自动化构建 code-select: error: tool 'xcodebuild' requires Xcode, but active developer directory.....
问题描述: Pod installation complete! There are 2 dependencies from the Podfile and 3 total pods installe ...
- Javascript的原型继承,说清楚
一直以来对Javascript的原型.原型链.继承等东西都只是会用和了解,但没有深入去理解这门语言关于继承这方面的本质和特点.闲暇之余做的理解和总结,欢迎各位朋友一起讨论. 本文本主要从两段代码的区别 ...
- SignalR学习笔记(一) 简单聊天室
什么是ASP.NET SignalR? ASP.NET SignalR是一个方便程序员添加实时网络通信功能的类库.所谓的实时网络通信功能(Real-time Web Functionality)就是需 ...
- asp.net core 系列 22 EF(连接字符串,连接复原,DbContext)
一.连接字符串 在上二篇中,ASP.NET Core 应用程序连接字符串是写死在ConfigureServices代码中,下面介绍通过配置来实现.连接字符串可以存储在 appsettings.json ...