驰骋工作流引擎JFlow与activiti的对比之3种基于状态的模式

  1. 延迟选择(Deferred Choice)

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

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

JFLOW中的模式:

通过在节点属性—基本属性中,设置手工选择方向条件的方式,可以实现此种模式。实际上JFlow就是将流程流转的权限在交给了当前节点的操作的人员,由他来决定流程要发送到什么地方去。

 

  1. 交叉存取并行路由(Interleaved Parallel Routing)

或者叫任意顺序流,指几个活动必须按顺序执行,不能同时进行,但是这种顺序又是不定的。

例子:体检的时候有很多项目,这些项目不能同时进行,但是可以以随意顺序进行。

JFLOW中的模式:

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

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

 

  1. 里程碑(Milestone)

一个活动的激活需要一种具体的状态,比如活动A,B,C,只有在AB都执行完成的情况下才能执行C。

ACTIVITI 中的模式:

类似与顺序模式或者同步模式。

JFLOW中的模式:

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

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

猜你喜欢

转载自blog.csdn.net/zhmengjuan/article/details/85234618
今日推荐