驰骋工作流-流程发起-自动发起-定时启动-专题讲解
关键字:
流程自动发起
流程定时启动
流程按数据集启动
触发式启动流程。
驰骋工作流
CCFlow
JFlow
应用背景:通常模式下的流程启动是手工的启动,就是用户从一个发起列表,点击流程名字,就启动了该流程。但是有的时候,是系统自动发起该流程,比如:周例会流程,用户希望每个周都要启动例会通知流程这个启动是让系统自动发起而非人工发起。启动方式定义了流程如何手工运行与自动运行的模式。
流程的自动执行包括:流程的自动发起与节点的自动执行两大部分。
下面介绍流程的自动发起的实现方法.
流程的发起包含如下几种模式:
1、手工启动
默认的模式,就是手工的发起流程。
2 、指定人员按时启动
指定特定的人在特定的时间发起流程比如 [email protected]:[email protected]:01 让张三在每天的 1点零1分,与12点零1分发起此流程。
3、数据集按时启动
- 为流程设置一个数据源,系统按时读取这个数据源发起流程。
- 表达式的意思是: 让zhangshan 在每天的01:01 与12:01两个时间点执行自动启动
- 数据源是从开始节点表单获取.
- 下图是填充开始节点的主从表的sql, 两者都是一个集合,对于主表要有一个唯一的MainPK字段,以防止数据重复发起。数据源的列与主表的字段一致。
对于要启动的流程要求:
要自动启动的流程在开始节点表单里必须要有MainPK字段,这个字段可以是隐藏的,长度根据产生的MyPK需要,增加此字段目的是避免流程启动重复。流程在启动起前就要检查一下开始节点中的MainPK字段,如果有类似的数据说明它已经发起来了,就放弃它。
设置数据集按时启动的方法
1. 在流程属性中的运行方式设置启动的顺序。
当运行方式为: 按天启动 执行内容 @01:[email protected]:01 表示01点:01分,与02点01分分别执行一次.
当运行方式为: 按小时启动 执行内容 @:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:50 表示每间隔10分钟执行一次.
2. 流程属性-》设置自动发起数据源,为开始表单设置数据源,(如果有从表也会让您设置从表的sql)。
主表集合中必须包含如下几个列:Starter 发起人 MainPK 主键(唯一的主键,是为了不重复调度.)
从表数据集合要求:
RefMainPK 关联主键的值.
特别说明: 两个SQL都是查询出来的集合.
3. 在开始节点属性中增加一个MainPK隐藏字段.
这个隐藏字段是用来保证数据发起不会重复。
4. 启动调度程序.
让其按时执行。
4、触发式启动
工作原理:第三方软件向特定的表(WF_Task)中写入数据,ccBPM就会读取这张表来完成流程的发起,发起成功后就把这条记录设置成已经发起的状态,并把信息写入WF_Task表的Msg里面。
关于WF_Task表字段说明:
字段 |
字段中文名 |
解释 |
MyPK |
主键 |
唯一的主键不要有中文名称,长度尽量短,要求全局的流程的每一条流程这个是唯一的。 |
FK_Flow |
流程编号 |
要发起的流程编号 |
Starter |
发起人 |
发起人编号 |
Paras |
字段参数 |
字段参数,格式为:@字段英文名1=字段值[email protected]字段英文名2=字段值2比如: @[email protected]=张三@StuAddr=山东济南 这个参数要与开始节点表单字段匹配, 就是说要发起的的流程开始节点表单中有StuNo,StuName,StuAddr 才能匹配上。 |
TaskSta |
任务状态 |
默认为0: 0=未发起,1=成功发起,2=发起失败。 此字段不需要程序写入值。 |
Msg |
执行的消息 |
流程发起后的信息,成功的话就返回执行成功的信息,不成功就写入失败信息。 此字段不需要程序写入值 |
StartDT |
发起时间 |
如果为空就表示立刻发起,如果设置好发起的时间就按指定的时间发起, 指定的时间不能超过分钟。时间格式为yyyy-MM-dd HH:mm 比如:2012-06-01 01:01 也可以书写成2012-06-01 |
特别说明:如果需要自动启动,就要启动ccBPM的服务。