4.4. Process designer 中的 BPMN2 自定义任务
BPMN2 规范支持扩展 BPMn2:task 元素以在软件实施中创建自定义任务。与标准 BPMN 任务类似,自定义任务标识要在业务流程模型中完成的操作,但它们还包括专门功能,如与特定类型的外部服务(REST、电子邮件或 Web 服务)的兼容性或检查流程中的行为(milestone)。
Red Hat Process Automation Manager 在 BPMN modeler palette 中的 Custom Tasks 下提供以下预定义的自定义任务:
| 自定义任务类型 | 自定义任务节点 |
|---|---|
| REST |
|
| 电子邮件 |
|
| Log |
|
| WebService |
|
| milestone |
|
| DecisionTask |
|
| BusinessRuleTask |
|
| KafkaPublishMessages |
|
有关在 Business Central 中启用或禁用自定义任务的详情,请参考 第 58 章 。
在 BPMN 模型器中,您可以为所选自定义任务配置以下通用属性:
| 标签 | 描述 |
|---|---|
| Name | 标识任务的名称。您还可以双击任务节点来编辑名称。 |
| Documentation | 描述任务。此字段中的文本包括在流程文档中(如果适用)。 |
| is Async | 确定此任务是否异步调用。 |
| adhoc Autostart | 决定这是自动启动的临时任务。这个选项可让任务在进程创建时自动启动,而不是通过信号事件启动。 |
| On Entry Action | 定义一个以 Java、JavaScript 或 MVEL 脚本在任务开始时直接执行操作。 |
| 在退出操作中 | 定义一个 Java、JavaScript 或 MVEL 脚本,用于在任务结束时直接执行操作。 |
| SLA 过期日期 |
当服务级别协议(SLA)过期时,指定持续时间(字符串类型)。您可以在天、分钟、秒和毫秒为单位。例如,SLA 因为日期 字段中的 |
| 分配 | 定义任务的数据输入和输出。 |
| 元数据属性 | 定义要用于自定义事件监听程序的自定义元数据属性名称和值,例如在出现 metadata 属性时实施某些操作的监听程序。
Metadata Attributes 可启用对 BPMN 图表的新 |
REST
其余的自定义任务用于调用远程 RESTful 服务,或者从进程执行 HTTP 请求。
要使用剩余的自定义任务,您可以在进程模型器中设置 URL、HTTP 方法和凭证。当进程到达剩余的自定义任务时,它会生成一个 HTTP 请求,并以字符串形式返回响应。
您可以在 Properties 面板中点击 Assignments 以打开 REST Data I/O 窗口。在 REST Data I/O 窗口中,您可以根据需要配置数据输入和输出。例如,要执行其他自定义任务,在 Data Inputs 和 Assignments 字段中输入以下数据输入:
- URL :REST 服务的端点 URL。这个属性是必须的。
-
方法 :名为 的端点的方法,如
GET和POST。默认值为GET。 -
ContentType :发送数据时的数据类型。此属性对于
POST和PUT请求是必需的。 -
ContentTypeCharset :为
ContentType设置字符。 - 内容 :您要发送的数据。此属性支持向后兼容性,改为使用 ContentData 属性。
-
ContentData :要发送的数据。此属性对于
POST和PUT请求是必需的。 - ConnectTimeout :连接超时(以秒为单位)。默认值为 60000 毫秒。您必须以毫秒为单位提供输入值。
- ReadTimeout :响应时超时(以秒为单位)。默认值为 60000 毫秒。您必须以毫秒为单位提供输入值。
- 用户名 :用于身份验证的用户名.
- 密码 :用于身份验证的密码。
- AuthUrl:正在处理身份验证的 URL。
- AuthType :处理身份验证的 URL 类型。
- HandleResponseErrors (可选):Instructs 处理程序在响应代码失败时抛出错误(除 2XX 除外)。
- ResultClass: valid name of the response is unmarshalled 的类。如果没有提供,则以字符串格式返回原始响应。
- AcceptHeader :接受标题的值。
- AcceptCharset :接受标头集。
-
标头 :要传递 REST 调用的标头,如
content-type=text/html。
您可以在 Data Outputs 和 Assignments 中添加以下数据输出来存储任务执行的输出:
- 结果 :输出其他自定义任务的变量(对象类型)。
电子邮件
电子邮件自定义任务用于从进程发送电子邮件。它包含与其关联的电子邮件正文。
激活电子邮件自定义任务时,电子邮件数据将分配给任务的数据输入属性。电子邮件自定义任务在发送相关电子邮件时完成。
您可以在 Properties 面板中点 Assignments 以打开 Email Data I/O 窗口。在 Email Data I/O 窗口中,您可以根据需要配置数据输入。例如,要执行电子邮件自定义任务,在 Data Inputs 和 Assignments 字段中输入以下数据输入:
- 正文 :电子邮件的正文。
- 从 :发件人的电子邮件地址。
- 主题 :电子邮件的主题.
- 到 :接收者的电子邮件地址。您可以指定多个以分号(;)分隔的电子邮件地址。
-
模板 (可选):用于生成电子邮件正文的模板。如果输入,
Template属性会覆盖Body参数。 - reply-To :将回复消息发送到的电子邮件地址。
- cc: 复制收件人的电子邮件地址。您可以指定多个以分号(;)分隔的电子邮件地址。
- BCC: blind copy 的接收者电子邮件地址。您可以指定多个以分号(;)分隔的电子邮件地址。
- Attachments :发送电子邮件到发送的电子邮件。
- debug: Flag 来启用 debug 日志记录。
Log
日志自定义任务用于记录来自进程的消息。当业务流程到达日志自定义任务时,消息数据会被分配给 data 输入属性。
记录相关的消息时会完成日志自定义任务。您可以在 Properties 面板中点 Assignments 以打开 Log Data I/O 窗口。在 Log Data I/O 窗口中,您可以根据需要配置数据输入。例如,要执行日志自定义任务,在 Data Inputs 和 Assignments 字段中输入以下数据输入:
- Message: 来自进程的日志消息。
WebService
Web 服务自定义任务用于从进程调用 Web 服务。此自定义任务充当 Web 服务客户端,其 Web 服务响应以字符串形式存储。
若要从进程调用 Web 服务,您必须使用正确的任务类型。您可以在 Properties 面板中单击 Assignments 以打开 WS Data I/O 窗口。在 WS Data I/O 窗口中,您可以根据需要配置数据输入和输出。例如,要执行 web 服务任务,在 Data Inputs 和 Assignments 字段中输入以下数据输入:
- 端点 :要调用的 Web 服务的端点位置。
-
接口 :服务的名称,如
Weather。 -
模式 :服务的模式,如
SYNC、ASYNC或ONEWAY。 -
命名空间 :Web 服务的命名空间,如
http://ws.cdyne.com/WeatherWS/。 - 操作 :要调用的方法名称。
- 参数 :要为操作发送的对象或数组。
-
URL :Web 服务的 URL,如
http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL。
您可以在 Data Outputs 和 Assignments 中添加以下数据输出来存储任务执行的输出:
- 结果 :web 服务任务的输出变量(对象类型)。
milestone
milestone 代表进程实例内实现的单一点。您可以使用 milestones 标记某些事件,以触发其他任务或跟踪进程的进度。
milestones 可用于关键性能指标(KPI)跟踪或识别仍然完成的任务。milestones 可以在进程中的一个阶段结束时发生,或者是实现其他里程干的结果。
milestones 可以在进程执行过程中达到以下状态:
-
Active:已经为 milestone 节点定义了 milestone 条件,但尚未满足。 -
完成:一个 milestone 条件已满足(如果适用),milestone 已被实现,进程可以继续进行下一任务或可以结束。
您可以在 Properties 面板中点击 Assignments 以打开 Milestone Data I/O 窗口。在 Milestone Data I/O 窗口中,您可以根据需要配置数据输入。例如,要执行一个 milestone,在 Data Inputs 和 Assignments 字段中输入以下数据输入:
- 条件: 满足 milestone 的条件。例如,您可以输入使用进程变量的 Java 表达式(字符串数据类型)。
DecisionTask
决策任务用于执行 DMN 图表并从进程调用决策引擎服务。默认情况下,决策任务映射到 DMN 决策。
您可以使用决策任务在流程中做出一个操作决策。决策任务可用于识别需要做出过程中的关键决策。
您可以在 Properties 面板中点 Assignments 以打开 Decision Task Data I/O 窗口。在 Decision Task Data I/O 窗口中,您可以根据需要配置数据输入。例如,要执行决策任务,在 Data Inputs 和 Assignments 字段中输入以下数据输入:
- 决策 :做出流程的决策。
- 语言 :决策任务的语言,默认为 DMN。
- 模型 :DMN 模型的名称。
- 命名空间 :DMN 模型的命名空间。
BusinessRuleTask
业务规则任务用于评估 DRL 规则并从进程调用决策引擎服务。默认情况下,商业规则任务映射到 DRL 规则。
您可以使用商业规则任务来评估业务流程中的关键业务规则。您可以在 Properties 面板中点 Assignments 以打开 Business Rule Task Data I/O 窗口。在 Business Rule Task I/O 窗口中,您可以根据需要配置数据输入。例如,要执行商业规则任务,在 Data Inputs 和 Assignments 字段中输入以下数据输入:
- KieSessionName: KIE 会话的名称。
- KieSessionType: KIE 会话的类型。
- 语言 :商业规则任务的语言,默认为 DRL。
KafkaPublishMessages
Kafka 工作项用于将事件发送到 Kafka 主题。此自定义任务包含一个 work item 处理程序,它使用 Kafka producer 将消息发送到特定的 Kafka 服务器主题。例如,KafkaPublishMessages 任务从进程发布到 Kafka 主题。
您可以在 Properties 面板中点 Assignments 以打开 KafkaPublishMessages Data I/O 窗口。在 KafkaPublishMessages Data I/O 窗口中,您可以根据需要配置数据输入和输出。例如,要执行 Kafka 工作项,在 Data Inputs 和 Assignments 字段中输入以下数据输入:
- Key :要发送的 Kafka 消息的密钥。
- 主题 : Kafka 主题的名称。
- 值 :要发送 Kafka 消息的值。
您可以在 Data Outputs 和 Assignments 中添加以下数据输出 来存储工作项目执行的输出:
- 结果 :输出变量(字符串类型)
有关业务流程中的 KafkaPublishMessages 的更多信息,请参阅将 Red Hat Process Automation Manager 与 Red Hat AMQ Streams 集成。







