以ccbpm流程引擎为例,解说一下流程引擎启动的过程。

  1. 启动流程设计

流程启动是流程运动的第一个环节,有如下几个步骤,选择一个流程模版,进入流程启动程序,其次检查一下该流程模版是否可以被该人员发起,不能发起提示错误信息。

  1. 启动过程图

 

 

 

 

选择流程模版

是否可以启动该流程

执行用户登录

流程启动程序

提示错误,结束.

创建WorkID

判断是否有空白的WorkID?

 

注册流程引擎表

写入流程业务表一条记录

查询出来流程引擎注册表数据,业务表数据,

返回给前台用户。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

写入流程业务表一条记录。

 

  1. 流程状态变化的概要说明

操作员启动一个流程,创建一个workid,这个时候的状态是空白状态,也叫站位状态,如果在启动之前已经有了这个站位状态,它就不在创建新的workid而是取出来这个workid作为当前流程的实例。

如果启用了草稿规则,并且允许有草稿的模式下:

这个时间,如果用户点击保存该状态从空白状态转化为草稿状态,如果用户执行发送当前节点就运行到下一个节点上去了,当前状态变为运行中的状态。如果用户直接关闭了,这个时间的状态就是草稿状态,可以在草稿里找到这条实例记录。

如果不启用草稿,在这种模式下:

这个时间,如果用户点击保存,仍然是空白状态。用户点击发送后,由空白状态转化为运行中状态,当前节点运动到下一个节点上去,下一个节点的工作人员就产生了待办。

如果上一个节点退回了,执行了退回操作,当前的流程状态就变成为退回状态,上一个节点人被退回人就有了待办工作,被退回人打开后,就可以看到退回消息,他点击发送后又变成了运行中的状态,发送到下一个节点上去了。

流程走到最后一个节点,点击发送,整个流程就结束了,状态变为流程完成状态。

  1. 接口定义 Node_CreateBlankWork(String flowNo)

创建一个空白的WorkID,需要指定一个流程编号,返回一个workid,开发人员拿到这个workid后,就可以作为主键,保存开始表单数据了。

 

 

生成一个序列号的定义:

 

该方法有多个变形,在以后的父子流程的时候用到:

在创建workid的时候,如果用到了ccbpm的内部表单,需要把数据存储到业务表里,要给主表,从表数据传递数据,主表的数据传递采用hashtable的key, value 的方式,对于从表的数据传递采用的是dataset的模式。

public static long Node_CreateBlankWork(String flowNo, java.util.Hashtable ht, DataSet workDtls, String starter,

            String title, long parentWorkID, long parentFID, String parentFlowNo, int parentNodeID, String parentEmp,

            int jumpToNode, String jumpToEmp)

 

如果创建workid需要父子流程,就需要写入父流程的信息。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驰骋工作流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值