1. 概要
在处理流程时,比如在启动流程之前,启动流程之后,审批任务之前,审批任务之后,在这件点上面,用户想实现一些自己的业务逻辑,对流程进行扩展。比如用户希望在启动时,将流程的表单数据和当前流程实例进行一个关联,将数据保存下来,这个时候可以实现平台的接口将数据进行存储。
2. 实现方法
我们在平台中定义了一个接口类,用户可以对这个接口类进行扩展,然后再流程中做配置。
2.1 接口类定义
com.redxun.bpm.activiti.processhandler.ProcessHandler
接口定义类:
public interface ProcessHandler {
String getName();
//结束时执行
default void endHandle(BpmInst bpmInst) {
}
/**
* 流程启动之后执行。
* @param processConfig
* @param cmd
* @param bpmInst
* @return
*/
default void processStartAfterHandle(ProcessConfig processConfig, ProcessStartCmd cmd, BpmInst bpmInst) {
}
/**
* 流程启动之前执行。
* ProcessStartCmd
*
* @param cmd
*/
default void processStartPreHandle(ProcessStartCmd cmd) {
}
/**
* 当前任务处理
*
* @param cmd 当前任务执行的
* @param nodeId
* @param busKey
*/
default void taskAfterHandle(IExecutionCmd cmd, String nodeId, String busKey) {
}
/**
* 当前任务处理
*
* @param cmd 当前任务执行的
* @param task
* @param busKey
*/
default void taskPreHandle(IExecutionCmd cmd, BpmTask task, String busKey) {
}
}
接口类中定义了4个方法,开发者可以根据需要实现其中的一个或几个方法。
2.2 接口实现
@Component
public class DemoProcessHandler implements ProcessHandler {
@Override
public String getName() {
return "测试流程处理";
}
}
可以这样实现,但是这个实现没有实现任何功能而已。
2.3 在流程设计器中进行配置
在流程全局设置中,点击编程扩展。
文档更新时间: 2022-01-20 14:53 作者:zyg