【UiPath Studio 中文文档】自动化程序的最佳实践 - 03 项目组织

高级别框架

从通用(和未知流程)框架开始,确保您以一致和结构化的方式处理任何流程。框架帮助您从高级视图开始,然后深入了解每个流程的具体细节。

机器人企业框架模板 建议对重复过程进行灵活的高层概述,并包含本指南中描述的一组良好的实践,并且可以很容易地用作使用 UiPath 进行 RPA 开发的坚实起点。该模板构建在状态机结构上。

它是如何运作的:

  • 机器人从配置文件和 Orchestrator 资源中加载设置,并将它们保存在要跨工作流共享的字典中。
  • 机器人获取所需的凭据并登录到所有应用程序中。
  • 如果遇到任何错误,则重试几次,然后成功或中止。
  • 机器人检查输入队列或其他输入源以启动新事务。
  • 如果没有(更多的)输入数据可用,则将工作流配置为等待和重试,或者结束流程。执行用于处理事务数据的UI交互。
  • 如果事务处理成功,则更新事务状态,机器人继续进行下一个事务。
  • 如果遇到任何验证错误,事务状态被更新,机器人移动到下一个事务。
  • 如果遇到任何异常,机器人会重新尝试处理事务几次(如果配置的话),或者将项目标记为失败并重新启动。
    -如果配置了邮件,最后则可以发送一封带有进程状态的电子邮件。

用于基于事务的流程(例如 处理 Excel 文件中的所有发票 ),没有通过 Orchestrator 执行,则可以构建本地队列(使用 .net 的 enqueue/ dequeue 方法)。

然后,高级别流程(异常处理、重试、恢复)的流程可以很容易地重复执行,这比将整个流程分组在一个 For Each Row 循环下面更容易。

所有的 REFrameWork 文件和文档可以在 这里 找到。

设计原则

在较小的工作流中分解流程对于良好的项目设计至关重要。 专用工作流允许对组件进行独立测试,同时通过开发单独的文件来鼓励团队协作。
明智地选择布局类型(流程图和序列)。通常,流程的逻辑停留在流程图中,而导航和数据处理则以顺序进行。
通过在序列中开发复杂的逻辑,您最终将得到一个由容器和决策块组成的迷宫,非常难以跟踪和更新。
相反,流程图中的UI交互使构建和维护变得更加困难。

项目相关的文件(例如邮件模板)可以被组织在本地文件夹或者共享磁盘中

注意
如果放置在项目文件夹中,则在部署过程中(以及项目工作流)在 lib/net 45 文件夹中的所有机器人机器上复制它们。

这些文件夹也可以存储在共享驱动器上,所以所有的机器人都连接到同一个唯一的源。这样,业务用户可以完全检查和维护与流程相关的文件,而不需要 RPA 团队的支持。但是,决策(共享或本地文件夹)很复杂,应该考虑到与进程和环境有关的各个方面:文件的大小、更改的频率、编辑同一文件的并发性、安全策略等。

源代码控制

为了方便地管理项目版本控制和共享更多开发人员的工作,我们建议使用版本控制系统。UiPath Studio 是直接与 TFS 和 SVN 集成的。您可以在 这里 找到一个说明连接步骤和功能的教程。

源代码控制相关设置

为了避免在工作流中硬编码外部设置(如文件路径、URL等),我们建议将它们保存在.config文件(.xlsx、.xml或.json)中,或者作为 Orchestrator 的资源(如果它们经常更改)。

一般来说,最终的解决方案应该是可扩展的,以便在不需要开发人员干预的情况下允许输入数据的变化。
例如,允许客户进行某种类型的交易的列表、接收通知的人的电子邮件等应该存储在外部文件中(如excel),在这些文件中,业务人员或其他部门可以直接修改它们(添加/删除/更新)。

对于任何重复的过程,主循环中的所有工作流调用都应该使用隔离选项来标记,以防止潜在的机器人崩溃(例如内存不足)。

凭证

不应直接将凭据存储在工作流中,而应从更安全的地方(如本地 windows凭据存储区 或 Orchestrator 资源)加载凭据。您可以通过 GetCredential 活动 在工作流中使用它们。

错误处理

在运行自动化过程时可能会发生两种类型的异常:某种程度上可预测的或完全出乎意料的。基于这种区别,有两种处理异常的方法,要么通过在工作流中自动执行的显式操作,要么通过将问题升级到人工操作员。

异常传播可以通过在TRY/CATCH块中放置易受攻击的代码来控制,在这些块中,情况可以适当地处理。在最高级别,主流程图必须定义广泛的纠正措施,以解决所有一般异常并确保系统完整性。

上下文处理程序为机器人适应各种情况提供了更大的灵活性,它们应该用于实现可供选择的技术、清除或定制用户/日志消息。利用异常的垂直传播机制,通过将处理程序向上移动一些级别,从而避免捕获部分中的重复处理程序,其中处理程序可能涵盖单个位置的所有异常。

应该在异常消息中提供足够的详细信息,让人理解它并采取必要的操作。异常消息和源是必不可少的。异常对象的源属性指示失败活动的名称(在调用的工作流中)。同样,命名是至关重要的,因为错误的命名没有给出崩溃组件的明确指示。

正如你如下看到的那样,选择不对调用的活动改名,使奔溃时输出的异常源提示信息毫无意义。例如 (Invoke Workflow File > Invoke Workflow File > Invoke Workflow File > Type Into 这样的信息并不能准确地告诉你发生了什么情况).

没有提示信息的流程图

代码重用

在开发时,我们通常需要在多个工作流/项目中自动化相同的步骤,因此创建包含小部分正在发生的自动化的工作流并将它们添加到库中应该是一种常见的做法。

没有通用的方法告诉你如何分割任何给定的过程。

然而,业务逻辑与自动化组件的分离是一个很好的原则,它有助于构建一个可以有效重用的代码。

例子

假设流程的部分需要读取客户的信息,然后基于该信息和内部业务规则来更新客户的详细信息

获取客户信息修改客户信息 应该是两个不同的自动化组件,完全不知道任何过程。逻辑(仅在过去12个月的总量大于100 k时才更新客户类型)应与自动化分离。

这两个组件可以在以后使用,分别在同一个项目中使用,或者在不同的项目中使用,具有不同的逻辑。如果需要,可以通过参数将特定的数据发送给这些组件。

不应从 获取客户信息 中调用 修改客户信息 ,因为这使得测试、处理异常和重用变得更加困难。

代码重用例子

推荐:
分别使用 修改信息获取信息 组件。

当操作之间的分离不那么明显时,将现有代码从一个工作流复制到另一个工作流(或从一个项目到另一个项目)也能一个很好地表明您应该为代码构建一个单独的组件(工作流),并在需要时调用它。

可重用组件存储在哪里

将现有代码从库拖放到工作流中比从头开始重新创建代码更容易。处理数据(排序、过滤)或文本(拆分、regex模式)是可以添加到 示例库 中的示例。

请注意,一旦代码被添加到工作流中,它就会变成静态的,所以如果您在库中更新工作流,它将不会反映在现有的活动流程中。

普通(可重用)组件(如应用导航、登录、初始化)更好地分别存储和维护,在 网络共享驱动器 上。从该驱动器,它们可以被不同的机器人,从不同的进程。这种方法最大的优点是,任何在主组件中所做的更改都会立即反映在使用它的所有进程中。

怎样检验自动化程序的质量

  • 模块化:

    • 将关注点与专用工作流分离,允许细粒度开发和测试;在项目之间提取和共享可重用组件或工作流。
  • 可维护性:

    • 良好的结构和发展标准。
  • 可读性:

    • 标准化的程序结构,鼓励明确的发展做法;
    • 工作流文件、活动、参数和变量的有意义名称。
  • 灵活性:

    • 将环境设置存放在外部配置文件中或者 Orchestrator 示例,使在测试和生产环境中运行自动化变得容易。
  • 可靠性:

    • 异常处理和错误报告;
    • 实时执行进度更新。
  • 可扩展:

    • 为新用例的合并做好准备。

官网原文链接

返回目录
UiPath 常见问题及解决办法汇总

更多 UiPath 相关的资讯,请关注公众号:流程自动化机器人教程
由于简书禁止直接在文章中插入公众号二维码,请点击 这里 了解添加该公众号的细节。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容

  • 整幅画感觉都是静静的 适合现在的我的心境 自行车不是太好画呢 两个车轮画了很久 整体两个小时
    大画玲珑阅读 200评论 0 4
  • 如何才能让自己充满魅力呢? 是声音! 希腊哲学家苏格拉底说:“请开口说话,我才能看清你。” 由此可见,语言的魅力!...
    c3f8b8fcf778阅读 447评论 1 4
  • 天气 大雨转小雨 早上九点就开始下雨。 深圳他大爷的怎么又下雨! 我又不能晒被子了。 今天几乎没有出门,在电脑上处...
    西风东来阅读 164评论 0 1
  • 1、感恩父母给予我生命。 2、感恩祖辈将我养育。 3、感恩母亲、祖母为家的巨大付出。 4、感恩亲友们对我一直的照顾...
    朱晓军阅读 217评论 0 1