前言:

在BPM领域支持流程运转的理论模型有多种。有的21种、28种。32种。

每种模式都代表了这样的模式的理论设计者研究者的人员主张、思想。这些模式尽可能的,全然去覆盖到现实生产、工作、应用上的流程流转规则。

可是不论什么领域都有自己未探索到的流程运转可能,假设说自己的理论可以涵盖全部的应用需求,那就说的有点太早。

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

这篇文章介绍了Ccbpm的流程的4大执行模式。以及是怎样支持各式各样的流程变化。

Ccbpm控制流程执行模式的方式:

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

Ccbpm的概念比較简单easy理解。它有4大执行模式。各自是线性流程、同表单分合流、异表单分合流、父子流程。

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

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

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

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

 线性流程:在统一个时间点,仅仅有一个活动的节点,每一个节点都依照一定的步骤,一定的顺序就执行。在特定的节点同意跳转、同意自己定义以后的流程执行步骤。我们把这种流程称为线性流程,也叫顺序流程。

在一个系统中大约85%以上的流程,都是该类流程。

自由流程:

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

例如以下图:

异表单分合流:假设您了解了同表单的分合流。就不难了解这个流程模式的概念了。

例如以下图:

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

比方:一个project类的流程。调用施工流程、与催款流程。例如以下图:

节点多人处理工作模式:

具体文档地址:http://jflow.mydoc.io/?v=5404&t=17947

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

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

抢办模式:

A发送到B ,B节点上有n个人能够处理。这n个人都能够看到待办,当当中一个人处理后。其它人的待办就消失了。这种工作模式属于抢办,这n个人能够同一时候打开,当一 个人发送后,其它人都不能在发送了。

通俗的说,也就是谁抢到了这件工作,就是谁处理的。

抢办模式是一个默认的处理模式。

协作模式:

A发送到B ,B节点上有n个人能够处理。

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

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

也经经常使用在传阅的情况下,必须这些人都读取了,知道了才干向下运动。

它与抄送不同的地方是。抄送能够不看,就能够向下执行,可是他必须处理才干向下执行。

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

队列模式:

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

综述:一个好的工作流引擎。一定是与业务接地气的引擎,一个好用的流程引擎应用在MIS系统上,一定是与表单引擎结合的引擎。流程在运动过程中能够操纵表单数据的处理。

您假设对CCBPM感兴趣。

请关注微信获取源代码:

ccbpm工作流引擎是怎样支持多种流程模式的的更多相关文章

  1. CCBPM工作流引擎的消息机制与设计

    keyword:ccflowjflow 消息机制流程引擎 自己主动发送短信 发送邮件 发送消息 流程引擎微信连接 消息接口 关于ccbpm: 我们把ccflow jflow两个版本号的工作流引擎统称为 ...

  2. .net工作流引擎ccflow新增支持PostgreSQL数据库的功能的发布说明

    关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎  java工作流引擎. 各位驰骋工作流引擎爱好着,经过驰骋公司与正元公司的共同努力,ccflow支持Post ...

  3. java工作流引擎证照库类型的流程设计 实现方案与演示案例

    关键词:.Net开源工作流    工作流引擎   工作流引擎常用信息存储  流程前置导航 证照库的概念&应用场景: 我们在梳理流程的时候,会发现有一些流程的发起是基于一个实体信息的. 比如:纳 ...

  4. 基于Activiti工作流引擎实现的请假审核流程

    概要 本文档介绍的是某商用中集成的Activiti工作流的部署及使用,该框架用的Activiti版本为5.19.0.本文档中主要以一个请假流程为例子进行说明,该例子的流程图如下: 这是一个可以正常运作 ...

  5. Activiti-5.3工作流引擎-源码解析(流程文档解析)

    前面我们通过BPMN20.xsd和Activiti自定义的XML Schema文件初步了解了业务流程模型的定义,那么现在我们来了解一下流程文档的解析过程,这个过程主要是通过代码解析来完成. 代码解析过 ...

  6. 工作流引擎之Elsa入门系列教程之一 初始化项目并创建第一个工作流

    引子 工作流(Workflow)是对工作流程及其各操作步骤之间业务规则的抽象.概括描述. 为了实现某个业务目标,需要多方参与.按预定规则提交数据时,就可以用到工作流. 通过流程引擎,我们按照流程图,编 ...

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

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

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

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

  9. Java工作流引擎-中间件模式代码集成

    关键词:工作流快速开发平台  工作流流设计  业务流程管理   asp.net 开源工作流  bpm工作流系统  java工作流主流框架  自定义工作流引擎 表单设计器  流程设计器 前端代码集成步骤 ...

随机推荐

  1. Lombok 使用小结

    Lombok 简介 Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO).它通过注释实现这一目的.通过在开发环境中实现 Lo ...

  2. jstree 获取选中节点的所有子子点

    //加载功能树 function initTree() { $.jstree.destroy(); $.ajax({ type: "Get", url: "/Depart ...

  3. 移动端效果之LoadMore

    写在前面 列表一直是展示数据的一个重要方式,在手机端的列表展示又和PC端展示不同,毕竟手机端主要靠滑.之前手机端之前一直使用的IScroll,但是IScroll本身其实有很多兼容性BUG,想改动一下需 ...

  4. jQuery的事件绑定命名空间

    jQuery的bind的函数在实际应用中用的不是特别多,只是他可以绑定一个事件,但不会即时触发,也可以通过unbind来解除绑定.在没有看到这篇文章之前,我一直不知道原来bind也可以有命名空间.事实 ...

  5. 2017/10/10 jar包错误

    Description    Resource    Path    Location    Type Archive for required library: 'WebContent/WEB-IN ...

  6. 将传统项目改造为SSM框架的项目

    首先 第一步改变传统dao层 先要再resource文件夹下创建一个applicationContext.xml  内容如下 关键代码     <!--        使spring扫描包下的所 ...

  7. Ubuntu安装pyenv实现多版本控制

    Ubuntu安装pyenv实现多版本控制 git clone git://github.com/yyuu/pyenv.git ~/.pyenv echo 'export PYENV_ROOT=&quo ...

  8. 鼠标相关操作(Cursor类及相关API)

    Cursor.visible:属性,显示或者隐藏鼠标.  Cursor.lockState = CursorLockMode.Locked:锁定鼠标到游戏窗口的中心. (CursorLockMode: ...

  9. 解决阿里云服务器3306端口无法访问的问题(windows server 2008r2)

    3306端口一般是指mysql数据的默认端口.郁闷了几天的问题,远程无法连接服务器上的mysql服务.今天终于得到彻底解决. 首先,你要确保在服务器上安装好Mysql,并能本地启动.修改密码(如不知道 ...

  10. PE文件格式分析

    PE文件格式分析 PE 的意思是 Portable Executable(可移植的执行体).它是 Win32环境自身所带的执行文件格式.它的一些特性继承自Unix的Coff(common object ...