1. 概述

在流程运行过程中,流程启动时,流程结束时,在产生任务时,或者任务完成时,流程会提供接口,我们可以在接口中扩展自己的实现,平台目前提供了以下几种扩展实现。

  1. 调用脚本
  2. 执行SQL
  3. 调用WEB请求

2. 用户自定义扩展

2.1 接口定义

  1. package com.redxun.bpm.activiti.eventhandler;
  2. /**
  3. * 事件调用接口。
  4. *
  5. * @author ray
  6. */
  7. public interface IEventHandler {
  8. /**
  9. * 处理器类型。
  10. * @return
  11. */
  12. EventHanderType getType();
  13. /**
  14. * 处理事件。
  15. * @param message
  16. */
  17. void handEvent(BaseEventMessage message);
  18. }

2.2 实现案例(脚本执行器)

  1. @Component
  2. public class ScriptEventHandler implements IEventHandler {
  3. @Resource
  4. ProcessScriptEngine processScriptEngine;
  5. @Override
  6. public EventHanderType getType() {
  7. return new EventHanderType("script","脚本");
  8. }
  9. @Override
  10. public void handEvent(BaseEventMessage message) {
  11. EventConfig eventSetting= message.getEventConfig();
  12. JSONObject config=eventSetting.getConfig();
  13. if(BeanUtil.isEmpty(config)) {
  14. return;
  15. }
  16. String script = config.getString("script");
  17. if(StringUtils.isEmpty(script)){
  18. return;
  19. }
  20. Map<String,Object> vars=message.getVars();
  21. //获取上下文变量数据。
  22. Map<String,Object> contextData= ActivitiUtil.getConextData(vars);
  23. //替换常量
  24. script= SysUtil.replaceConstant(script);
  25. processScriptEngine.exeScript(script,contextData);
  26. }
  27. }

脚本执行器的接口实现。

2.3 前端定制

前端界面。

通过定义扩展实现,在前端接口类型的下拉框就会显示我们定义的扩展,点击配置可以对扩展进行参数定义。

前端代码位置。

/src/components/bpmn/customModle/bpmCallConfig.vue

根据接口类型会找到对应的组件对事件处理器进行配置。

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