R029---简述:用UiPath实现RPA(工作流程自动化)
一、缘起
UiPath提供社区版供用户免费使用(见本公众号文章《R028---UiPath Studio社区版、企业版の区别与切换(第2版)》)。
UiPath软件可以让业务人员(非IT人士)实现自己的流程自动化,这一点就像EXCEL,非程序员人员也可以学会,来帮自己或他人,解决重复的计算机上的劳动。
确实有人不太会用EXCEL,但这不能说明你也学不会。
会用EXCEL的人是否要用VBA来实现数据处理过程,完全看是否需要,或者是否愿意学;
不会VBA的EXCEL用户也在用自己的方法使用EXCEL。
会用UiPath,也类似,说“UiPath不用编程是骗人的”也是片面的,是否需要编程,关键看你是否需要和用到什么程度,就在EXCEL中用VBA。
我培训过不少业务人员,确实通过学习,实现了自己的流程自动化;
有人在学会后才发现:自己还有这种潜力,咱也是个会自动化的人了,而且没有靠IT,好高兴!对于自己可以实现的自动化部分,再也不用跟IT解释你要实现什么功能了,再也不用什么排期了,或者根本排不上期。
那么,作为一个业务人员,如何用UiPath提供的Activities来设计你的工作流程自动化(RPA)?
这里根据实践及基于https://studio.uipath.com/docs/workflow-design,简述这一个过程。
注:这一篇是UiPath普及篇文章,如果您已经UiPath老手,就此掠过吧。
二、总体布局图
UiPath的软件分为Studio、Robot、Orchestrator三部分;
Studio是来设计你的流程自动化的工具;
Robot是来运行你设计好的流程;
Orchestrator管理你的Robot们;
三部分同时使用,关系如下:
如果使用社区版或者没有购买Orchestrator的企业版,关系如下:
当你用UiPath Studio新建一个流程文件来实现你的流程自动化时,Studio提供了四个流程设计框架选择:
序列(Sequence)
流程图(Flowchart)
状态机(State Machine)
全局异常处理程序(Global Exception Handler)
流程设计框架用于你在开发工作流文件时,将你需要的Activity集成到你开发的工作结构中;
Activity是UiPath Studio提供的、对应你的工作流程中的某个操作步骤(例如点击某个按钮或链接、打开某个excel文件、发送邮件等)或者为了实现这些操作步骤所需要的逻辑处理;UiPath是开放式的,所以有很多第三方做的Activity,也被UiPath吸纳,供用户使用。
你需要根据你的流程的复杂性,来选择不同的框架,以便开发起来更快捷,下面逐一说明:
2.1 序列
序列具有简单的线性表示,从上到下流动,最适合于活动相互跟随的简单场景。例如,它们在界面自动化中很有用,当导航和键入一次发生一次点击/击键时。
因为序列易于组装和理解,所以它们是大多数工作流程的首选布局。
2.2 流程图
流程图为连接活动提供了更大的灵活性,并倾向于以简单的二维方式布置工作流程。
由于其自由形式和视觉吸引力,流程图最适合展示流程中的决策点。可以指向任何地方的箭头非常类似于非结构化的GoTo编程语句,因此使大型工作流程容易混乱交织活动。
2.3 状态机
State Machine是一个相当复杂的结构,可以看作是带有条件箭头的流程图,称为转换。
它可以实现更紧凑的逻辑表示,并且我们发现它适用于事务业务流程模板的标准高级流程图。
2.4 全局异常处理程序
异常处理程序设计用于小型和大型自动化项目,用于识别执行错误,最重要的是,确定发生此类错误时的工作流行为。
如果在调试期间遇到执行错误,则可以将全局异常处理程序设置为单步执行,并允许您根据先前在异常处理程序中设置的选项检查工作流的行为。
三、数据(变量 与 参数)
流程中,最主要在处理的是数据;
流程自动化的设计中,把数据放到变量、参数中来实现处理。
在流程自动化的可见性和生命周期方面,数据有两种形式:变量、参数。
变量:在单个工作流文件中的某个容器范围内使用的,用于存储和区分数据而定义的某种数据类型的实例。
参数:将数据从一个工作流传递到另一个工作流的变量,除了传递作用,其他作用和普通变量相同;
3.1 变量的范围
与工作流文件中随处可用的参数不同,变量仅在定义它们的容器内可见和被使用,所在容器,被称为变量的范围。
变量应保留在使用它的最小范围内,以减少“ 变量”面板中的混乱(一堆),并在自动完成中仅显示工作流中特定点的相关内容。
注意:
Studio中允许存在两个具有相同名称的变量,在最内部范围中定义的变量具有优先级。
强烈建议不要出现同名变量。
3.2 参数
请记住,在使用Isolated选项(在单独的系统进程中开始运行工作流)调用工作流时,只有可序列化类型可用作将数据从进程传递到另一个进程的参数。例如,SecureString,Browser和Terminal Connection对象无法安全地跨越进程间边界。
3.3 默认值
变量和输入参数可以使用一些默认静态值进行初始化。这在单独测试工作流时非常方便,无需调用工作流或其他外部源的实际输入数据。
举例如下:
四、选择
数据处理,依靠逻辑,逻辑中很重要的一点是根据不同情况的不同选择。
开发自动化流程时,经常需要通过逻辑判断或条件做出不同的选择,以使机器人能够在数据处理和应用程序交互的各种条件下做出不同的反应。
选择最合适的条件表示及其后续分支,对工作流的可视化结构和可读性影响很大。
实现选择有下面这些Activities:
4.1 Activity1:如果(If Activity)
If Activity垂直分割序列,是完美的短均衡直线分支。
当需要以If ... Else If方式链接更多条件时,尤其是当分支超出宽度或高度的可用屏幕尺寸时,会遇到挑战。
作为一般准则,要避免使用嵌套的If语句以保持工作流简单/线性。
4.2 Activity2:流程决策(Flow Decision Activity)
流程图布局有助于展示重要的业务逻辑和相关条件,如嵌套的If语句或If ... Else If构造。在某些情况下,即使在序列中,流程图也可能看起来很好。
4.3 Activity3:如果表达式(If Operator)
UiPath直接支持用Visual Basic(简称VB)语法写的表达式,VB中的If表达式对于监控本地条件或数据计算非常有用,它有时还能把一整块的流程简化到一个简单的activity,举例如下:
Assign右侧的的表达式如下:
4.4 Activity4:切换(Switch Activity)
Switch activity有时可用于收敛If表达式。当每个分支具有不同的条件和活动时,可以流线化和紧凑If…Else If级联。举例如下(这里可以根据例子学习下Switch的用法):
4.5 Activity5:流程切换(Flow Switch Activity)
Flow Switch activity根据表达式的值选择下一个节点; Flow Switch可以看作是flowchart的系列activity中Switch Activity 的等价物。通过从同一交换节点启动更多连接,它可以匹配超过12种情况。举例如下:
五、命名约定
给工作流文件,活动,参数和变量命名时,推荐使用有意义的名称,以便准确描述其在整个项目中的使用情况。
首先,项目应该具有有意义的描述,因为它们也显示在Orchestrator用户界面中,并且可能在多用户环境中有所帮助。
参数名称区分大小写,但为了提高可读性,变量也应该与命名约定对齐:
变量应该是上驼峰,如FirstName,LastName。
参数应该是在上驼峰的前缀,说明参数类型,例如in_DefaultTimeout,in_FileName,out_TextResult,io_RetryNumber。
活动名称应简明扼要地反映所采取的操作,例如单击“ 保存”按钮。保留描述操作的标题部分(单击,键入,元素存在等)。
除Main外,所有工作流程名称都应包含描述工作流程功能的动词,例如GetTransactionData,ProcessTransation,TakeScreensh
六、评论和注释(Comment和Annotations)
Comment和Annotations应该用于更详细地描述某种技术或特定交互或应用程序行为的特性。
请记住,其他人可能接手你写的流程,您需要用适当的Comment、Annotations让其他人更容易理解你写的流程,否则,...*#&$^。
在你流程中使用的activity上鼠标右键菜单中,有关于Annotations的菜单,选择即可实现,举例如下:
选择Add Annotations之后,出现注释编辑界面:
录入注释,焦点离开注释编辑区后,你使用的activity右上角上就多了香水瓶状的图标标:
点击这个图标,显示刚才书写的注释:
点击注释右上角的图钉图标,注释显示方式改为如下:
关于commnet,有2个activity:
Comment用于在流程中写注释,这些注释占据了一个activity实例的位置:
Comment Out用于在调试流程时,把某些activity临时注释(执行时机器人会跳过这些被注释的activity,当它们不存在),除了拖拽方式外,在某个需要注释掉的activity上鼠标右键,可以快速实现注释掉这个实例activity,举例如下:
(正文结束)
附1:关于本公众号
微信公众号名称:柴班说
欢迎转载与分享,也请注明出处。
附2:关于本文作者
微信号:chaijw
识别下面的二维码,可以与作者进行更为深入的交流。