做最好用的工作流引擎,奉献社会.http://ccflow.org

ccflow流程自动发起功能增加,如何按指定的时间触发方式发起流程?

ccflow流程自动发起功能增加,如何按指定的时间触发方式发起流程?
---------------------------------------
  关键字:ccflow wf_task 触发方式启动流程 指定流程发起时间
  应用场景: 向ccflow下达一个任务在指定的时间发起指定的流程.

  现在在wf_task 表中增加一个StartDT 列,此列用于说明在改流程在什么时间发起.

  更详细的信息请参考驰骋工作流程引擎设计器操作说明书 3.9.3章节.

流程的自动执行包括,流程的自动发起与节点的自动执行两大部分。

下面分别介绍这两种的实现方法.

流程的自动发起.

流程的发起包含如下几种模式:
0
、手工启动

默认的模式,就是手工的发起流程。
1 、指定人员按时启动

指定特定的人在特定的时间发起流程比如 zhangshan@01:01@12:01 让张三在每天的 1点零1分,与12点零1分发起此流程。

2、数据集按时启动

为流程设置一个数据源,系统按时读取这个数据源发起流程。
表达式的意思是: 让zhangshan 在每天的01:01 与12:01两个时间点执行自动启动

数据源是从开始节点表单获取.

右图是填充开始节点的主从表的sql, 两者都是一个集合,对于主表要有一个唯一的MainPK字段,以防止数据重复发起。数据源的列与主表的字段一致。
3、触发式启动

工作原理:第三方软件向特定的表(WF_Task)中写入数据,ccflow就会读取这张表来完成流程的发起,发起成功后就把这条记录设置成已经发起的状态,并把信息写入WF_Task表的Msg里面。

关于WF_Task表字段说明:

字段英文名

字段中文名

解释

MyPK

主键

唯一的主键不要有中文名称,长度尽量短,要求全局的流程的每一条流程这个是唯一的。

FK_Flow

流程编号

要发起的流程编号

Starter

发起人

发起人编号

Paras

字段参数

字段参数,格式为:@字段英文名1=字段值1@字段英文名2=字段值2比如: @StuNo=001@StuName=张三@StuAddr=山东济南

这个参数要与开始节点表单字段匹配,就是说要发起的的流程开始节点表单中要有StuNo,StuName,StuAddr 才能匹配上。

TaskSta

任务状态

默认为0: 0=未发起,1=成功发起,2=发起失败。
此字段不需要程序写入值。

Msg

执行的消息

流程发起后的信息,成功的话就返回执行成功的信息,不成功就写入失败信息。此字段不需要程序写入值。

StartDT

发起时间

如果为空就表示立刻发起,如果设置好发起的时间就按指定的时间发起,指定的时间不能超过分钟。时间格式为yyyy-MM-dd HH:mm

比如:2012-06-01 01:01 也可以书写成2012-06-01

对于要启动的流程要求:

要自动启动的流程在开始节点表单里必须要有MainPK字段,这个字段可以是隐藏的,长度根据产生的MyPK需要,增加此字段目的是避免流程启动重复。流程在启动起前就要检查一下开始节点中的MainPK字段,如果有类似的数据说明它已经发起来了,就放弃它。

设置数据集按时启动的方法

1, 在流程属性中的运行方式设置启动的顺序。

当运行方式为: 按天启动 执行内容 @01:01@02:01 表示01点:01分,与02点01分分别执行一次.

当运行方式为: 按小时启动 执行内容 @:01@:10@:20@:30@:40@:50 表示每间隔10分钟执行一次.

2,流程属性-》设置自动发起数据源,为开始表单设置数据源,(如果有从表也会让你设置从表的sql)。

主表集合中必须包含如下几个列:

Starter 发起人

MainPK 主键(唯一的主键,是为了不重复调度.)

从表数据集合要求:

RefMainPK 关联主键的值.

特别说明: 两个SQL都是查询出来的集合.

3, 在开始节点属性中增加一个MainPK隐藏字段.

这个隐藏字段是用来保证数据发起不会重复。

4, 启动调度程序.

让其按时执行。

posted on 2012-09-07 16:28  驰骋工作流  阅读(716)  评论(0编辑  收藏  举报

做最好用的工作流引擎,奉献社会.http://ccflow.org