Studio
2021.10
false
Studio 用户指南
Last updated 2024年7月15日

编排流程

长时间运行的工作流是主项目,可在无人值守的环境中支持服务编排、人工干预和长时间运行的事务。

当某些流程在继续执行活动的下一步骤前需要人工输入来处理异常、审批或验证时,则需要人工干预。在这种情况下,系统将会暂停执行流程,并释放机器人,直到人工任务完成。

工作流拆分

长时间运行的工作流包含 UiPath.Persistence.Activities,并且可以与“调用流程”和非用户交互活动结合使用,从而使用机器人任务编排人工任务。它在会话 0 中运行,从而确保快速执行。请注意,编排流程的调试在用户会话中完成。



长时间运行的工作流可能会编排:

  • 可能包含执行 API 调用并在会话 0 中运行的活动的后台流程。可以使用“调用流程”活动来调用它们。
  • 用户界面:具有通过“从 Orchestrator 启动作业”活动调用并在用户会话中运行的用户交互活动的流程。
  • 人在回路:用户通过需要在 Orchestrator 中填写表单的任务进行交互。这意味着将“创建表单任务”活动与“等待表单任务然后恢复”配对使用。

编排流程模板

在 Studio 中,转到“ 主页” >“ Orchestration 流程 ”以打开模板,该模板在流程图工作流类型中包含默认的 UiPath.Persistence.ActivitiesUiPath.System.Activities 依赖项。



模板的 project.json 文件包含 supportsPersistence: true 参数,指示在任务完成后继续执行流程。
requiresUserInteraction: false 参数指示此工作流不包含用户交互活动,类似于后台流程
不建议手动修改 project.json 文件中的参数。


通过将“ 支持持久性” 开关设置为“是 ”,可以从“ 项目设置” 窗口将流程转换为“ 编排流程”。

编排流程的代码片段

首先,您可以使用“代码片段”面板中提供的一系列工作流代码片段创建“编排流程”



构建编排流程

请按照以下步骤将 UiPath.Persistence.Activities 包中的活动配对,并建立自己的编排流程
  1. 使用“添加队列项目并获取引用”活动添加具有 inin/outout 参数的队列项目,然后获取对应的队列项目对象。队列项目处理完毕后,如果该活动与“等待队列项目,然后继续”活动配对,则系统会将 ItemInformation 属性中提供的参数分配回所映射的工作流变量。


  2. 等待队列项目,然后继续”活动应与“添加队列项目并获取引用”活动相配对。工作流进入暂停状态,并释放此活动中的机器人,待特定队列项目完成后,继续执行流程的下一个步骤。



  3. 启动作业并获取引用”活动通过提供 inin/outout 类型的参数调用其他流程。执行完毕后,如果该活动与“等待作业,然后继续”活动配对,那么系统会将修改后的参数映射回工作流变量。


  4. 等待作业,然后继续”活动应提供作为“启动作业并获取引用”活动的输出而给出的 Job Object,从而与后者配对。这会暂停当前流程,等待引用作业完成,并在引用作业的状态更新为完成后继续该流程。


  5. 使用“创建表单任务”活动为工作流中的人机交互创建含基于表单的可视化的任务。这些具有相关工作流上下文的表单将提供给用户,用于决策及其他用途。要在此活动中启用表单设计器,必须安装 UiPath.FormActivityLibrary 包。

    注意:当使用从 2021.4 开始的 Studio 版本以及 1.2.1 之前的 UiPath.Persistence.ActivitiesUiPath.FormActivityLibrary 版本时,“表单设计器”窗口将不占据焦点,并且在打开设计器窗口时可以与 Studio 进行交互。为避免此问题,请确保将程序包更新为最新版本。


  6. 等待表单任务,然后继续”活动应提供 Task Object 作为输入,以与“创建表单任务”活动配对,如此方可暂停工作流,直到此任务已由最终用户完成。


  7. 使用“延迟后恢复”活动暂停工作流的执行,并在特定日期和时间恢复该工作流。
  8. 在 Studio 中执行工作流。每当机器人执行长时间运行的活动时,Studio 都会进入只读状态,同时启用功能区中的“继续”选项。接着,完成底层任务、队列项目或作业,然后单击“继续”

最佳实践

  • UiPath.Persistence.Activities 包内长时间运行的活动(“等待并继续”活动)只能用在编排流程的入口点,即标记为 Main.xaml 的文件。
  • 由一个编排流程构建的可重用组件只能在其他编排流程中引用。
  • 如果将长时间运行的工作流附加到队列处理,并且该工作流处于暂停状态,则队列项目即使在 24 小时后仍会保持进行中状态,直到工作流在恢复后设置事务状态。如果队列项目标识符包含在“等待”和“继续”活动的相同作用域中,则这些标识符将成为持久化工作流上下文的一部分。
  • 暂留点(等待和恢复活动)不能在“遍历循环”活动的主体内使用,因其在执行第一次迭代后会暂停工作流,这可能与您的预期行为不相符。

    也可以尝试同时使用循环与暂留活动,例如“并行的遍历循环“活动。请注意,默认情况下,每项作业恢复触发器的最大数量限制为 1,000。

  • 任何可用的机器人均可恢复长时间运行的工作流,只要该机器人与暂停作业(例如无人值守或非生产)的机器人处于相同环境且类型相同,因此必须还要在暂留点后提供执行所需的本地资源。
  • 在长时间运行的活动作用域中使用的所有变量必须皆可序列化。此中所列的变量类型皆可序列化:文本、True 或 False、数字、数组、日期和时间。数据表和通用值变量。数据表和通用价值变量。
  • 对于不包含长时间运行的活动的作用域,其中所使用的变量不受序列化要求的约束,因为工作流不会在这些作用域内暂停。不可序列化的数据类型可以在同一工作流的单独序列作用域中使用,也可通过调用其他文件加以使用,前提是它们介于“等待后继续”活动之间,例如“等待作业,然后继续”、“等待队列项目,然后继续”和“等待表单任务,然后继续”。
  • 请注意,长时间运行的活动所生成的部分对象属性无法在“局部”面板中进行评估。
  • 对期望每项作业具有大量操作的工作流实施适当的批处理。请注意,每项作业每次可等待的默认作业量限制为 1,000 项操作(或其他作业触发器)。

    注意: 不支持“ 延迟 ”和“ 重试作用域 ”活动,并且在“ 编排流程”的主工作流中使用时,这两个活动无法正常工作。 在这种情况下,应将它们放置在“ 非 暂留作用域” 活动中。
  • 工作流拆分
  • 编排流程模板
  • 编排流程的代码片段
  • 构建编排流程
  • 最佳实践

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。