您的位置:首页 > 产品设计 > 产品经理

自动启动流程的详细设计说明_工作流引擎_流程管理_流程设计器_BPM_workflow

2011-03-30 09:57 309 查看
FIX ES2007流程的启动一般都是手工的.但有些时候需要有自动启动.在ES2007的流程设计时可以设计自动启动流程.以下对该功能作说明.
1、选择流程,右键,属性



2、流程的自动启动分:
实时:新数据,满足条件
按时间周期:天、周、月、从不



A、实时:有新数据则启动
该规则是流程监听器一旦发现对应的业务表中有新数据则就启动该数据的流程。
而该数据进入业务表之后,同时需要向sys_AutoFlowStart表中插入该数据的GUID的值。或没有该值,该新数据不会被流程启动。

B、实时:满足条件
该规则是流程监听器一旦发现满足该条件的时候就会启动流程,此条件分两种情况:
1)与当前数据无直接关系的条件,比如系统中加了一个新用户就启动。
2)与当前数据有直接关系的条件,比如当前业务表中某些数据值大于10000则启动。
所以在写条件的时候,可以根据以上两种情况分别写条件,可以这样认为:
写条件其实是在写一串WHERE语句
1)select count(1) from sys_user where {你的第一种情况的条件}
2)select count(1) from 你当前的业务表 where {你的第二种情况的条件}
只要能被以上语句执行通过的而且返回值大于0的则视为满足条件
所以在后面的条件可以用SQL语句,也可以自已写一个函数

C、按时间周期同B

D、运行过程

A、实时:有新数据则启动
1、流程引擎对自动流程会有一个时间轮询,每分钟做一次(该时间可以由EGO.xml中配置)
2、发现业务表中有新数据没有启动过程的,并且数据GUID在sys_AutoFlowStart表中的,如果在条件框中有条件还会判断条件
sql:select guid from 业务表 where guid in (select guid from sys_AutoFlowStart) and 输入的条件{该条件为空则视为1=1}
3、满足以上条件的,流程引擎可以启动流程
4、如果配置了存储过程,会把当前数据的GUID传给该过程调用(但该过程不是必须的)
5、以上步骤为流程的准备过程
6、完成以上步骤后,流程引擎开始做流程的第一个开始节点的处理
7、支持开始节点的处理人表达式
8、处理人为空时,以system自动处理通过走到第二个节点,如果有条件阻止,则以草稿的形式存放在开始节点

B、实时:满足条件
1、流程引擎对自动流程会有一个时间轮询,每分钟做一次(该时间可以由EGO.xml中配置)
2、流程引擎对每个自动流程都是判断是否符合条件,满足则进入下一步,不满足就退出
3、必须要配置一个存储过程,流程引擎会自动生成一个唯一的GUID传给该过程
4、如果当前自动流程没有数据,由该过程通过这个GUID根据业务逻辑向业务表插入业务数据
5、如果当前自动流程有数据,由该过程把当前的数据的GUID改为流程引擎传过来的GUID
6、同时在过程中需要对sys_data_pru中的数据进行GUID处理
7、以上步骤为流程的准备过程
8、完成以上步骤后,流程引擎开始做流程的第一个开始节点的处理
9、默认为system自动处理通过走到第二个节点,如果有条件阻止,则以草稿的形式存放在开始节点

FIX ES2007官网可免费下载 www.founderfix.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: