第 38 章 使用 KIE 服务器 REST API 将动态任务和流程添加到示例中
您可以在运行时添加动态任务和流程,以解决问题单生命周期中可能出现的未预见的更改。特定定义中没有定义动态活动,因此无法向明确的临时任务或进程发送信号。
您可以在问题单中添加以下动态操作:
- 用户任务
- 服务任务(任何作为工作项目实施的类型)
- 可重复使用的子进程
动态用户和服务任务添加到问题单实例中,并立即执行。根据动态任务的性质,它可能开始并等待完成(用户任务)或直接在执行后完成(服务任务)。对于动态子进程,进程引擎需要包含该动态进程的进程定义的 KJAR,以便根据其 ID 查找其 ID 并执行它。此子进程属于这种情况,且有权访问 case 文件中的所有数据。
您可以使用 Swagger REST API 应用程序来创建动态任务和子进程。
先决条件
- 您已登陆到 Business Central,一个问题单实例已使用 Showcase 应用程序启动。有关使用 Showcase 的更多信息,请参阅使用 Showcase 应用程序进行问题单管理。
流程
在网页浏览器中,打开以下 URL:
- 在 问题单实例 :: Case Management 下打开可用端点的列表。
找到用于创建动态活动的
POST方法端点。POST /server/containers/{id}/cases/instances/{caseId}/tasks向问题单实例添加动态任务(根据有效负载影响的用户或服务)。
POST /server/containers/{id}/cases/instances/{caseId}/stages/{caseStageId}/tasks添加动态任务(根据有效负载的用户或服务)到 case 实例中的特定阶段。
POST /server/containers/{id}/cases/instances/{caseId}/processes/{pId}将进程 ID 标识的动态子进程添加到问题单实例。
POST /server/containers/{id}/cases/instances/{caseId}/stages/{caseStageId}/processes/{pId}添加由进程 ID 标识的动态子进程到问题单实例中的 stage。
- 要打开 Swagger UI,请点击创建动态任务或进程所需的 REST 端点。
- 点 Try it out 并输入创建动态活动所需的参数和正文。
- 单击 Execute,以使用 REST API 创建动态任务或子进程。
38.1. 使用 KIE 服务器 REST API 创建动态用户任务 复制链接链接已复制到粘贴板!
您可以使用 REST API 在运行时创建动态用户任务。要创建动态用户任务,您必须提供以下信息:
- 任务名称
- 任务主题(可选,但推荐使用)
- 执行或组(或两者)
- 输入数据
使用以下步骤,使用 Swagger REST API 工具为 Business Central 中提供的 IT_Orders 示例项目创建一个动态用户任务。同一端点可用于 REST API,而没有 Swagger。
先决条件
- 您已使用 Showcase 应用登录 Business Central 和 IT 订单案例实例。有关使用 Showcase 的更多信息,请参阅使用 Showcase 应用程序进行问题单管理。
流程
在网页浏览器中,打开以下 URL:
- 在 问题单实例 :: Case Management 下打开可用端点的列表。
点击以下
POST方法端点打开详情:/server/containers/{id}/cases/instances/{caseId}/tasks点 Try it out,然后输入参数:
Expand 表 38.1. 参数 Name 描述 iditorderscaseIdIT-0000000001请求正文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 Swagger 应用程序中,点 Execute 创建动态任务。
此流程创建与案例 IT-000000001 相关的新用户任务。该任务分配到分配给 经理 案例角色的人员。此任务有两个输入变量:
-
reason -
caseFile_hwSpec: 定义为表达式,允许运行进程或问题单数据的运行时捕获。
有些任务包含一个表单,为任务提供用户友好的 UI,您可以通过任务名称查找。在 IT Orders 案例中,RequestManagerApproval 任务在其 KJAR 中包括 RequestManagerApproval-taskform.form。
创建之后,该任务将显示在 Business Central 中的 assignee 的 Task Inbox 中。