`

两款java工作流引擎BPM领域的流行的20种模式jbpm与ccbpm的对比

阅读更多
 

BPM领域的流行的20种模式

 

jbpmccbpm的对比

 

 

 

目录

BPM领域的流行的21种模式与ccbpm的支持对比... 2

5种基本控制流模式... 2

Pattern1 顺序流(Sequence... 2

Pattern2 并行分叉(Parallel Split... 5

Pattern3 同步(Synchronization... 6

Pattern4 独占式选择(Exclusive Choice... 10

Pattern5 简单聚合(Simple Merge... 12

4种高级分支同步模式... 12

Pattern6 多重选择(Multiple Choice... 12

Pattern7 同步聚合(Synchronizing Merge... 16

Pattern8 多重聚合(Multiple Merge... 17

Pattern9 鉴别器(Discriminator... 17

2种结构化模式... 18

Pattern10 任意循环(Arbitrary Cycles... 18

Pattern11 隐式终止(Implicit Termination... 19

2种结构化模式在JBPM4中的综合实现... 20

4种包含多实例的模式... 21

Pattern12 无同步的多实例(MI without... 22

Pattern13 设计时确定的多实例(MI with a Priori Design Time Knoledge... 23

Pattern14 运行时确定的的多实例(MI with a Priori RunTime Knoledge... 24

Pattern15 运行时无法确定的的多实例(MI without a Priori RunTime Knoledge... 24

3种基于状态的模式... 25

Pattern16 延迟选择(Deferred Choice... 25

Pattern17 交叉存取并行路由(Interleaved Parallel Routing... 26

Pattern18 里程碑(Milestone... 29

2种取消模式... 29

Pattern19 取消模式(Cancel Activity... 29

Pattern20 取消实例(Cancel Case... 30

具有中国特色的工作流模式... 31

Pattern1 回退(Reject... 31

定义与描述... 31

Ccbpm的模式... 31

Pattern2 取回... 32

定义与描述:... 32

CCBPM的支持:... 32

Pattern3 委托代办... 32

定义描述:... 32

ccbpm的授权... 33

Pattern4 催办 Escalation. 35

定义描述... 35

Ccbpm的支持... 35

Pattern5 自由流... 35

定义与描述... 35

Ccbpm的支持:... 36

Pattern6 会签... 37

定义与描述... 37

Ccbpm的定义:... 37

总结说明... 40

概述... 40

Ccbpm控制流程运行模式的方式:... 40

Ccbpm 4大流程运转模式的解释... 41

 

 

 

 

 

BPM领域的流行的20种模式

本文件以国外流行的20中流程模式的设计与jbpm4的模式案例与当今中国开源的ccbpm流程引擎对照,以便让各位评估人员能够了解到中国国情的工作流引擎与估计流行的设计规则的差别、不同、与优缺点。以便各位能够做出正确的ccbpmjbpm评估。

为了方便预览,请使用文档结构图的模式进行查看。

BPM领域,比较流程通用的就是满足如下21中流程模式的支持,如下图:

 

下面的章节里,我们对这写模式进行一个个的对比,以找出ccbpmjbpm的差异。

5种基本控制流模式

Pattern1 顺序流(Sequence

基本概念

就是按照流程设计的步骤,一步步的向下运行,这样的模式下每个节点有先后顺序,就是每个节点只有一个节点是活动的,如下图:

 

Ccbpm的支持

这个实际上在ccbpm上来看他是不同的线性流程,也叫顺序流程,没有分支,流程一般在最后一个节点停止,并标识该流程完成,ccbpm允许设置节点的完成条件,与流程的完成条件,当符合该条件时候,流程自动结束。

   ccbpmdemo流程中,如下流程符合这种模式:

 

这样的流程模式属于最基础的流程模式,ccbpm的特点是:允许用户自己定义流程完成条件,在任何一个节点运行过程中,ccbpm都要去检查条件设置,如果满足这个条件流程就自动结束。Ccbpm的流程完成条件设置相对简单实用、直观。

条件类型:

 

按照表单条件:

 

对于条件的设置规则,请参考ccbpm的操作手册,条件规则的设置,在以后很多的场景都用到。

Ccbpm特点

1, 支持条件的图形化配置,让其在指定的节点自动结束。

2,条件的配置支持多种方式,因为ccbpmccform是集成的,所以ccbpm在流程运转中可以操纵ccform的数据,让配置更容易,生动,直观。

3 ccbpm还支持流转自定义功能,就是说在指定的节点上,可以自己定义以后节点运行的顺序与执行人。 请参考:http://ccbpm.mydoc.io/?v=5404&t=17978

Pattern2 并行分叉(Parallel Split

基本概念

Ccbpm的支持

这个属于ccbpm 异表单分合流,一个动作结束后,并行启动多个分支,每个分支都要向下运动, 每个分支运行完后自动该分支工作完成,由最后一个分支的完成来决定整体的流程完成。

 

方向条件的设置:如果客户需要发票,就可以启动这个分支。

 

Ccbpm的特点

 

 

 

 

1.       Ccbpm的多种方式的规则设置、支持条件的优先级计算,满足个流程运转的配置需要。

请参考说明书:http://ccbpm.mydoc.io/?v=5404&t=20865

2,支持多个条件的组合计算。

 

Pattern3 同步(Synchronization

基本概念

 

Ccbpm的支持

这种模式对应的是ccbpm的分河流:为了让用户更容易配置,与理解ccbpm根据同步节点处理的内容是否相同,分为同表单分河流,与异表单分河流。以上的模式是异表单的分河流,因为task2,task3所处理的工作是不一样的,他类似于ccbpm流程案例库中的飞行考察流程。

在最后的合流节点里汇总的是多个表单.

 

也类似于国土行业的流程。

 

但是在同步流程中,我们扩展了同表单的分合流,因为这样的应用模式很多,并且需要数据汇总,比如:销售经理下达任务要求每个人汇报上个周的销售总结,销售经理汇总销售清单,如下流程图:

 

 

流程运行效果如下:

1个点表单:

 

2个点表单:每个子线程同时填写.

 

 

3个点表单:得到汇总数据。

 

ccbpm特点

1, 根据子线程节点,填写的内容是否相同,支持同表单分河流,异表单分河流。

2ccbpm可以操纵ccform数据进行汇总,完成复杂的业务数据操作。

3ccbpm有合流节点完成率的概念,可以指定一定的完成率,才能到达合流节点。

4,对于未完成的子线程,ccbpm有子线程的删除规则,满足不同情况下的对子线程的删除操作。

Pattern4 独占式选择(Exclusive Choice

基本概念

Ccbpm的支持

解释:流程在运行的过程中,根据不同的条件进行不同的走向,在ccbpm看来这样的也属于线性流程,就是在一个节点是出现了分支,比如:

当金额小于 1万的时候,直接报销。大于1万的时候,需要走总经理审批,这是一种使用表单的字段作为一个判断条件,ccbpm的特点是支持多种方向条件的判断,比如:按照表单字段值,按照当前人的岗位、当前人的部门,按照url,按照表达式等等,满足多种场合下的配置需要,并且支持多个条件的组合。

支持优先级计算:比如如果分支的条件有多个的话,同时满足,如何处理优先级判断的问题。

 

Ccbpm的特点

Pattern5 简单聚合(Simple Merge

基本概念

 

Ccbpm的支持:

这种行为,属于ccbpm的异表单的分合流概念,在ccbpm中,有一个完成率,来解决此问题。

Ccbpm的特点

这仅是一个简单的分支,是否可以起用,是通过条件规则,子线程的删除条件规则来确定的。

 

Ccbpm的完成通过率概念:

http://ccbpm.mydoc.io/?v=5404&t=17945

 

对于子线程(子任务)的删除操作规则,请参考:

http://ccbpm.mydoc.io/?v=5404&t=17992

4种高级分支同步模式

Pattern6 多重选择(Multiple Choice

 

基本概念

CCBPM的支持

这种类似于异表单的分合流的模式, 我们看看如下应用场景。

 

发起流程表单:

 

 

 

条件设置

 

 

 

 

Ccbpm的特点

1,  概念少。

2,  配置简单,可以任意的启动指定的节点。

 

 

 

 

Pattern7 同步聚合(Synchronizing Merge

 

基本概念

 

Ccbpm的支持

ccbpm的异表单的分河流相同, 解释说明请参考pattern 5 解释。

Ccbpm的特点

ccbpm的异表单的分河流相同, 解释说明请参考pattern 5 解释。

 

Pattern8 多重聚合(Multiple Merge

基本概念

 

Ccbpm的支持

ccbpm的异表单的分河流相同, 解释说明请参考pattern 5 解释。

Ccbpmworkidfid两个概念,一个是工作ID,一个是流程ID,他们来交替控制整个流程实例与每个子线程实例的状态。

Ccbpm的特点

ccbpm的异表单的分河流相同, 解释说明请参考pattern 5 解释。

 

Pattern9 鉴别器(Discriminator

 

基本概念

Ccbpm的支持

ccbpm中,有两个属性的控制,可以实现该功能。

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

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

Ccbpm的特点

简单、可靠。

2种结构化模式

 

Pattern10 任意循环(Arbitrary Cycles

基本概念

Ccbpm的实现

类似于ccbpmdemo中的稿件发布流程。

 

如果稿件符合要求,就跳出循环否则一直在循环里修改该文件。

 

 

Ccbpm的特点

完全是条件判断,在表单中增加一个审核组件,就可以把每次校验的信息,写入里面,完整的显示出来整个轨迹。

Pattern11 隐式终止(Implicit Termination

 

基本概念

Ccbpm的实现

这种类型属于ccbpm的线性流程的一种,该流程配上流程完成条件,就可以实现该功能。

流程完成条件,就是流程在前进中检查的条件,如果满足该条件,流程就停止运行,该流程实例结束。

Ccbpm的特点

流程完成条件:配置方式有多种表达式,根据不同的场景可以配置不同的条件。从这一点可以看出21中模式在ccbpm中的一些属性的配置就可以轻松实现。

 

2种结构化模式在JBPM4中的综合实现

 

 

 

4种包含多实例的模式

 

 

Pattern12 无同步的多实例(MI without

定义与概念

Ccbpm的模式实现

Ccbpm 有两种方式可以实现,第一种是父子流程,第2中是分合流。这两种模式都可以实现该种效果,但是不同的模式选择不同的场景。

 

对于买书这个事例使用分合流更贴切一些实现, 分合流中一次购买是一个主线程,多次付款就是子线程。

 

Pattern13 设计时确定的多实例(MI with a Priori Design Time Knoledge

定义与概念

 

Ccbpm的模式

 

这属于ccbpm的典型的合流节点处理各个子线程的任务比率。

 

概念:完成率 = 子线程上已经完成的数据/所有子线程数量*100%

说明:该节点对于合流节点与分合流节点有效,当子线程的完成率达到该值的时候,该节点的待办才能显示出来,否则该节点的人员不能处理待办。如果合流节点的处理人能够看到待办,他就可以对该流程进行操作,比如:发送、删除、退回、删除子线程等等。

 

Pattern14 运行时确定的的多实例(MI with a Priori RunTime Knoledge

 

 

 

Pattern15 运行时无法确定的的多实例(MI without a Priori RunTime Knoledge

 

定义与概念

 

Ccbpm的实现

这种方式属于ccbpm的父子流程来实现,开始节点启动一个任务,需要采购100台电脑,需要发起n此的选择供应商采购的子流程,每个子流程完成后,就访问父流程节点信息,进行相关的业务处理(就是是否启动下一个子流程,如果满足100,就不启动子流程了,直接完成父流程的任务,结束主流程.)

 

 

3种基于状态的模式

 

Pattern16 延迟选择(Deferred Choice

定义描述

定义描述:流程中某个点可以有多个分支进行选择。

Pattern4相比较:不是基于简单的数据或者决定就可以很明显地作出选择,而是会向系统或者执行环境提供多种可选择的分支;但是又不同于AND-Split模式,延迟选择只能选择一个分支执行,一旦选择了其中第一个分支,那么其他分支就会被撤销。这种延迟一直会持续到第一个选择分支开始实际运行。

       子:收到的一批商品运送到各个部门,到底选择什么样的运行方式,要看资源的可用性

 

Ccbpm的模式:

没有十分的了解,该模式,但是ccbpm模式支持方向条件的手工选择,有当前节点的操作人员来决定流程要发送到什么地方去。 详细文档:http://ccbpm.mydoc.io/?v=5404&t=17992

 

 

运行效果:

 

 

 

Pattern17 交叉存取并行路由(Interleaved Parallel Routing

 

概念与定义

 

 

Ccbpm处理的模式

这是典型的一种多任务分配流程,使用多维度的分合流可以实现,这个流程的特点是,一个操作人员可以处理三个不同的任务,这三个任务属于三个子线程,与普通的分合流不同的是这三个子线程是同一个人处理。在这里就决定了,有一个批次号(项目维度),在这里就是检查项目。

 

在接收人规则里:ccbpm对合流的节点处理人有一个这样的规则约定,下面是该文档的描述:

关于合流点的接受人按sql获取接受的表达式的问题

注意子线程向合流点发送时,接受人规则的表达式的变量是临近合流点的子线程节点变量。

比如: 流程编号为ABC三个节点.

A 是分流点, C是合流点 C是子线程。

如果C的接受人员规则是按sql计算:

配置的表达式如下表达式是错误的:

select UserNo as No, xx as Name from ND2701 WHERE OID=@OID

如下表达式才是正确的:

select UserNo as No from ND2701 WHERE OID=@FID

这是因为子线程在发送时获取的变量OID 是子线程的ID而非,干流上的WorkID.

关于子线程接受人的特殊约定:

如果遇到分组的维度,就约定返回4个列来解决问题,流程demo:\流程树\同表单分合流\一人多子线程模式(批次维度任务模式)流程.

在第2个子线程节点配置了如下SQL

输入图片说明

 

 

https://static.oschina.net/uploads/img/201506/21231659_Sbx3.png 

该数据源返回了三个列,分别是:No,Name,BatchNo No=操作员编号,Name=操作员名称,BatchNo批次编号。

 

注:这里的批次号,就可以标识了检查项目。

 

 

https://static.oschina.net/uploads/img/201506/21231659_Sbx3.png

Pattern18 里程碑(Milestone

定义概念

定义描述:一个活动的激活需要一种具体的状态,比如活动ABC,只有在AB都执行完了的情况下才能执行C

我的理解:这种模式有点类似于顺序模式?或者是同步模式?

 

Ccbpm的实现

这个可能类似与ccbpm的延续流程,当一个流程长度很大的时候,需要跨度很多年实施的时候,把该流程截成一段段的,分开设计,一条流程,是上一条流程的延续。

延续流程是父子流程的一种,但是延续流程只有一个段接一段,就是一个父流程有多个子流程,但是延续流程就只能有一个子流程。

2种取消模式

Pattern19 取消模式(Cancel Activity

定义与描述

定义描述:简单的理解,就是将某个活动取消

       子:比如下好订单后,“支付货款”活动正在运行中,此时用户取消订单

个人理解:取消某个活动,会引起几种后续情况:

                   1. 整个流程结束;比如订单取消后,订单的这个流程结束。

                   2. 退回上一个节点;比如付款后,用户取消付款,重新下订单。

 

Ccbpm的模式:

此模式与ccbpm的流程删除相同,流程删除是有删除规则的,不同的规则应用于不同的删除场景。在线文档:http://ccbpm.mydoc.io/?v=5404&t=17992

应用背景: 流程启动运行后,在一些节点当前处理人有权利执行流程终止,把当前的流程实例进行删除,根据不同的应用场景删除的处理方式有很多种,每种删除方式都对应ccBPM相关的api操作,下面我们把这几种删除方式说明一下,以方便让设计人员根据实际的规则来选择不同的方式。

不能删除: 该流程不允许用户删除.

逻辑删除:仅仅做上删除标记, 数据仍然在节点表单与流程报表里面.输入图片说明

记录日志方式删除 : 删除节点表数据,流程报表数据,并记录到 wf_workflowDeleteLog 表里作备案.

彻底删除 : 彻底清除该流程的所有数据,包括该工作实例的节点表单数据、流程报表数据、轨迹数据、退回、移交操作信息。

让用户决定删除方式 : 显示出对话框,让用户选择上面的删除方式.

其他:删除规则的API请查看代码: BP.WF.Dev2Interface.Flow_DoDeleteFlowBy *

1, 开始节点如果设置了删除按钮,如果不是退回来的节点,或者没有发送过的节点,就可能导致错误。

Pattern20 取消实例(Cancel Case

 

定义描述:如果一个活动产生了多个实例,那么仅仅撤销这个活动是不够的

                 要将他所引起的所有实例都移除才行

 

Ccbpm的规则:此规则是 Pattern19的流程删除实例的一种情况。

具有中国特色的工作流模式

Pattern1 回退(Reject

定义与描述

Ccbpm的模式

 

Ccbpm的退回,是由他的退回规则来确定的,他的退回规则如下:

在线帮助文档:http://ccbpm.mydoc.io/?v=5404&t=17968

https://static.oschina.net/uploads/img/201506/22225755_Bm9s.png

Pattern2 取回

定义与描述:

定义描述:流程由A运转到B,在B还没有完成任务前,A的执行者可以收回任务,重新执行

       子:比如科员提交了一份文件给处长审批,处长还没有签字前,科员可以自己拿回来重新修改

 

CCBPM的支持:

这里的取回,相当于ccbpm的撤销,详情请参考:

http://ccbpm.mydoc.io/?v=5404&t=17919

https://static.oschina.net/uploads/img/201506/21233812_0xX7.png

 

 

 

Pattern3 委托代办

定义描述:

工作流的某个活动指派人由于某种原因无法完成任务,但是可以手动指定代办人

 

 

ccbpm的授权

授权与授权方式登录,是在ccbpm中可以设置的。

授权就是,我把权利授权给指定的人,授权方式登录,就是我需要把权利授权给指定的人。

 

授权,有授权范围,如下图标识了三种授权范围:

 

qifenglin进来,进入授权方式登录:

 

 

退出授权登录模式

 

 

 

Pattern4 催办 Escalation

 

定义描述

能够设置要求,如果某活动中某个时间内还未被完成,将进行通知等活动,甚至是修改活动的执行者

 

Ccbpm的支持

   催办是在在途中体现出来的,在途就是我参与的工作,该工作没有完成。

 

催办之后ccbpm是写入了消息表 sys_sms ,这个表的数据用于发送邮件,微信、或者短信提醒。

Pattern5 自由流

定义与描述

定义描述:能够自由人为的控制流程的流向。

      子:比如设计时定义好的流程A-B-C,但是完成了A以后,认为的将流程变为A-C,直接将B给忽略掉.

 

Ccbpm的支持:

指定的节点可以定义未来流程的走向,与指定的节点的处理人,让流程运转的控制路径,在当前节点可以自己定义,也可以插入一条指定的子流程,这就是ccbpm的自由流程的概念。在线帮助文档:http://ccbpm.mydoc.io/?v=5404&t=17978

 

流转自定义界面:

https://static.oschina.net/uploads/img/201506/22231315_hMtz.png

 

 

Pattern6 会签

定义与描述

定义描述:会签是撰拟公文的过程中,主办单位主动与有关单位协商并核签的一种办文程序,一般当公文的内容涉及本单位的多个部门或与其它单位有关时,需要进行会签。

      子:比如大学生毕业离校,需要在不同的部门机构进行签字,全部审核通过后才能离开学校。

                但是签字的先后顺序可能并没有指定。

    点:问题在于如果会签过程中有一个部门审核不通过,其他已经签过的部门是否需要重新审核?

 

 

Ccbpm的定义:

      ccbpm里是多人处理规则,就是一个节点多个人都可以处理,根据业务场景不同,ccbpm的多人处理规则如下,在线帮助文档描述的更清楚:

http://ccbpm.mydoc.io/?v=5404&t=17947

https://static.oschina.net/uploads/img/201507/08091121_CAdZ.png

根据不用的场景,ccBPM把多人在普通节点下的处理模式分为如下几种。

抢办模式:

A发送到B B节点上有n个人可以处理。这n个人都可以看到待办,当其中一个人处理后,其他人的待办就消失了。这样的工作模式属于抢办,这n个人可以同时打开,当一 个人发送后,其他人都不能在发送了。通俗的说,也就是谁抢到了这件工作,就是谁处理的。抢办模式是一个默认的处理模式。

协作模式:

A发送到B B节点上有n个人可以处理。这个n个人都可以去处理,都可以去发送,有最后一个处理人发送到下一个节点上去,这n个人的处理不分顺序。这样的模式我们叫做协作模式。

协作模式通常用在具有审核组件的表单中,每个人都可以填写自己的意见,发表自己的看法,在审核组件里审核每个人在一个节点上只能写入一条数据,也就是说只能表达一次意见。

也经常用在传阅的情况下,必须这些人都读取了,知道了才能向下运动。它与抄送不同的地方是,抄送可以不看,就可以向下运行,但是他必须处理才能向下运行。

通常的协作模式,就是多人都要点击一下发送功能按钮,来确认自己处理了,确认自己同意了或者认可了。

队列模式:

A发送到B B节点上有n个人可以处理。这个n个人按照设置的先后顺序去处理,在同一个时间点必须有一个人待办,其他人看不到。

应用场景: 一个公文发送给一个部门,该部门下n个人可以接受(注意这是一个节点),按照国内的行政制度,这n个人会从小到达排一个队列,有最小的级别的工作人员审 批,然后依次类推,走到最后由最后一个人发送到下一个节点去。这n个人都是该节点的处理人,这n个人的审核步骤是由他们的顺序确定的,所以在设置该节点的 接受人时,要按照顺序执行。

通常这样的模式也与审核组件一起使用,每个人表达意见后,就发送到下一个节点,当然这样的模式也

共享模式:

A发送到B B节点上有n个人可以处理。ccBPM有一个任务池,这写人都需要从这个任务池里获取。

  关于对ccBPM任务池的描述:

  1,在流程属性与全局配置设置了启动任务池的状态下,如果一个节点遇到多个人处理,这个任务就放在了任务池里,只有参与处理的人人员才能看得到。

  2,工作人员在处理该工作之前需要申请,放到自己的代办里,一人申请之后,其他人就不能申请了,多个人同时申请第一个人申请的先得到。

  3,申请之后,任务池里就不出现在条工作而是进入了被申请人的待办里。

  4,如果申请人处理不了这件工作,他可以把该工作放入任务池中,放入任务池的工作可以被其他的N个人可以看到。

  5,不管取回与放入,都需要写入流程日志。

  6,任务池的设计:  

  1,在流程引擎控制表 WF_GenerWorkFlow 中增加了如下字段:      TaskSta, 枚举类型, 0=不启用,1=共享,2=被申请。      TodoEmpsNum, Int类型,处理人员数量,当前节点工作有多少人待办,如果此值大于等于2,讨论共享任务才有意义。 TodoEmps varchar(500) 待办人员,格式为 处理人员编号,处理人员名称; 比如:guobaogeng,郭宝庚;fuhui,福惠;      

  2,在流程引擎控制表的人员列表中 WF_GenerWorkerList 中对于IsEnable字段,进行扩充了,如果等于 -1=任务池禁用,0=分配工作被屏蔽,1=正常。     3,增加了一个功能界面 /WF/TaskPoolSmaller.aspx 次功能界面是有在任务池启用才能被使用。

  4,在流程属性里增加一个字段 IsEnableTaskPool 是否启用任务池? 此字段用来控制该流程是否启用任务池。

  任务池的SDK接口

  1,获得共享任务: DB_TaskPool

  2,获得共享任务中我的待办:DB_TaskPoolOfMy

  3,从共享任务中取回:Node_TaskPoolTakebackOne

  4,把取回的共享任务放入任务池: Node_TaskPoolPutOne

 

 

 

总结说明

总结概述

BPM领域支持流程运转的理论模型有多种,有的21种、28种,32种。每种模式都代表了这种模式的理论设计者研究者的人员主张、思想。这些模式尽可能的,完全去覆盖到现实生产、工作、应用上的流程流转规则。 但是任何领域都有自己未探索到的流程运转可能,如果说自己的理论能够涵盖所有的应用需求,那就说的有点太早。

就类似于世界上的教派或者哲学家一样,不同的教主与哲学家有不同的世界观,不同的世界认识,都对自己的“追随者”来宣扬自己的主张、观点,但是他们也能“和谐”相处,对于同一个事物都有自己的观点,也有相同的认识,同时也有自己的“理论”解释不了的事物。

jbpm中有20种流程运行模式,在ccbpm中宣称有4种,相对土生土长的ccbpm来说,与他自身带的ccfomr结合一起工作,更能灵活的适应国内各种复杂的环境要求。

一下文章介绍了Ccbpm的流程的4大运行模式,以及是如何支持各式各样的流程变化。

Ccbpm控制流程运行模式的方式

Ccbpm使用节点模式、流程属性、节点属性来控制流程运转规则,以不不变应万变的方式来应对各种生产、管理模式下的流程运转需要。

Ccbpm的概念比较简单容易理解,它有4大运行模式,分别是线性流程、同表单分合流、异表单分合流、父子流程。

节点类型:普通节点、分流节点、合流节点、分合流节点、子线程节点。

 

节点多人处理模式:抢办模式、协作模式、队列模式、共享模式。

 

与父子流程相关的一些属性控制等等,如下图。

 

 

Ccbpm 4大流程运转模式的解释

     线性流程:在统一个时间点,只有一个活动的节点,每个节点都按照一定的步骤,一定的顺序就执行,在特定的节点允许跳转、允许自定义以后的流程运行步骤,我们把这样的流程称为线性流程,也叫顺序流程。在一个系统中大约85%以上的流程,都是该类流程。

 

 

自由流程:

 

 

 

同表单分合流:ccbpm的强大在于ccbpm集成了ccform。流程与表单是相辅相成的,就好像一个火车头与车厢的关系,同表单的分合流,就是一个节点上可以存在多个活动的线程,线程与处理人是11的关系,每个处理人的内容都是一样的,所以我们成为同表单的分合流。

如下图:

 

 

 

异表单分合流:如果您了解了同表单的分合流,就不难了解这个流程模式的概念了。如下图:

 

父子流程: 父子流程,就是在一个流程A的一个节点上,可以启动另外的一个流程B,当前的流程我们称为父流程,被启动的流程成为子流程,如果子流程B的一个节点上启动另外一个流程C,那末B流程与C流程就是父子流程, A C就是爷爷与孙子关系,但是ccbpm不研究跨界关系,仅仅研究相近的两个流程之间的关系。

比如:一个工程类的流程,调用施工流程、与催款流程,如下图:

 

 

节点多人处理工作模式:

     详细文档地址:http://ccbpm.mydoc.io/?v=5404&t=17947

     多人待办工作处理模式,也是待办处理模式。是当接受的节点是多个人的时候,如何处理待办?

 

 

==========OVER==========

 

分享到:
评论

相关推荐

    Java四大主流开源工作流引擎分析Shark,osworkflow,jbpm,jflow

    Java平台上的工作流引擎在企业级应用中扮演着至关重要的角色,它们帮助企业自动化业务流程,提高效率。本文将深入分析四个主流的开源工作流引擎:Shark、osworkflow、jbpm和jflow。 首先,Shark是Enhydra项目的一...

    jbpm-2.0-beta1.zip_java 工作流引擎_jbpm_jbpm-demo_工作流_工作流引擎

    jbpm是一款开源的工作流管理系统,主要面向Java开发者,它提供了强大的流程定义和执行能力,帮助企业或组织实现自动化的工作流程。jbpm-2.0-beta1是该系统的早期版本,其核心功能包括工作流引擎、流程建模工具以及一...

    jbpm和shark工作流引擎对比.doc

    首先,jbpm和shark工作流引擎都支持Xpdl(xml process definition language)和Bpel(Business Process execution language),这两种语言都是工作流引擎的 industy standard。jbpm还支持Jpdl(JBoss Jpbm Process ...

    jbpm工作流引擎总结文档

    jbpm工作流引擎基于J2EE的轻量级,纯java,开源的工作流管理系统。

    jbpm Java工作流 教程

    JBPM(Java Business Process Model)是Red Hat提供的一款开源的工作流引擎,用于在Java应用程序中实现业务流程管理(BPM)。它基于规范化的BPMN 2.0标准,支持图形化流程设计与复杂的业务逻辑处理。JBPM允许开发者...

    jbpm工作流引擎介绍

    jbpm(Java Business Process Management)是一款开源的工作流引擎,它为业务流程自动化提供了一套强大的框架。jbpm致力于实现业务流程的建模、部署、执行和监控,是基于Java技术的,因此它天然地适用于Java开发环境...

    JBPM工作流引擎内核设计思想及构架笔记分享

    JBPM 工作流引擎内核设计思想及构架笔记分享 上文提到,工作流引擎内核是一种微内核的流程引擎架构,它只包含最基本的对象和服务,以及用于解决流程运行问题的调度机制和执行机制。引擎内核的设计思想是围绕着如何...

    基于java的jBPM4工作流引擎

    【基于Java的jBPM4工作流引擎】是企业级业务流程管理的重要工具,它提供了一种灵活且可扩展的方式来定义、执行和管理工作流。jBPM4是jBPM系列的一个版本,专为Java开发者设计,允许他们构建复杂的业务流程,通过编排...

    JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子

    JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子。带有文档教程和所有源码+JAR包。在网上找了半天jbpm6\jbpm7的资料,都很少。所以 环境:Myeclipse2015 JDK1.7 mysql 5.0 Struts2+Spring3.1 1...

    jbpm工作流引擎介绍.ppt

    总之,jbPM作为一个强大的工作流引擎,以其简易的JPDL语言、灵活的运行模式和丰富的工具集,为企业提供了一种有效管理业务流程的解决方案。通过与Dorado等前端应用的整合,jbPM可以实现高效、直观的业务流程自动化,...

    jbpm.rar_jBPM User Guide chm_java 工作流_jbpm_jbpm-demo_工作流引擎

    jBPM是一个基于Java的轻量级工作流引擎,它遵循Business Process Execution Language for Java (BPEL4J)标准,支持业务流程模型与Notation (BPMN) 2.0规范。jBPM不仅提供了工作流引擎,还包括了一个图形化的建模工具...

    Jbpm工作流引擎使用例子

    Jbpm是一款强大的开源工作流引擎,主要用于设计、执行和管理业务流程。在这个"Jbpm工作流引擎使用例子"中,我们可以深入学习如何利用Jbpm进行流程的创建、流程实例的启动与管理,以及如何将其与Java、Hibernate等...

    工作流引擎开发包jbpm

    jbpm工作流引擎是一款强大的开源工作流管理系统,用于构建企业级的应用程序,它允许开发者定义、执行和管理工作流程。jbpm的核心功能包括流程定义、流程实例管理、任务管理和监控。这款开发包是针对版本3.2.GA的,这...

    jbpm4.3 工作流实例 java

    【jbpm4.3 工作流实例与Java结合详解】 在信息技术领域,工作流管理系统(Workflow Management System,简称WfMS)是用于自动化业务流程的软件系统。jbpm(Business Process Management)是一款开源的工作流引擎,...

    eclipse工作流插件 含jBPM_4.4_开发指南

    Eclipse作为一款流行的Java IDE,其工作流插件为开发者提供了图形化界面来设计、调试和部署工作流模型。jBPM插件是Eclipse中的一个扩展,使得开发者可以直接在Eclipse中进行jBPM流程的开发。这个插件通常包括以下...

    工作流引擎jbpm学习笔记

    工作流引擎jbpm学习笔记 jbpm是一个专业的工作流引擎,用于定义、管理和执行业务流程。它可以帮助我们简化工作流程的开发和维护,提高工作效率和可扩展性。 一、什么是公文流转? 公文流转是指公文在定义流转中的...

    JBPM工作流引擎

    JBPM工作流引擎是一种基于Java的开源工作流管理系统,它允许开发者和企业构建、部署和管理业务流程。JBPM提供了全面的工作流解决方案,包括流程设计、执行、监控和优化,旨在提高工作效率,简化复杂的业务操作。 ...

Global site tag (gtag.js) - Google Analytics