首页 > 解决方案 > BPMN中的信号事件和消息事件可以互换吗?

问题描述

他们做几乎相同的事情。

我可以说它们可以互换吗?

标签: javabpmncamunda

解决方案


不,他们不做同样的事情。官方文档说:


消息事件:消息事件是引用命名消息的事件。消息具有名称和有效负载。与信号不同,消息事件总是针对单个接收者。


信号事件:信号事件是引用命名信号的事件。信号是全局范围的事件(广播语义),并被传递给所有活动的处理程序。


所以这意味着应该使用消息事件来触发单个接收任务,并且应该使用信号事件来触发具有该信号的所有接收任务

此外,如果涉及到您的流程设计,您不应该总是找到“行之有效”的解决方案。当其他人看到您的图表时,您还应该考虑可读性和可理解性的事实。如果在您的流程中抛出了一条消息,您应该明确地建模一个消息事件,而不是尝试建模一个相同但看起来不同的工作环境。

为了进一步阅读,这里是文档中事件的链接:

https://docs.camunda.org/manual/7.10/reference/bpmn20/events/message-events/

https://docs.camunda.org/manual/7.10/reference/bpmn20/events/signal-events/


推荐阅读