【问题标题】:Send signal from multi-instance subprocess without terminating the other instances?从多实例子进程发送信号而不终止其他实例?
【发布时间】:2015-07-25 16:27:55
【问题描述】:

基本上,我有一个多实例子进程,并且希望能够在不终止子进程的所有其他实例的情况下向父进程发送某种信号。

请查看此示例流程:

  • 子进程是一个多实例子进程,基数为 3。
  • 即完成 UserTask A 时,将创建子流程的三个实例。然后用户需要完成任务 B 3 次。很好。
  • 但是当网关路由到“throw signal”事件时,我希望其他两个实例继续运行!目前,一旦发出信号,子流程的所有实例都会终止。
  • 在信号的帮助下,我想在再次访问 UserTask A 之后再创建一些子进程的实例。

如何在 BPMN / Camunda 中为这种行为建模?

提前致谢! 克里斯

【问题讨论】:

    标签: bpmn camunda


    【解决方案1】:

    可以通过声明边界捕获信号事件不中断来实现你想要的。

    (话虽如此,从纯 BPMN 的角度来看,升级事件 throw/catch 更适合您的情况,但 camunda BPM 尚不支持它。因此,请注意不要使用信号,因为信号也可能被其他捕获信号事件接收到。)

    【讨论】:

    • 谢谢!删除“取消活动”检查就可以了,并将边界事件转换为非中断事件。
    • 请注意,在用户任务 A 之后,您总是会创建一个额外的多实例子进程。这意味着在您的示例中,您的前三个实例的第一个多实例将在这些实例完成后立即完成。您在再次访问 UserTask A 后创建的任何新实例都将成为一个新的实例“包”,一旦所有实例都完成,它将作为一个包再次完成。
    猜你喜欢
    • 1970-01-01
    • 2016-03-21
    • 2014-10-25
    • 1970-01-01
    • 2011-09-11
    • 2012-07-10
    • 2022-08-02
    • 2014-11-27
    • 1970-01-01
    相关资源
    最近更新 更多