概述
工作流事件是工作流在特定的时间点暴露出来用于处理业务相关事务的机制。工作流事件主要有:
- 节点创建后;用户处理节点创建后的业务初始化工作。
- 节点提交前;用于节点提交前检查业务数据的一致性。
- 提交失败(异常)时;用于处理异常业务数据。
工作流时间控制,相对来说要复杂一点。它的目的是用来控制业务流程执行的周期。
流程计时
流程和节点的期限(后面统一称为任务)都是按照工作时间来计算的,他的基本算法是将这个期限作为这个任务完成的剩余时间,在工作时内每隔一个时间段(比如10分钟)就对每个活跃的任务的剩余时间进行扣除,所以剩余时间可以为负的,这说明已经超期了。流程有一个计时状态,如果流程是活跃的但是计时状态是关闭的,则流程和他的所有活跃的节点都不计时(就是不会扣除剩余时间)。
用户可以通过管理接口来修改这个计时状态,也可以设定某些节点为不计时,这样进入这个节点流程就自动为不计时状态,完成这个节点流程计时状态又将自动打开。
流程运行期限
流程的期限比较简单,就是一个时间值,在计时状态下剩余时间逐渐减少,减少为负数就算超时。 期限的格式为 5D5H30M ,D表示天 H表示小时 M表示分钟。也可以仅仅是一个数字,这个数字表示天数。
节点运行期限
节点计时于期限设定
节点的期限设定较为复杂:
1,在节点中设置 节点的默认计时规则 。
2,在流转条件中设置目标节点的计时规则,如果有这个优先节高于节点的默认计时规则 。
需要设置的内容包括:
1,计时状态设置(这个属性 流转条件不需要,只有节点有): T 计时(默认)、 F(不计时) 停止计时 、 H 仅环节计时 (流程业务的剩余时间不减,比如用在受理节点之前的节点,这些节点本身有期限,但是时间不计入流程业务的期限内) 。
2,期限类别:
I : 未设置(ignore 默认 只在流转中的期限设定和无期限有区别 );
N 无 (无期限 none ) ;
F 每实例固定期限 fix——该节点每生成一个节点实例都是节点设定的期限 ;
C 节点固定期限 cycle——同一流程实例中,当前节点的所有实例期限总和,区别于每实例固定期限,当前节点的节点实例期限随着实例增多而减少(场景:节点退回操作,每次退回累计上次时间,不会出现新的期限);
H 继承上一个节点剩余时间 hierarchical——累计上个节点的剩余时间,即当前节点时间+上个节点的剩余时间。
3,期限设定:针对每实例固定期限、节点固定期限 为期限设定 ,针对 继承上一个节点剩余时间 为额外附加的时间 。
创建一个节点是首先考虑流转到这个节点的路径中的设置,如果期限类别为未设置,则使用节点中的流转设置。计时状态则是整个流程的计时状态,如果这个节点的计时状态为不计时则整个流程都不计时。
流转中节点期限设定
在流转的属性中也可以设定期限,这个期限将覆盖目标节点中的期限类别和期限设定。
注:仅对有多个入度的节点才有意义。
流程阶段期限
流程阶段期限是指在这个节点中所有的节点运行的周期。
逾期处理
预期处理的内容有
1,O:不处理(默认)。
2,N:通知;系统可以设定不同的通知方式:电子邮件、短信等等。
3,X:挂起(节点、流程)。
4,E:终止(流程)。
5,C:完成(强制提交,提交失败就挂起)。
无论设置什么处理方式,在到期前半天内都将通过系统设定的通知方式进行预警。