- 简介
- 入门指南
- 使用 Maestro BPMN 进行构建
- 使用 Maestro Case 构建
- 使用 Maestro Flow 进行构建
- Maestro Automate
- 集成
- 运营
- 监控
- 正在优化
- 参考信息
人工节点,用于暂停流程并分配任务以供人工审核、批准或输入。
人工节点暂停流程并将任务分配给人员,然后在完成后继续流程。当流程需要人工审核、批准或输入才能继续时,请使用此功能。
何时使用人工与决策
当需要人员在流程继续之前查看信息并做出响应时,请使用“人工”节点。当分支无需人工参与即可根据现有数据自动解析时,请使用决策节点。
人工节点通过其自己的输出句柄路由受分配人选择的结果。当分支来自现有数据而非人员选择时,即刻做出决策。
人工节点类型
可以通过两种机制创建呈现给人工的任务:快速表单和操作应用。
快速表单
直接在节点上构建和调试轻量级表单。您可以定义受分配人查看的字段、他们需要提供的输入以及可以选择的结果。这是默认设置,最适合审批和直接收集数据。
操作应用程序
操作应用程序为分配给人工的任务提供了更丰富、完全自定义的界面。它们可以在 UiPath App Studio 或 Studio Web 中直观构建,也可以构建为编码操作应用程序(自定义 React 或 Angular 应用程序)。在“操作应用程序”下选择编码应用程序,并在配置时映射其输入。请参阅关于编码操作 Apps。
| 快速表单 | 操作应用程序 | |
|---|---|---|
| 用户界面已定义 | 在节点上,通过流程进行版本控制 | 部署到 Orchestrator 的单独应用程序 |
| 跨流程重用 | 是,通过复制和粘贴 JSON | 是 |
| 成本 | 无需额外单元,无 Apps 依赖项 | 需要应用程序部署 |
| 布局 | 允许多列、多种宽度布局、字段行为 | 完全控制 |
| 渲染时的数据 | 仅绑定流程变量/表达式 | SDK:资产、存储桶、连接、Data Fabric、触发器流程 |
| 测试 | 从画布进行内联调试 | 构建 → 部署 → 运行 |
| 构建所需技能 | 无 | App Studio,或 React/Angular(适用于编码 Apps) |
从快速表单开始。当您需要在流程之间重用相同的界面,显示流程尚未包含的数据,或构建表单无法表达的用户界面时,请使用 Action 应用。
Action Apps 文档介绍了构建应用程序本身。从此时开始,此页面将涵盖快速表单任务类型。有关动手操作,请参阅“向工作流添加人工审批” 。
配置
分配条件
分配条件用于控制接收任务的人员。选择条件会更改要匹配的第二个字段 — 适用于单个用户的用户选取器、适用于基于组的条件的组选取器。
| 条件 | 获得任务的人员 | 用于以下情况 |
|---|---|---|
| 单个用户 | 一个已点名人员。 | 此决策由特定的个人拥有 — 已点名的审批人、单一审核人 |
| 所有用户 | 组内的每个成员属性相匹配。第一个完成任务的人将为所有人关闭任务。 | 您更关心速度,而非所有权。若有空则拾取 |
| 工作负载 | 未完成任务最少的组成员 | 您希望队列在团队中平均分布 |
| 轮询 | 轮流对成员进行分组,在成员身份列表中循环 | 您希望每个成员都能承担同等的责任,无论他们的工作速度如何 |
| 自定义 | 未结任务最少的成员,从您在运行时提供的用户列表中选择,而不是从组的完整成员身份中选择。 | 每次运行时资格都会发生变化 — 跳过不在办公室、下班或正确角色或区域之外的人员。 |
要求和限制
工作负载和轮询需要本地组。两者的 Active Directory 组都会被拒绝。如果被分配者属于 Active Directory (AD) 组,请使用“单个用户”或“所有用户” 。
在调试模式下,组分配不适用于个人工作区。调试运行会在您的个人工作区中创建任务,组成员无法访问该任务,因此任务已创建,但会保持“未分配”状态,并且不会发出任何通知。这是预期结果,并非缺陷。将解决方案部署到共享文件夹,以正确测试组分配。单用户分配在调试状态下正常运行。
您可能会看到的错误:
| 错误 | 意义 |
|---|---|
NoUsersFoundInLocalGroup | 所选组没有成员。 |
NoEligibleUsersFoundInGroup | 已排除所有成员,因此没有可分配的对象。 |
架构
架构定义了被分配者看到的内容以及他们返回给流程的内容。它包含两部分:字段和结果。
字段
架构也可以直接编辑为 JSON 格式。有关完整的 JSON 架构参考,请参阅“快速表单任务” 。在“表单”视图中,每个字段都有以下设置:
| 设置 | 操作 |
|---|---|
| 标签 | 向受分配人显示的显示名称。 |
| 类型 | 控制验证以及输入的呈现方式。可用类型:文本、数字、十进制数字、日期、日期与时间、是或否、单选、多选、数组、文件。 |
| 绑定 | 预填充字段的表达式,例如 $vars.requestAmt。接受任何工作流表达式,而不仅仅是变量引用。 |
| 可编辑 | 值旁边的挂锁。“锁定”意味着受分配人可以读取该值,但无法更改。 |
| 变量 | 在字段名称旁边显示为(x)徽章。从“输出标签”和“输入/输出”字段自动派生,将值公开为除 $vars.<nodeName>.output.<fieldId> 之外的命名流程变量。未显示在输入字段中。 |
字段方向
字段将数据带入和带出任务。每个字段都有一个方向。
- 输入字段是被分配者的只读上下文,绑定到流程值,例如
$vars.start.output.employeeName。 - 输出字段由受分配人填写并返回给流程。
- “输入”/“输出”字段具有双重功能:它们向受分配人显示作为起点的流程值,受分配人可以在值返回到流程之前对其进行编辑。
字段的方向不是单独的设置。这是两个控件的结果:字段是否绑定决定了它在到达时是否已预填,而是否解锁决定了受分配人是否可以更改它。
| 绑定 | 挂锁 | 方向 | 受分配人查看 | 可编辑(&A)已返回 |
|---|---|---|---|---|
| 集合 | 已锁定 🔒 | 输入 | 绑定值 | 否 |
| 集合 | 已解锁 🔓 | In/Out | 绑定值 | 是 |
| 无 | 已解锁 🔓 | 输出 | 空字段 | 是 |
| 无 | 已锁定 🔒 | 无效 | 空字段 | 否 |
结果
结果是指受分配人用于完成任务的按钮,例如“批准”和“拒绝” 。默认架构有一个“提交”结果。第一个结果标记为主要操作。
每个结果都将自己的输出句柄添加到节点。当受分配人选择结果时,流程将从该结果句柄继续,因此您可以将每个结果路由到不同的路径。请参阅在结果上分支。
交付渠道
任务将交付至:
- Action Center
- 电子邮件
- Slack
- Microsoft Teams
只能在租户级别从管理员设置中修改交付渠道。节点上的复选框已禁用,并反映当前租户配置。
Slack 和 Microsoft Teams 需要 Integration Service 连接。有关连接器设置,请参阅可操作的通知。
输出
在$vars.<nodeName>.output访问节点的输出,在$vars.<nodeName>.status访问选定的结果。
输出
任务结果:一个对象,用于保存受分配人提交的值,由输出字段键入。使用$vars.<nodeName>.output.<fieldId>读取单个字段。该对象还带有设置为所选结果的Action属性。
状态
受分配人选择的结果,例如Approve 。按此值创建分支以路由流程。
根据结果创建分支
您定义的每个结果都会向“人工”节点添加一个输出句柄。受分配人完成任务后,流程将从他们选择的结果的句柄继续。将每个结果句柄连接到应为该路径运行的节点。您不需要决策节点即可根据结果进行拆分。
Human
├─ Approve → continue processing
└─ Reject → notify the requester and terminate
Human
├─ Approve → continue processing
└─ Reject → notify the requester and terminate
使用$vars.<nodeName>.output.<fieldId>读取任何下游节点中已提交的字段:
// In a Script node on one of the outcome paths
return $vars.approval.output.comment;
// In a Script node on one of the outcome paths
return $vars.approval.output.comment;
如果您需要在表达式中使用所选结果,则也可以将其用作$vars.<nodeName>.status 。
常见问题
受分配人未出现任务
请验证受分配人(无论是用户还是组)是否正确以及是否有权访问 Action Center。
缺少输出值
确认已在方向为输出的架构中定义了该字段。
结果路由到错误路径
确认每个结果的输出句柄已连接到您想要的节点。您在架构中定义的每个结果在“人工”节点上都有自己的句柄。
注意
要在没有真实受分配人的情况下进行测试,请使用模拟输出来模拟status和output响应。有关操作步骤,请参阅向工作流添加人工审批。
- 如果受分配人是一个组,则该组的任何成员都可以声明并完成任务。
- 要获得比表单更丰富的界面,请使用操作应用程序而不是快速表单来支持任务。