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");
	}
posted @   harrychinese  阅读(266)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示