38.2. 使用 KIE 服务器 REST API 创建动态服务任务
服务任务通常比用户任务复杂,虽然它们可能需要更多的数据才能正确执行。服务任务需要以下信息:
-
名称
:活动的名称 -
nodeType
:用于查找工作项目处理程序的节点类型 -
数据
:用于正确处理执行的数据映射
在问题单运行时,您可以创建一个使用与用户任务相同的端点的动态服务任务,但使用不同的正文有效负载。
使用 Swagger REST API 通过以下步骤为 Business Central 中提供的 IT_Orders 示例项目创建一个动态服务任务。您可以在不使用 Swagger 的情况下为 REST API 使用同一个端点。
先决条件
- 您已使用 Showcase 应用登录 Business Central 和 IT 订单案例实例。有关使用 Showcase 的更多信息,请参阅使用 Showcase 应用程序进行问题单管理。
流程
在网页浏览器中,打开以下 URL:
- 在 问题单实例 :: Case Management 下打开可用端点的列表。
点击以下
POST
方法端点打开详情:/server/containers/{id}/cases/instances/{caseId}/stages/{caseStageId}/tasks
点 Try it out,然后输入以下参数:
表 38.2. 参数 Name 描述 id
itorders
caseId
IT-0000000001
请求正文
{ "name" : "InvokeService", "data" : { "Parameter" : "Fixed hardware spec", "Interface" : "org.jbpm.demo.itorders.services.ITOrderService", "Operation" : "printMessage", "ParameterType" : "java.lang.String" }, "nodeType" : "Service Task" }
- 在 Swagger 应用程序中,点 Execute 创建动态任务。
在本例中,执行基于 Java 的服务。它由一个带有公共类 org.jbpm.demo.itorders.services.ITOrderService
以及一个 String
参数的公共 printMessage
方法组成。执行后,参数值将传递到执行的方法。
创建服务任务的数字、名称和其他数据类型取决于服务任务的实施。在提供的示例中,使用 org.jbpm.process.workitem.bpmn2.ServiceTaskHandler
处理程序。
对于任何自定义服务任务,请确保在 Work Item Handlers 部分中的部署描述符中注册处理程序,其中 name 与用于创建动态服务任务的 nodeType
相同。有关注册部署描述符的更多信息,请参阅 Red Hat Process Automation Manager 中开发流程服务。