1. 概述
在流程运行过程中,流程启动时,流程结束时,在产生任务时,或者任务完成时,流程会提供接口,我们可以在接口中扩展自己的实现,平台目前提供了以下几种扩展实现。
- 调用脚本
- 执行SQL
- 调用WEB请求
2. 用户自定义扩展
2.1 接口定义
package com.redxun.bpm.activiti.eventhandler;
/**
* 事件调用接口。
*
* @author ray
*/
public interface IEventHandler {
/**
* 处理器类型。
* @return
*/
EventHanderType getType();
/**
* 处理事件。
* @param message
*/
void handEvent(BaseEventMessage message);
}
2.2 实现案例(脚本执行器)
@Component
public class ScriptEventHandler implements IEventHandler {
@Resource
ProcessScriptEngine processScriptEngine;
@Override
public EventHanderType getType() {
return new EventHanderType("script","脚本");
}
@Override
public void handEvent(BaseEventMessage message) {
EventConfig eventSetting= message.getEventConfig();
JSONObject config=eventSetting.getConfig();
if(BeanUtil.isEmpty(config)) {
return;
}
String script = config.getString("script");
if(StringUtils.isEmpty(script)){
return;
}
Map<String,Object> vars=message.getVars();
//获取上下文变量数据。
Map<String,Object> contextData= ActivitiUtil.getConextData(vars);
//替换常量
script= SysUtil.replaceConstant(script);
processScriptEngine.exeScript(script,contextData);
}
}
脚本执行器的接口实现。
2.3 前端定制
前端界面。
通过定义扩展实现,在前端接口类型的下拉框就会显示我们定义的扩展,点击配置可以对扩展进行参数定义。
前端代码位置。
/src/components/bpmn/customModle/bpmCallConfig.vue
根据接口类型会找到对应的组件对事件处理器进行配置。
文档更新时间: 2022-01-20 14:53 作者:zyg