• camunda_16_listener


    Java 调用方式

    对于内置流程引擎的应用, 可以在流程流转时调用 Java 逻辑, 最主要有三种形式的 Java 调用方式:

    • Java Delegate: Service Task 组件如选择 Java class, 即是 Java Delegate, 该类需要实现 JavaDelegate 接口

    • Execution Listener: 几乎所有组件可以增加 Execution Listener, 该 Java 类需要实现 ExecutionListner 接口

      • 组件有 start 和 end 两个触发点
      • Sequence path 有 take 触发点, 可用来 trace 路径选择.
    • Task Listener: 对于 User task 组件可以增加 Task Listener, 常用 create/assignment/complete 几个触发点, 该 Java 类需要实现 TaskListener 接口, Task Listener 要比 Execution Listener 提供更详细的 runtime 信息.

    • ExecutionListener 和 taskListener 常用event的执行顺序图:
      顺序图

    代码范式

    三种 Java 调用方式的代码实现类似, 都是实现指定的接口, 在代码中也遵循同样代码范式, 常用到的代码片段有:

    • 抛出Bpmn异常
    • 在执行过程中为 process设置更有意义的Business Key
    • 获取ProcessEngine和几个主要的服务, 完成更多操作.
    	public void execute(DelegateExecution execution) throws Exception {
    		ProcessEngine engine = execution.getProcessEngine();
    
    		RepositoryService repService = engine.getRepositoryService();
    		RuntimeService runtimeService = engine.getRuntimeService();
    		FormService formService = engine.getFormService();
    		HistoryService historyService = engine.getHistoryService();
    		TaskService taskService = engine.getTaskService();
    		ManagementService managementService = engine.getManagementService();
    		execution.setProcessBusinessKey("some key");
    		throw new BpmnError("some error");
    	}
    
  • 相关阅读:
    oracle python操作 增删改查
    python连接oracle
    opengl问题
    [转]C++ 获取文件夹下的所有文件名
    @RequestMapping[转]
    hdu 6082
    maven/ssm框架搭建
    windows下mysql解压版安装及centos下mysql root密码忘记
    maven创建web项目
    eclipse用tomcat发布网站的目录
  • 原文地址:https://www.cnblogs.com/harrychinese/p/camunda_16_listener.html
Copyright © 2020-2023  润新知