消息事件建模
使用消息事件表示流程中接收入局消息或者发送外发消息的点。
入局消息可以源自流程中的消息事件, 来自服务中的 Undercover Agent (UCA) ,来自服务组件体系结构 (SCA) 服务, 来自您创建的 Web Service ,或者来自您发布到 JMS 侦听器的消息。 如果要创建 Web Service 以从外部系统启动入站请求,请参阅 发布 IBM Business Automation Workflow Web Service。
如果您希望将消息发布到 JMS 侦听器,那么 Event Manager 具有其必须从外部系统接收的已定义 XML 消息结构。 有关所需消息结构的更多信息,请参阅 将消息发布到 IBM Business Automation Workflow Event Manager。
外发消息可以由流程中的消息事件接收、可以发送以调用外部服务,或者也可以由其他一个或多个流程中的开始事件接收。 要了解如何配置消息事件以发送消息,请参阅 使用中间消息事件和消息结束事件发送消息。
您可以在流程中包含以下消息事件类型:
| 事件类型 | 实施 | 何时使用 |
|---|---|---|
| 启动事件 | 配置为接收的消息(开始事件只能接收消息) | 如果您希望入局消息事件来启动流程,那么用于将流程的开始建模。 流程可以包含多个启动消息事件。 当您希望在接收消息时触发事件子流程时,可用作事件子流程的开始事件。 |
| 中间事件 | 配置为接收的消息 | 用于接收消息事件。 中间事件可以附加到流程中的活动,或者包含在过程流中,并与序列流连接。 连接到活动(而非泳道)的中间事件也称为边界事件。 边界事件可以选择中断并完成活动,或选择反复触发。 |
| 中间事件 | 配置为发送的消息 | 用于发送消息事件。 中间事件可以包含在过程流中,并与序列流连接。 |
| 结束事件 | 配置为发送的消息(结束事件只能发送消息) | 用于在路径结束时发送消息事件。 |
创建消息事件时,您可以在同一流程中或者从一个流程到另一个流程剪切并粘贴或者复制并粘贴该消息事件。 消息可导致创建流程实例,并且可由包含一个或多个相应消息事件的正在运行的流程接收。
在包含将 Undercover Agent 用作触发机制的任何类型的消息事件之前,应注意以下方面:
- 可以配置消息事件以使用消息。 如果进行此操作,那么当消息传递到正在运行的流程时,该消息由流程中可以接受它的第一个消息事件使用(由附加到该消息事件的 Undercover Agent 确定)。 处理消息时,该消息将不会被该消息事件或者流程实例中可以接受它的其他任何消息事件再次处理,流程实例的执行应该回送并访问同一消息事件。 如果将消息的新实例传递到该流程实例,那么该消息可用于再次处理且由该消息事件接受。
- 消息事件可用于启用前滚方案,其中同一消息需要经过多个步骤传递,直到此消息到达流程中可以将其处理的适当步骤。 要启用经过多个消息事件的消息前滚,请仅为前滚消息事件链中的最后一个消息事件启用“处理消息”选项。 您还可以使用条件来进一步控制消息处理。
- 您偶尔可能需要设置关于处理入局消息的条件。 如果指定的条件求值为 true,那么将接受该消息并继续处理,否则,将停止处理。 因为先评估了消息条件,然后才可以将消息值传递到流程定义的输入变量,所以将消息值传递到特殊名称空间
tw.message中的条件。 如果消息条件求值为 true,那么将值从tw.message名称空间传递到流程输入变量。