【RPA之家UiPath官方教程】项目组织
项目组织
在本课程中,我们将专注于组织项目。 我们将学习项目布局,分解复杂流程,重用项目的各个部分,管理版本和处理异常。
受众:RPA开发人员
学习目标
在本课程结束时,您应该能够:
为每个工作流程选择合适的项目布局;
将复杂的自动化项目划分为可以分别开发的功能性工作流程;
使用异常处理技术来构建可靠且可扩展的项目;
确定跨项目的可重用组件,并构建库以存储它们以供将来重用;
使用UiPath的版本控制功能可保持开发工作的可追踪性和可靠性。
关于本课程
介绍
在本课程中,我们将着重于组织项目的良好案例实践。 我们将学习有关选择项目布局,分解复杂流程,重用项目的各个部分,管理版本以及防止异常的知识。
受众:RPA开发人员
课程时间:6小时
完成课程的要求:通过最低80%的分数通过课程测验
先决条件:
基本编程知识
RPA开发人员角色课程简介
变量,数据类型和控制流程
数据处理课程
Excel和数据表课程
UI互动课程
选择器课程
任何UiPath实施都需要遵循明确的原则。
我们的目的是建立以下自动化流程:
可靠(机器人应能按预期工作,并具有最小的意外错误率)
高效(应尽可能减少执行时间)
可维护的(工作流应该易于理解和调试)
可扩展的(添加新功能应该很容易)
学习目标
在本课程结束时,您将能够:
1为每个工作流程选择合适的项目布局;
2将复杂的自动化项目划分为可以分别开发的功能性工作流程;
3使用异常处理技术来构建可靠且可扩展的项目;
4确定跨项目的可重用组件,并构建库以存储它们以供将来重用;
5使用UiPath的版本控制功能可保持开发工作的可追踪性和可靠性。
注意:本课程是使用UiPath Studio 2019.7创建的。 最新的Community Edition版本中的某些元素可能有所不同。
如何选择最佳的项目布局?
对于自动化的小型过程或较大的自动化项目的一部分,有3种布局选项–序列,流程图和状态机。
--序列:
什么时候使用?
如果步骤明确,没有太多条件(例如,UI自动化);
通常,使用序列来嵌套工作流,并通过流程图或状态机来处理高级逻辑。
有什么优势?
易于理解和遵循,具有自上而下的方法;
非常适合简单的逻辑,例如在互联网上搜索商品。
缺点是什么?
在同一Sequence中嵌套太多条件会使该过程难以阅读;
不适合连续流动。
--流程图:
什么时候使用?
当您具有多个条件的复杂流程时,流程图至少在视觉上更容易理解和遵循;
当您需要一个连续运行或仅在几种情况下终止的流时。
有什么优势?
易于理解,因为它类似于软件计算中的逻辑图;
可用于连续工作流程。
缺点是什么?
流程图只能用作常规工作流程(序列嵌套在内部),不能用于项目的各个部分(嵌套在其他工作流程内部)。
--状态机:
什么时候使用?
首先,让我们了解什么是状态机。它是一台抽象机器,由有限数量的预定义状态和这些状态之间的转换组成。在任何时候,根据外部输入和验证的条件,它只能处于一种状态。
可以使用有限数量的清晰和稳定状态来使用状态机。您日常生活中的一些例子包括自动售货机,电梯或交通信号灯。
有什么优势?
可用于更复杂的连续工作流程;
状态之间的转换可以轻松定义并提供灵活性;
可以容纳更复杂且无法通过简单循环和If语句捕获的进程;
用状态机覆盖所有可能的情况/转换会更容易。
缺点是什么?
由于它们的复杂性,需要更长的开发时间:将流程分为逻辑“状态”,弄清楚过渡等。
注意:状态机不可过度使用-它们应仅定义项目的框架
实际上,有一些基于状态机的模板,这些模板专门用于构建大型企业自动化。最常用的是机器人企业框架-我们将在本课程的后面部分中分别介绍两课。
如果您在RPA Developer课程中学习了课程1.2-变量,数据类型和控制流,那么您已经熟悉了序列和流程图。 现在是时候更多地关注状态机了。
状态机-一个真实的例子
带恒温器的空调的代表是状态机如何工作以及状态之间如何转换的一个很好的例子。 如何使用它:
使用“开/关”按钮启动或停止空调。 启动后,空调将进入“空闲”状态。
在“所需温度”中写入所需的温度。 字段,然后单击“设置”。 请注意,工作范围在15到30度之间,因此任何低于15或高于30的值都将分别转换为15和30。
设定温度后,空调将移至“热”或“冷”状态。 达到所需温度后,它将显示在“当前温度”下,空调移至“空闲”。
在下面导航以查看此示例中解释的状态机的概念。
1. IDLE,COLD,HEAT是状态机的状态。 OFF是状态机的最终状态; 同样,在UiPath Studio中,进程可以在给定时间处于特定状态。 此状态是包含要执行的活动的状态。 如果我们回到示例,在COLD状态下,空调将执行冷却空气的活动。
2.这些状态之间存在转换:
关闭到空闲:单击“打开/关闭”按钮;
所有状态(空闲,冷,热)都变为关闭:单击“打开/关闭”按钮;
空闲到冷:所需温度<当前温度;
空闲到热:所需温度>当前温度;
从冷/热到空闲:所需温度=当前温度。
3.在任何时候,空调都处于过渡状态或状态。
4.空调过程是连续的。
如何分解一个复杂的过程?
通过允许对组件进行独立测试,同时鼓励团队协作,在较小的工作流程中打破自动化流程可以确保开发速度和可靠性。 两者对于此类举措的成功都是至关重要的。 而且,在复杂的自动化中(就像大多数企业项目一样),问题不在于是否应该分解,而在于如何做到。
可以采用多种方式划分工作流,并且至少应将3个因素视为分解标准:
1正在自动化的应用程序;
2特定操作的目的(登录,处理,使用OCR读取文档,填写模板等);
3每个工作流程的长度。
例如,一个复杂的过程可以分为每个应用程序的工作流,对于每个应用程序,可以将其分为输入,处理或输出。 如果这些工作流程中的任何一个都太长,可以将它们进一步拆分,同时还要考虑这样做的目的。
处理数据
将项目分成较小的工作流程会影响数据的处理方式。由于变量仅在同一工作流程内起作用,因此拥有多个工作流程需要使用参数。
您可能知道,参数与变量非常相似-它们动态存储数据,具有相同的数据类型,并且支持相同的方法。主要区别是“方向”属性,表示数据从/向其传递的方向。方向可以是输入,输出和输入/输出:
in-如果我们想在调用的工作流程中使用参数的值;
Out-如果我们要将参数传递到调用的工作流程之外;
in/Out-如果我们要将变量从父工作流程传递到调用的工作流程,请在调用的工作流程中对其进行修改,然后再将其传递回父文件夹。
使用“提取为工作流”选项时,变量将自动转换为参数。首次调用工作流以获取所有可用参数时,请使用“导入参数”。确保使用“参数”面板将“参数”实例化为“变量”的相应值。
考虑一个调用的工作流,该工作流从工资总额中减去所有税款。您将至少需要2个参数:
IN参数中包含工资总额的变量的值;
OUT将净工资值传递给变量的参数。
存储在参数中的数据可以是动态的。考虑以下2个工作流的示例:
A-调用工作流程B
B-具有列表数据类型的IN参数
如果工作流程B更新了该列表,它也将在工作流程A中进行更新。
如何重用项目的一部分?
提取工作流程并在自动化项目中重复使用它们是使项目保持组织性,可读性和可持续性的好习惯。同时,在某些情况下,可以在不同项目中重用工作流。考虑登录到SAP的顺序。每次自动化项目处理SAP时,都需要相同的顺序。
通过流程库可以在单独的项目中存储和重用组件。流程库是一个包含多个可重用组件的程序包,这些组件由一个或多个充当单独活动的工作流组成。库被保存为nupkg文件,然后使用程序包管理器安装在不同的工作流中。
我们如何确定项目的一部分是否可重用?理想情况下,在架构师或开发人员将项目划分为多个部分之后,她或他将决定可以重用项目的哪个部分。通常,与应用程序的图形交互应该是可重用的组件,因为对数据的处理不应取决于如何获取数据。
如何管理同一项目的版本?
源代码控制系统在大型项目中特别有用,在大型项目中,每个阶段都有多个团队和个人参与。 源代码控制系统允许处于不同团队和位置的用户访问相同的资源并在相同的项目领域中工作。 它们还用于对代码进行版本控制以及维护开发过程中所做的所有更改的历史记录。
通过后台视图中的“团队”页面,Studio支持以下源代码控制系统:
Git:
通过Git集成,您可以:
克隆远程仓库
新增项目
提交并推送
将项目复制到Git
创建和管理分支
使用文件差异选项解决冲突
TFS
支持以下版本:
2012年
2013年
2015年
快车2012
快车2013
快车2015
首先,您需要在Studio中设置TFS。
然后,您可以打开一个项目或将新项目添加到TFS。
SVN
借助SVN集成,您可以:
从SVN打开一个项目
将项目添加到SVN
如何预防和解决异常?
自动化项目通常会遇到中断干扰项目执行的事件。 其中一些在开发和测试阶段已确定,并且已实施处理机制。
考虑一种自动化,其中输入数据来自Web表单,并且应用程序尝试使用姓氏将数据与现有客户端列表进行匹配。 但是,如果用户在拼写名称时输入错误,该怎么办? 自然,该名称将不会被识别。
一个好的项目设计将包括识别和识别异常的方法,以及仅当捕获异常时才执行的操作模式。 这些可以只是简单地停止执行,或者在工作流中自动执行明确的动作,甚至可以将问题上报给操作人员。
可以通过两种方式预测和处理异常:
在活动级别,使用“尝试/捕获”块或“重试作用域”;
在全局级别上,使用全局异常处理程序。
两者都将在“错误和异常处理”课程中进行深入介绍。 在这一点上,能够选择正确的异常类型非常重要,因为该信息将在开发的更高级别用于后续决策。 例外类别为:
--应用异常
应用程序异常描述了根源于技术问题的错误,例如没有响应的应用程序。
考虑一个从员工数据库中提取电话号码并将其插入财务应用程序的项目。 如果在尝试进行交易时金融应用程序冻结,则漫游器找不到应在其中插入电话号码的字段,并最终引发错误。 由于应用程序可以解冻,因此仅通过重试事务即可解决这类问题。
在管理应用程序异常时,为活动和工作流程制定良好的命名约定非常重要。 这将有助于跟踪导致异常的活动。
--业务异常
业务异常描述了一个错误,该错误源于以下事实:自动化项目所依赖的某些数据不完整,丢失,超出了设置范围(例如,尝试从ATM中提取的数据超出每日限制)或未通过其他数据验证标准(例如包含字母的发票金额)。
考虑一个处理发票的机器人,流程所有者设置了一个业务规则,只有金额低于1 000 $的发票才能进入自动化流程。对于其他应用程序,则可以应用不同的流程,涉及到人类用户来处理它们。
在这种情况下,重试交易不会产生解决问题的任何机会,而是应通知业务用户有关待处理的发票,并将此案例视为业务例外-因为这是常规流程和业务流程的例外。验证由开发人员在工作流程中明确进行。
作为推荐的做法,例外中的文本应包含足够的信息,供人类用户(业务用户或开发人员)理解所发生的事情以及需要采取的措施。
最佳实践
让我们回顾一下针对一个好的项目组织要注意的要点:
1在开始实际开发之前,对过程进行彻底分析,确定需求并计划解决方案的外观。
2将流程分为较小的工作流,以更好地理解代码,独立测试和可重用性。这也可能影响效率,因为不同的团队成员可以从事不同(较小)的工作流程。
3根据目标应用程序将项目的工作流分组到不同的文件夹中。
4在整个项目中保持一致的命名约定。
5基于信息方向调用工作流时,请使用正确的参数类型(In / Out / InOut)。对于命名,我们建议使用CamelCase,并将参数的方向作为前缀(in_ / out_ / io_)。
6负责任地处理敏感数据:不应将凭据直接存储在工作流中,而应从本地Windows凭据存储或Orchestrator资产等较安全的位置加载,并与“获取安全凭据”,“获取凭据”和“键入安全文本”活动一起使用
7使用“尝试/捕获”块来预测和处理异常。同时,请记住,仅使用Try / Catch只能识别错误,而不能解决错误。因此,请确保您开发了错误处理机制并进行了集成。
8在全局和/或不太可能发生的情况下使用全局异常处理程序(例如,Windows Update弹出窗口)。
9使用库为项目创建和存储可重用组件。
10在工作流程中添加注释,以阐明每个工作流程的目的。
11使用生产日志来获取有关关键时刻或需要任何特定数据的相关信息。