zeebe目前支持两种任务(Tasks)。服务任务(Service Tasks)和接收任务(Receive Tasks)。
Service Tasks
服务任务表示工作流中具有特定类型的工作项。当工作流实例到达服务任务时,它将创建相应的作业。令牌流在此点停止。
工人可以订阅这些工作并在工作完成时完成它们。当作业完成时,令牌流将继续。
XML表示:
<bpmn:serviceTask id="collect-money" name="Collect Money">
<bpmn:extensionElements>
<zeebe:taskDefinition type="payment-service" />
<zeebe:taskHeaders>
<zeebe:header key="method" value="VISA" />
</zeebe:taskHeaders>
</bpmn:extensionElements>
</bpmn:serviceTask>
服务任务绘制如下图所示:
Task Definition
每个服务任务必须有一个任务定义。它指定了定时器可以订阅的作业类型。或者,任务定义可以指定当工作进程发出失败信号时重试作业的次数(默认值=3)。
<zeebe:taskDefinition type="payment-service" retries="5" />
Task Headers
服务任务可以定义任意数量的任务头。任务头是与作业一起传递给工作人员的元数据。它们可以用作工作者的配置参数。
<zeebe:taskHeaders>
<zeebe:header key="method" value="VISA" />
</zeebe:taskHeaders>
Variable Mappings
默认情况下,所有作业变量都合并到工作流实例中。可以通过在服务任务中定义输出映射来定制此行为。输入映射可用于将变量转换为工作人员接受的格式。
XML表示:
<serviceTask id="collectMoney">
<extensionElements>
<zeebe:ioMapping>
<zeebe:input source="price" target="total"/>
<zeebe:output source="method" target="paymentMethod"/>
</zeebe:ioMapping>
</extensionElements>
</serviceTask>
Receive Tasks
接收任务是指引用消息的任务。它们可用于等待,直到收到正确的消息。
Messages
一条消息可以被一个或多个接收任务引用。它保存用于消息关联的信息。所需的属性是
- the name of the message
- the correlation key
相关键被指定为变量表达式。当输入接收任务并从工作流实例变量中提取值时,将对其进行评估。变量值必须是字符串或数字。如果相关键无法解析或既不是字符串也不是数字,则会创建事件。
XML表示:
<bpmn:message id="Message_1iz5qtq" name="Money collected">
<bpmn:extensionElements>
<zeebe:subscription correlationKey="orderId" />
</bpmn:extensionElements>
</bpmn:message>
Receive Tasks
当令牌到达接收任务时,它将在那里等待,直到正确的消息被关联。与事件的关联基于消息的名称和关联键。当消息关联时,任务将离开。
XML表示:
<bpmn:receiveTask id="money-collected" name="Money collected" messageRef="Message_1iz5qtq">
</bpmn:receiveTask>
Variable Mappings
默认情况下,所有消息变量都合并到工作流实例中。可以通过在接收任务中定义输出映射来定制此行为。
XML表示:
<bpmn:receiveTask id="money-collected" name="Money collected" messageRef="Message_1iz5qtq">
<bpmn:extensionElements>
<zeebe:ioMapping>
<zeebe:output source="price" target="totalPrice"/>
</zeebe:ioMapping>
</bpmn:extensionElements>
</bpmn:receiveTask>
zeebe qq交流群群号:856546010