业务背景
业务场景需要用到activiti审批流且需要根据审批节点更新对应节点状态至业务表(例如审批结束更新业务表“status”为“已完成”)
整体架构流程
系统为微服务架构:使用到流程审批的业务系统与activiti7均为单独部署的微服务
实现方案
实现将activiti的流程节点对应流程状态同步至业务的方案很多,具体看业务场景。这里分享我自己的做法。
- 设置监听器(代码中的"end"需要自己在流程图中设置)
@Component
public class Taskdev implements ExecutionListener{
@Override
public void notify(DelegateExecution delegateExecution) throws Exception {
String eventName = delegateExecution.getEventName();
if ("end".equals(eventName)) {
//这里可以自己写更新状态的逻辑
//如果activiti和业务代码在同一服务里可以直接数据库操作
//因为是微服务架构,我这里采用的是通过kafka发送处理消息,具体的处理逻辑在业务服务的消费端
}
}
}