仅仅创建一个自动化项目是不够的。无论是决定使用哪种布局,还是正确命名步骤,以正确的方式组织项目都很重要。项目也可以在新的项目中重用,这对用户来说非常方便。本章解释了我们可以重用项目的方法。我们还将学习配置技术并看到一个示例。最后,我们将学习如何集成TFS服务器。
列出了本章将涵盖的主题:
在处理任何自动化项目时,使用一套适当的规则非常重要,这样项目才能以高效的方式组织起来。在UiPath中,以下是在处理项目时考虑的一些最佳实践:
我们现在将详细阐述每一种最佳做法。
创建新项目时可以使用各种布局。在这些布局中,我们必须根据我们正在进行的自动化过程的类型选择最佳选项。所有布局如以下屏幕截图所示:
空白项目只是一个空白页面,您可以在上面创建所需的布局类型。也就是说,如果工作流处于单一顺序/序列中,则可以简单地从序列活动开始,或者如果要设计更大或更复杂的工作流,则可以使用流程图活动。这取决于用户的需求或要进行的自动化类型。以下屏幕截图显示了一个Blank项目, 新版使用流程项目,默认空白流程:
简单流程是一种布局,用于将流程建模为流程图,其中有用户输入的空间。在这里面,我们可以使用一个序列,在进一步的事务处理中处理所需的输入。如果交易没有新的输入,它将结束该过程;在事务处理过程中,我们必须制定一个可用于自动化事务处理的工作流。默认情况下,这是一个生成的过程,如果需要,可以删除或更改。下面的屏幕截图显示了一个简单流程的示例:
这会触发自动化以响应鼠标或键盘用户事件。它基本上是在用户自动化涉及键入或单击操作的过程时使用的。此过程中出现的一个简单布局如以下屏幕截图所示:
如果我们想将业务流程建模为状态机图,我们将使用这种布局。它基本上是事务业务流程自动化如何工作的演示。如果我们想建造一个更好的机器人来自动化这些过程,最好使用这种布局。
此布局分为不同的状态:
要构建任何项目,我们都必须使用各种活动。但是使用过多的活动会使项目变得笨拙,并且不可读。我们必须以这样一种方式设计我们的项目,即每个独立的部分都单独存在。我们可以通过使用工作流来实现这一点。
我们应该把项目的每个独立部分放在一个单独的工作流程中。我们可以在适当的位置调用项目中的所有工作流。将项目划分为多个工作流可以使项目更干净、更易于维护。现在,如果任何开发人员想要调试您的代码,他们可以检查不同的工作流,并轻松地确定特定错误发生在哪个工作流中。如果项目不分为工作流,那么对于开发人员来说,修复任何错误都将是一场噩梦。
因此,将自动化分解为更小的部分可以轻松调试,以及跨项目的工作流:
在处理项目时,最好使用异常处理,因为它可以降低出错的风险。例如,使用Try-catch块可以为您提供正确的错误消息,这有助于我们处理异常。前面已经解释了各种异常处理技术,这些技术在处理项目时非常有用。图中显示了一个使用Try-catch活动来处理异常的示例。在这里,我们使用Write-line活动来显示catch块或Finally块检测到任何错误时的消息(如屏幕截图中突出显示的):
根据活动执行的操作命名活动是一种很好的做法,以确保当我们返回到工作流时,我们可以轻松地识别其中使用的每一个步骤。这在查找和解决错误时非常有用,因为它指定了在调试期间显示错误的过程。如果活动的名称正确,我们就可以确切地知道工作流的哪一部分不起作用。例如,我们将创建一个工作流,要求用户猜测一个数字,在此基础上进行加法运算,并最终显示答案。以下屏幕截图显示了流程中所涉及步骤的正确命名:
正如以干净易懂的方式写作是一个好的程序员的素质一样,RPA开发人员也是如此。干净的代码可以帮助我们非常容易地理解整个过程——无论是你还是阅读它的人。
在UiPath中工作时,最好将整个流程划分为较小的部分,然后将这些工作流嵌套到较大的工作流或主工作流中。这可以使用“活动”面板中提供的“调用工作流文件”活动来完成。将一个或多个工作流嵌套到一个工作流中需要几个步骤。
假设我们有两个工作流程。在本例中,我们将调用一个工作流到另一个工作流中:
重用工作流使自动化过程变得更容易、更好,因为我们可以在项目中使用早期创建的工作流,我们正试图将其用于自动化。有两种方法:
如果我们有一个复杂的自动化项目,调用工作流文件是一个很好的过程。我们可以把它分成更小的部分。通过使用Invoke工作流文件活动,我们可以调用项目中的所有文件,并在单个工作流中收集所有这些较小的部分。然而,如果我们想在项目中调用以前创建的工作流并对后者进行更改,前者也会受到影响。因此,建议仅当我们有复杂的工作流时才使用“调用工作流文件”活动:
如前面的屏幕截图所示,Invoke工作流文件活动需要其关联XAML文件的路径。
如果我们有一个复杂的自动化项目,调用工作流文件是一个很好的过程。我们可以将其划分为较小的部分,然后通过使用Invoke工作流文件活动,我们可以将所有这些较小的部分收集到一个工作流文件中。但是,如果我们想在新工作流中调用以前创建的工作流并对新工作流进行更改,则以前的工作流也会受到影响。因此,建议仅当我们有一个复杂的工作流,并且我们希望将流程划分为更小的部分,然后将它们一起使用时,才使用Invoke工作流文件活动。还有另一种特性,我们在这里需要的;如下所示:
如前面的屏幕截图所示,Invoke工作流活动需要一个变量表达式。我们可以创建一个变量并设置Invoke工作流文件活动所需的超时。
将工作流保存为模板有助于保留原始工作流文件。因此,无论您在模板中做了什么修改,都不会对原始工作流进行任何更改。我们在创建可重复使用并适用于多个工作流的通用自动化小部件时经常使用模板。因此,如果工作流不会随时间变化,则可以使用模板。最常见的例子是使用数据、数据表和xml文件创建自己的可重用代码段。
按照给定的步骤添加工作流作为模板,其解释如下:
完成设计后,可以导出
在工作流中使用注释被认为是一种很好的做法,因为它可以更好地逐步通知工作流中所做的事情。因此,在调试时,在复杂的工作流中进行注释被认为是很好的:
状态机在执行过程中使用有限数量的集合。当它被一个活动触发时,它可以进入一种状态;当触发另一个活动时,它退出该状态。状态机的另一个重要方面是事务。它们使您能够根据事务从一个状态跳到另一个状态来添加条件。这些由状态之间的箭头或分支表示。
有两个特定于状态机的活动。它们是状态和最终状态,如以下屏幕截图所示:
State活动由Entry、Exit和Transitions三个部分组成,而FinalState仅包含Entry。我们可以双击这些活动以查看更多信息并对其进行编辑,从而展开这些活动:
只有当我们选择了一组关于如何创建工作流的简单说明时,才会使用序列。也就是说,我们不必做出决定。当我们以顺序的方式记录一些步骤,并且我们正在创建一个简单的工作流程时,这是优选的。
以下屏幕截图显示了一个这样的序列:
现在,当涉及到状态机和流程图时,它们都用于复杂的过程,并且都能很好地工作。它们以相同的方式工作,但状态机比流程图有一些优势,如下所示:
在配置方面,UiPath没有任何预构建的配置文件,如Visual Studio,但我们可以创建一个。将环境设置保存在配置文件中被认为是最佳做法之一,这样用户就可以在需要时轻松更改环境设置。因此,当我们创建项目时,会自动创建包含所有活动的Project.json文件。Project.json可以在保存项目的文件夹中找到。要访问文件夹,我们只需打开Project,然后复制路径(如以下屏幕截图所示),并将其粘贴到文件资源管理器中:
然后,您可以在文件资源管理器中看到一个Project.json文件,如以下屏幕截图所示:
当您在记事本中打开Project.json文件时,以下屏幕截图显示该文件内的代码:
您还可以在电子表格或凭据的帮助下存储您的设置。有Project.json文件中包含的各种参数。它们是:
UiPath集成了一系列行动,使我们能够在项目上进行更好的合作。在“项目”面板中,右键单击文件,我们可以看到其中包含的属性列表:
本章介绍了项目的组织、模块化技术、工作流嵌套以及使用TFS服务器维护源代码版本。在最后一章中,您将深入了解如何使用Orchestrator部署和管理机器人程序。