八、业务流程事件
在实际业务需求中往往需要写一些代码用来控制业务流程运行,或根据业务流程的运行结果同步业务数据,更有甚者通过代码是实现一些业务流程原本不支持的特性。而写这些代码的切入点就是事件。
业务流程事件可以在业务过程上定义,也可以在业务环节上定义。它们的触发顺序是先触发业务过程上级的事件,后触发业务环节上的事件。
1 业务过程级事件
业务过程级事件在业务过程的任意业务环节中执行对应业务动作都会触发。在此事件中一般写一些公共的处理。这里列举的只是一些最常用事件,不是所有事件。每个业务动作都有before和after事件。
流程事件中可以执行内置的操作调用外部服务、回填、绑定子流程
回填:回写业务数据,如把流转状态回写到业务表单上。
绑定子流程:流程结转时设置绑定子流程的业务主键数据。
事件名 |
业务动作 |
启动前 |
startProcessAction |
启动后 |
startProcessAction |
流转查询前 |
advanceProcessQueryAction |
流转查询后 |
advanceProcessQueryAction |
流转前 |
advanceProcessAction |
流转后 |
advanceProcessAction |
回退查询前 |
backProcessQueryAction |
回退查询后 |
backProcessQueryAction |
回退前 |
backProcessAction |
回退后 |
backProcessAction |
终止查询前 |
abortProcessQueryAction |
终止查询后 |
abortProcessQueryAction |
终止前 |
abortProcessAction |
终止后 |
abortProcessAction |
暂停查询前 |
suspendProcessQueryAction |
暂停查询后 |
suspendProcessQueryAction |
暂停前 |
suspendProcessAction |
暂停后 |
suspendProcessAction |
唤醒前 |
resumeProcessAction |
唤醒后 |
resumeProcessAction |
结束前 |
finishProcessAction |
结束后 |
finishProcessAction |
回收前 |
withdrawTaskAction |
回收后 |
withdrawTaskAction |
转发查询前 |
transferTaskQueryAction |
转发查询后 |
transferTaskQueryAction |
转发前 |
transferTaskAction |
转发后 |
transferTaskAction |
2 业务环节级事件
业务环节只有基于当前业务环节执行对应业务动作时才会触发。在业务环节级的事件中一般写一些私有的处理。这里列举的只是一些最常用事件,不是所有事件。事件是完全可以根据业务动作来扩展的。
事件名 |
业务动作 |
流转查询前 |
advanceProcessQueryAction |
流转查询后 |
advanceProcessQueryAction |
流转前 |
advanceProcessAction |
流转后 |
advanceProcessAction |
回退查询前 |
backProcessQueryAction |
回退查询后 |
backProcessQueryAction |
回退前 |
backProcessAction |
回退后 |
backProcessAction |
转发查询前 |
transferTaskQueryAction |
转发查询后 |
transferTaskQueryAction |
转发前 |
transferTaskAction |
转发后 |
transferTaskAction |
回收前 |
withdrawTaskAction |
回收后 |
withdrawTaskAction |