1流程单起点单终止模型

单起点:一个流程定义必须有且唯一起点

单结束点:一个流程定义必须有且唯一结束点。

约定:提单与结束是每个流程必须有的活动,且唯一只有一个提单和结束。

2串行模型

描述:串行(Sequence)是最为简单,也最为容易理解的模型。按照预定的任务列表,有序的执行。

3自循环模型

描述:一个步骤可以自己再次发给其它人员但步骤是同一个。同一个任务节点,重复的执行多次。

又分两种类型:

1、  自由循环FreeCycle

在任务执行后由人为的决定是否继续重复的执行这次任务(自由度大)

2、  联合审批循环JointCycle

在任务执行后照设定的规则,决定是否重复执行。(通常这种情况是联合顺序审批,即第一个人审批完后下一步还是发给这个步骤但审批人设定好的人,直至最后一个人审批时再通向下一步)

4会签模型

描述:并行会签(Parallel),也叫“And 模式”。是说在流程运行过程中,因为不同的条件或情况,或者处理的业务需要多部门(多任务)分开处理,而产生了流程分支。并行开始步骤必须与汇聚步骤成对存在。都执行完(到达And汇聚点)后,才能激活后续的任务,也就说流程才能正确的往下运行。

注意:并行步骤与并行汇聚步骤需要配套成对存在。不允许AndSplit与OrJoin模式。

5发散聚合模型

发散模型与并行模型类似,只是必散的下一步骤列表可一个或任意多个,聚会步骤也是可任一个或任何多个根据规则。

有可能不是“同时聚合”

聚合表示的是:在聚合点,会等待所有分支的到来,如果不考虑超时(一般流程回

设定任务执行期限)和异常等情况下,流程必须等待所有的分支(Task B和Task C)都执行完(到达And汇聚点)后,才能激活后续的任务,也就说流程才能正确的往下运行。

这里面会涉及到如何聚合的问题,是人工聚合,还是自动聚合。一般这里会引入规则引擎(Rule Engine)来负责分支的聚合,按照预定的规则,将流程数据(状态)汇聚。

聚合规则:聚合步骤不一定前面是发散步骤只要达到聚合条件则转向下一步。

聚合步骤相对独立,对于所有迁入者进行规则计算,可以指定哪些前继必须都到达才能产生该步骤的待办,其它为前继为可选到达项。先到先计算,符合聚合条件则产生待办,其它未到达的分支将调用任何回收器回收后被抛弃。

等待所有条件满足后聚合步骤而产生任务待办,聚合步骤也是一个处理步骤,只是处理人必须是任一人响应方式。

三类聚合规则

同步聚合MergeAnd

异或聚合: MergeXOR

多重聚合:MergeOR

l  A、B、C、D必须全部到达(all),all代表所有步骤

l  A、B、C、D任意一个到达(*),*号代表任一步骤

l  A、B必须到达,C为可选A&B

l  A、C必须到达,B为可选A&C

l  A、B必须到达,C为可选A&B

l  A、B至少有一个到达C为必到达(即在一个集合中至少有N个到达)(AB,1)&C

l  A、B、C只要有一个到达(ABC,1)

l  ABD集合中必须要有A,而整个集合至少有2个到达,运用的规则为第一条,(ABCD,2)&A

6异或(独占)模型

描述:异或(XOR)又叫Exclusive Choice(独占式选择)当一个任务处理完后,发现其后面可允许走多个分支流程,但只允许选择其中某一个分支运行。虽然在任务Task A 后预订了三个不同的任务,但是仅Task D 满足条件一般为人工操作选择,也存在根据规则自动选择分支,造成后续的流程中,走了A——D 分支,而另外的分支被抛弃。

7回退模型

1.7.1 退回

回退,在有的应用中叫“退回”。

如下图所示,有任务A到任务B 属于正常发送,但从任务B到任务A,则出现两种情况:

(1)迁移退回:正常发送,如图中B—A黑色线;

(2)被退回:可能因为某些特殊原因,被任务B退回,要求任务A重新办理,如图中B—A红色线。虽然都是从B到A,代表的意义却完全不同。

1.7.2 退回到提单

可设置是否仅退回到提单。

1.7.3 退回任意历史步骤

这里要控制好并行的问题,在并行分支中的活动只能退回并行中的步骤,而不能退回到并行前的步骤,因其它分支的流转还在继续当中。包括迁移退回也不能如此设计。

1.7.4 不可退回模型

外部活动不可退回也不可迁移退回到发散聚合模型的中间或并行会签模型中间的活动。

并行内部的退回只能在内部发生

发散内部的退回只能在内部发生

驳回是一个非常复杂的模式之一,以问题已在最新的F2BPM中解决,并行内和并行外都能驳回,详细请看:

驳回设计专篇 http://www.cnblogs.com/f2flow/p/6833152.html

8自动分组并行模型

描述:可以根据选择一批参与者系统自动根据参与者的部门进行分组产生N个分支,每条分支上的审批步骤是一样的。

9任务分发模型

描述:分发回收即没有后续步骤,是一个分发回收自循环步骤,像发作业本一样,班主任发给班长,班长现发给组长,最后由组长再发给组员,然后做完作业,由组员交给组长,组长交回给班长,班长交给班主任最后发散结束。

10 自动活动模型

描述:自动模型,又叫鉴别Discriminator Choice。多了一个鉴别器(Discriminator)或者叫自动选择模型。当任务达到这个鉴别器的时候,鉴别器会根据当前流程所处的状态,对比预先设定的一些选择规则,自动判别接下来流程的流向,也就是自动根据条件,选择一个满足条件的分支运行。即自动步骤。

鉴别规则做在活动上。

11传阅及自动转阅模型

11.1 描述

传阅不影响流程的流转,被传阅的对象只是会收到一条只看的待阅实例,获取打开些流程实例的查看详细表单信息的权限。所有传阅的记录过程将显示在工单的详细里面。记录下传阅过程。

11.2 手动传阅

在待办人打开待办界面可以传阅给指定的人员。

11.3 自动传阅

可以设置在进入指定步骤时自动转阅给预先设定的人员。

11.4 相关界面

12转交模型

12.1 描述

可以转交给其它人协助处理,每个步骤可以定义是否允许转交。

13等待子流程模型

描述:在这种方式下,当子流程运行的时候,主流程会暂停,等待子流程的完结。

14主子流程并行聚合模型

描述:激活子流程后,主流程并没有停止,而是基于按照预定的流程方向运行;同时,激活后的子流程也同样处于软转状态。当到达聚合步骤时如果有一方未到达的情况下,另一方会等待。当然,这其中可能涉及到等待超时等不良因素,这时候主流程时选择继续等待,还是发催办消息,还是继续运行,就是工作流引擎的设计问题了。

15外嵌子流程模型

描述:在主流程激活子流程后,主流程继续运行,且不关心子流程的运行状态或运行结果。这种方式使用活动完成时触发事件引发子流程的启动。

结语:

运转模型表面看似从一个步骤转向另一个步骤,实质还需要思考各种步骤的可进入可分发出来的规则如停等机制,参与者,访问控制等等,还有流程实例的持久化,步骤在运转过程中一系列需要处理事项。所以不要简单认为工作流引擎就是做步骤的跳转。虽然petri网是一个很著名的工作流网是有向图的思想,但是如果

你不对有向图做简化改造和边界设定,也将很容易就暴露出petri网的缺点出来即复杂性问题,容易无限庞大而难以理解。在有向图的概念中是没有中国特色退

回的概念,所以你还需要加入退回机制的思想。加上petri只是提供一种跳转思想的参考,所以可借用petri的思想做为参考,从而设计出符合中国特色的流程引擎思想!

一句话总结:流程引擎是一个精细化工程

转载于:https://www.cnblogs.com/f2flow/p/3659756.html

F2工作流引擎之 工作流运转模型(三)相关推荐

  1. python工作流引擎_工作流,活动图和Python协程(一)

    UML里面大家用得最多的是类图和序列图,比较少用到活动图(activity diagram).其实活动图在某些业务场景下也是简单实用的,它相比常规的流程图主要就多一个fork/merge原语,可以说是 ...

  2. 如何优雅的设计工作流引擎(荣耀典藏版)

    目录 前言 一.业务应用场景 二.工作流介绍 2.1 定义 2.2 工作流参考模型 2.3 工作流引擎特性 2.3 工作流引擎特性 2.5 工作流引擎和状态机的差异 三.开源工作流引擎 3.1.Act ...

  3. 工作流系统开发之二十二 dotnet版工作流引擎

    工作流管理系统为实现流程的自动化,必须包含一个工作流引擎,工作流引擎负责流程的定义,解释和运转.流程引擎是对业务流程的一个抽象,因此工作流引擎的设计模型是决定流程功能的重中之重,将直接影像流程的各个环 ...

  4. 工作流引擎核心设计思路!

    作者:vivo 互联网服务器团队- Cheng Wangrong 一.业务背景 营销自动化平台可以支持不同用户生命周期的活动旅程策略配置 ,根据用户触发的不同活动行为,进行差异化的营销触达方案.同时各 ...

  5. LeaRun .Net Core/Java工作流引擎,分离式前端,升级Vue

    流程作为企业管理系统的核心,在企业的发展过程中具有重要的作用.通常来说,一个完整的流程大致包括有工作流引擎.工作流设计器.流程操作.客户界面.流程监控.表单设计器.表单集成以及与应用程序集成等. 工作 ...

  6. JBPM工作流引擎内核设计思想及构架

    1 前言 流程引擎内核仅是"满足Process基本运行"的最微小结构,而整个引擎则要复杂很多,包括"状态存储"."事件处理"."组 ...

  7. 浅谈备受开发者好评的.NET core敏捷开发工具,讲讲LEARUN工作流引擎

    通俗来讲,所谓一个工作流管理系统,如果将其拆分出来一个个单讲话,大致可理解为由工作流引擎.工作流设计器.流程操作.工作流客户界面.流程监控.表单设计器.与表单的集成以及与应用程序的集成等几个部分组成. ...

  8. 史上最全的工作流引擎 Activiti 学习教程(值得收藏)

    点击关注公众号,实用技术文章及时了解 一.工作流介绍 1.1 概念 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是"使在多个参与者之间按照某种预定义的规则 ...

  9. PHP 开源工作流引擎 Tpflow V6.0.2 正式版发布

    欢迎使用 Tpflow V6.0 工作流引擎 TpFlow工作流引擎是一套规范化的流程管理系统,基于业务而驱动系统生命力的一套引擎.彻底释放整个信息管理系统的的活力,让系统更具可用性,智能应用型,便捷 ...

最新文章

  1. sqoop mysql parquet_sqoop一些语法的使用
  2. Video 对象方法 canPlayType()
  3. Winfrom窗体应用程序___DataGridView
  4. 360天擎默认卸载密码_用好360(四)
  5. 数据分析学习笔记4-----处理缺失数据
  6. C语言不挂科之我爱谭浩强——选择填空拿满分(附例题答案和知识点详解)
  7. LeetCode81. 搜索旋转排序数组 II(二分查找)
  8. 五句话搞定JavaScript作用域
  9. up能不能应急启动计算机,启动盘 提升电脑的性能
  10. masm32环境配置
  11. 修复shapefile编码问题
  12. 【泛微Ecology9.0】安装\启用非标功能
  13. 用qq账号和密码实现登录网易云音乐
  14. lcd显示器测试软件,tLCDtest(液晶屏幕测试软件)
  15. 【虚拟机】无法连接虚拟设备 sata0:0,因为主机上没有相应的设备。 您要在每次开启此虚拟机时都尝试连接此虚拟设备吗?
  16. 全国青少年编程等级考试python一级真题2021年3月(含题库答题软件账号)
  17. 初等函数导数与泰勒展开
  18. matlab中的strfind和findstr函数
  19. BurpSuite超详细安装教程-功能概述-配置-使用教程---(附下载链接)
  20. python编程midi键盘按键_用树莓派自制 MIDI 键盘

热门文章

  1. python匿名函数的使用介绍
  2. python下载numpy库_安装numpy库
  3. linux内核版本 2.6.39,编译RedHat Linux-2.6.39内核
  4. php无法创建cookie,php cookie无法正常工作
  5. 动态改变标题_小米相册更新,新增动态换天/赛博朋克/MIUI12界面等等!
  6. 怎么在html mui中找到下拉刷新,HelloMUI例子中的下拉刷新
  7. 设计模式之十一:创建模式(Builder Pattern)
  8. C#制作QQ截图的自动框选功能的个人思路(三)自动框选
  9. LTE学习:CCE(2)
  10. python中组合框_Tkinter Python中的多个组合框