You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fluent Builder API中是否存在终止事件?如何代码建模?

Camunda Fluent Builder API 中终止事件的建模方法

嘿,终止事件(Terminate Event)当然是存在的!可能你在文档里没找到专门的高亮章节,但它确实是Camunda Fluent Builder API支持的BPMN标准元素——它和普通结束事件的核心区别是:终止事件会直接终止整个流程实例(或指定的子流程),而普通结束事件仅结束当前的执行路径。

下面给你几种常见场景的代码实现:

1. 在流程中添加基础终止事件

直接使用terminateEvent()方法即可创建,这会生成一个终止结束事件,触发后终止整个流程:

BpmnModelInstance modelInstance = Bpmn.createExecutableProcess("order-process")
  .startEvent()
  .userTask("review-order")
  .terminateEvent() // 这里就是终止事件
  .done();

如果需要给终止事件设置ID、名称等属性,可以链式调用相关方法:

BpmnModelInstance modelInstance = Bpmn.createExecutableProcess("order-process")
  .startEvent()
  .userTask("reject-order")
  .terminateEvent("terminate-order-flow")
  .name("终止整个订单流程")
  .done();

2. 为调用子流程添加终止边界事件

如果你需要在特定条件下终止调用子流程(而非整个主流程),可以给调用子流程绑定终止边界事件:

BpmnModelInstance modelInstance = Bpmn.createExecutableProcess("main-process")
  .startEvent()
  .callActivity("handle-payment")
  .calledElement("payment-subprocess")
  // 添加终止边界事件
  .boundaryEvent("terminate-payment")
  .terminate() // 标记为终止类型的边界事件
  .endEvent()
  .done();

这个边界事件触发后,只会终止绑定的调用子流程,主流程会继续执行后续步骤。

其实这个API的命名很直观,只是文档没有单独把终止事件作为一个小节展开,所以容易被忽略。只要记住terminateEvent()(用于结束式终止事件)和.terminate()(用于边界终止事件)这两个核心方法就能轻松建模啦。

内容的提问来源于stack exchange,提问作者Matúš Krška

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 07:42:50