【问题标题】:How to implement transaction subprocess using Camunda's fluent builder API?如何使用 Camunda 的 fluent builder API 实现事务子流程?
【发布时间】:2020-08-25 12:23:34
【问题描述】:

您好,我正在尝试使用 Fluent Builder API 实现事务子流程。 我怀疑是这样的:

builder.transaction(subprocessId)

但首先事务方法返回没有添加开始事件的方法的 TransactionBuilder。为什么它不包含此方法?我应该如何添加开始事件? 然后,当我尝试(甚至在打开事务后立即)调用方法 transactionDone() 时,部署告诉我它找不到父事务。 最后,当尝试在事务部署中结束取消事件时,告诉我取消事件只能在事务子流程中。 我究竟做错了什么?谁能给我一个例子,说明如何使用 fluent builder API 实现事务子流程?

【问题讨论】:

    标签: java bpmn camunda


    【解决方案1】:

    创建事务后,您可以继续构建父流程或构建嵌入的子流程(事务)。进入嵌入子流程的范围使用

    .transaction().embeddedSubProcess()
    

    使用.transactionDone().subProcessDone() 可以随后退回到父进程的范围。

    完整示例: https://github.com/rob2universe/bpmn-creator/blob/cbc4be80e1c1c821f51feba63ff1d1b62c19769f/src/main/java/TransactionSubprocess.java#L28

    文档(搜索 subProcess): https://docs.camunda.org/manual/latest/user-guide/model-api/bpmn-model-api/fluent-builder-api/

    这回答了子流程问题,但接下来您可能会在 API 上搜索 Cancel 事件。 fluent API 似乎还没有涵盖这一点。有信号、消息、补偿(例如.compensateEventDefinition()

    但是,您仍然可以创建一个 CancelEventDefinition 并通过常规 API 将其添加到结束事件,如下例所示: https://github.com/rob2universe/bpmn-creator/blob/cbc4be80e1c1c821f51feba63ff1d1b62c19769f/src/main/java/TransactionSubprocess.java#L37

    【讨论】:

    • 我很快查看了您的解决方案,看起来很有希望,我会尝试一下。现在感谢您的回复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 2022-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多