节点前后置处理器
概况
- 业务对象绑定
无
,不执行。 - 处理器是针对流程审批动作的处理逻辑进行增强,支持:
同意、反对、驳回、驳回发起人、驳回上一步、弃权、撤回、自定义
等审批动作的逻辑增强; - 前置处理器,即在流程审批动作逻辑前执行,代码切入点
com.ak.iform.bpmn.listener.DoNextEventListener.onApplicationEvent(DoNextEvent)
、com.ak.iform.bpmn.api.service.BpmDoNextService.before(DoNextModel)
; - 后置处理器,即在流程审批动作逻辑后执行,代码切入点
com.ak.iform.bpmn.listener.DoNextEventListener.onApplicationEvent(DoNextEvent)
、com.ak.iform.bpmn.api.service.BpmDoNextService.after(DoNextModel)
; - 处理器方法的参数必须为
com.ak.iform.bpmn.api.cmd.ActionCmd
对象,如:public void save(ActionCmd actionCmd) { // 构造领域对象和保存数据 UrlFormPo po = getData(actionCmd); if(BeanUtils.isEmpty(po)) { return; } urlForm.save(po); }
操作说明
在【工作流程】-【流程定义管理】选择某条数据,点击“设置”按钮,进入流程设置页面,选择“用户任务”节点,然后在“表单设置”的前置处理器选择“编写脚本”填写bean的id以及调用的方法,如:urlFormService.save
;
这个类必须注入的spring容器中
具体样例请参考: URL表单样例
处理器常用逻辑示例
如何获取业务数据
- 如何获取业务数据
String busData = cmd.getBusData();
- 业务数据需要调用时设置到请求参数中,如果是外部url表单方式需要按照前端编写getFormData方法给接口返回表单数据;
如何获取动作类型
- 获取方式
public void save(ActionCmd actionCmd) { if(actionCmd instanceof TaskFinishCmd) { TaskFinishCmd taskFinishCmd = (TaskFinishCmd)actionCmd; // 枚举详见com.ak.iform.bpmn.api.constant.NodeStatus String actionName = taskFinishCmd.getActionName(); } }
- 使用示例,根据动作类型确定如何修改业务数据
public void save(ActionCmd actionCmd) { if(actionCmd instanceof TaskFinishCmd) { TaskFinishCmd taskFinishCmd = (TaskFinishCmd)actionCmd; // 枚举详见com.ak.iform.bpmn.api.constant.NodeStatus String actionName = taskFinishCmd.getActionName(); if(NodeStatus.AGREE.getKey().equals(actionName)) { // 执行同意动作该执行什么逻辑 // 如:将业务数据中的状态改为“审批中” } else if(NodeStatus.OPPOSE.getKey().equals(actionName)) { // 执行反对动作该执行什么逻辑 // 如:将业务数据中的状态改为“审批不通过” } } }
如何获取选择的下一个节点ID
- 获取方式
String destination = actionCmd.getDestination();
- 使用示例,根据节点确定如何修改业务数据
public void save(ActionCmd actionCmd) { String destination = actionCmd.getDestination(); if("End_Event_ssgu7".equals(destination)) { // 跳转到结束节点该执行什么逻辑 // 如:将业务数据中的状态改为“审批不通过” } else if("Activiti_jfsjh&&^".equals(destination)) { // 跳转到下一个审批节点该执行什么逻辑 // 如:将业务数据中的状态改为“审批中” } }
作者:黄春艳 创建时间:2024-12-11 11:47
最后编辑:黄春艳 更新时间:2025-02-14 10:41
最后编辑:黄春艳 更新时间:2025-02-14 10:41