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 接口实现
@Componentpublic class DemoProcessHandler implements ProcessHandler {@Overridepublic String getName() {return "测试流程处理";}}
可以这样实现,但是这个实现没有实现任何功能而已。
2.3 在流程设计器中进行配置
在流程全局设置中,点击编程扩展。

文档更新时间: 2022-01-20 14:53 作者:zyg