草庐IT

【前沿技术RPA】 一文了解UiPath的代码审查工具Workflow Analyzer

会敲键盘的肘子 2023-07-15 原文

🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。
🐬个人主页:会敲键盘的肘子
🐰系列专栏:UiPath
🦀专栏简介:UiPath在传统的RPA(Robotic process automation)的基础上,增加了See(AI通过计算机视觉阅读用户的计算机屏幕)和Think(通过机器学习来发现平台能够为用户构建什么自动化流程)从而不断帮助用户自动化构建流程,而不仅仅是用户自主发现,自主构建。并且在构建的过程当中,做到了Low-code甚至是No-code的程度,让每一位员工都可以自主使用。
🐶座右铭:总有一天你所坚持的会反过来拥抱你。


🌈写在前面:

Workflow Analyzer使用配置的规则集检查项目或工作流是否存在不一致而不执行项目。它记录在规则操作(错误、警告、信息或详细)下的Error List面板中找到的错误。这些规则基于UiPath Automation最佳实践。


👉本文关键字:RPA、UiPath、Low-code、No-code、Workflow Analyzer、.Net

文章目录

1️⃣ 背景

♈ 什么是RPA

RPA(Robotic process automation) 代表机器人过程自动化

它是一种软件程序,可在与计算机应用程序交互时模仿人类行为并实现重复的、基于规则的流程的自动化。

♉ 什么是UiPath

UiPath 是一种机器人流程自动化工具,用于自动化枯燥和重复的任务。它由罗马尼亚企业家 Daniel Dines 和 Marius Trica 于 2005 年创立。它还消除了自动化无聊任务的人工干预,并为所有活动提供了拖放功能,它是最简单的 RPA 工具。

♊ 为什么使用UiPath

UiPath在传统的RPA的基础上,增加了See(AI通过计算机视觉阅读用户的计算机屏幕)和Think(通过机器学习来发现平台能够为用户构建什么自动化流程)从而不断帮助用户自动化构建流程,而不仅仅是用户自主发现,自主构建。并且在构建的过程当中,做到了Low-code甚至是No-code的程度,让每一位员工都可以自主使用。

♋ 环境

  • UiPath Studio Community 2022.4.3

  • Windows 10

  • .Net

♌ 本文收获

  • 解释什么是Workflow Analyzer及其工作原理。

  • 描述Workflow Analyzer规则类别和组件。

  • 了解如何导出分析结果。

  • 执行项目分析,以检查验证错误以及工作流分析器中设置为规则的任何质量和可靠性标准。

  • 使用“Error List”面板查找工作流中的错误,并使用说明和其他资源来解决这些错误。

  • 编辑工作流分析器规则。

  • 运行工作流/项目分析以识别和解决错误和警告。

  • 根据项目要求查找并编辑工作流分析器规则。

  • 找到并运行UiPath Studio命令行。

  • 如何使用Workflow Analyzer为自动化项目构建自定义规则和实施策略。

2️⃣ 介绍 Workflow Analyzer

♈ What

Workflow Analyzer是一个静态代码分析器,可确保您的项目符合高质量和可靠性标准。

触发时,Workflow Analyzer使用配置的规则集检查项目或工作流是否存在不一致而不执行项目。它记录在规则操作(错误、警告、信息或详细)下的“Error List”面板中找到的错误。这些规则基于UiPath Automation最佳实践。

使用工作流分析器,您可以:

  • 编辑、禁用和启用Studio中的规则。

  • 在文件或项目级别运行验证或验证和分析。

  • Error List面板中管理错误和警告。

  • 使用UiPath.Activities.Api包生成自定义规则。

  • 将工作流分析与CI/CD管道配置中的预构建和/或自定义规则集成。

♉ Why

Workflow Analyzer在项目开发中起着核心作用。Workflow Analyzer是一种工具,用于确保您的项目遵循最佳实践,从而确保更高的质量、可靠性和可读性。还用于使用基于文件的治理和UiPath Automation Ops强制实施治理策略。

♊ How

通过单击“设计”功能区选项卡中的“分析文件”下拉菜单,可以访问“工作流分析器”选项。运行工作流分析需要两个步骤。Analyzer首先运行工作流验证(检查编译错误),只有在通过后,它才分析(检查是否违反定义的工作流分析器规则)工作流。

Workflow Analyzer基于规则工作,每个规则都有一个基于其关键性的默认操作级别。每个规则的操作级别可以设置为error、warning、info或verbose。如果工作流分析器在分析过程中遇到错误级别漏洞,可以将其配置为阻止发布或运行流程。

Workflow Analyzer可以通过两种方式实施:

⭐ 运行前强制分析器

此选项在运行或调试工作流文件之前运行工作流分析器,并使用错误操作检查所有规则。仅当未发现错误时,它才允许执行工作流。

⭐ 发布前强制分析器

此选项在发布工作流文件或项目之前运行工作流分析器。它检查所有已启用的规则,无论其操作如何,并且仅在操作Error没有违反规则时才允许发布。

要启用这些选项之一,请访问“主页”>“设置”>“设计”。

3️⃣ 规则类别

在分析阶段,将根据适用于Studio的一组预定义规则检查项目。目前,有八个规则类别:

♈ 命名规则

此类别中的规则在其ID中包含NMG代码。此类别检查文件或项目是否存在与命名相关的任何不一致。

以下是规则列表:

♉ 设计最佳实践

此类别中的规则在其ID中包含DBP代码。此类别指的是确保您的项目符合一组常规最佳实践的要求。

以下是规则列表:

♊ 项目剖析规则

此类别中的规则在其ID中包含ANA代码。此类别中的规则确保您的项目符合剖析学方面的一般要求。

以下是规则列表:

♋ 可读性和可维护性

此类别中的规则在其规则ID中包含MRD代码。此类别中规则要求项目易于理解,以确保可维护性。

以下是规则列表:

♌ 去除不使用的变量或依赖

此类别中的规则在其ID中包含USG代码。此类别中规则指的是确保实际使用项目中定义的元素的要求。

以下是规则列表:

♍ 性能和可重用性

此类别中的规则在其ID中包含PRR代码。此类别中规则检查文件或项目是否存在与性能和重用性相关的任何不一致。

以下是规则列表:

♎ 可靠性

此类别中的规则在其ID中包含REL代码。此类别中规则检查文件或项目是否存在与可靠性相关的任何不一致。

以下是规则列表:

♏ 安全性

此类规则的ID中包含SEC代码。此类规则检查文件或项目是否存在与安全相关的任何不一致。

以下是规则列表:

此外,某些活动包(如Excel、Mail、Testing和UI Automation)将带有自己的工作流分析器规则。当您的工作流使用这些活动包时,将自动添加这些规则。

4️⃣ 规则组成

每个规则都有一个ID、名称、描述、建议、范围和默认操作。某些规则具有可编辑属性。

让我们快速了解一下规则的每个组成部分。

♈ 规则组成

⭐ ID

包含原点、类别和编号。

⭐ 建议

包含有关如何改进工作流的建议,以及指向此规则的文档页的链接。

⭐ 名称

这是规则名称。在本例中,它是多个流程图层。

⭐ 范围

指规则适用的级别。在“活动”级别(如“活动名称默认值”)、工作流级别(如未使用的变量)或项目级别(如不使用的依赖项)强制执行规则。

⭐ 默认操作

规则有许多操作,可以设置为“错误”(在“错误列表”面板中生成错误)、“警告”(在错误列表面板中生成警告)、“信息”(在出错列表中生成消息)、“详细”(创建大型日志文件)。

⭐ 可编辑属性

某些规则具有可以修改的属性,例如更改多个流程图层的层计数、更改变量命名约定的Regex或更改变量名称允许的最大字符数。

请注意,如果您已更改任何默认参数并希望恢复,请右键单击所选规则并选择“重置为默认值”选项。

♉ 导出Workflow Analyzer结果

您可以配置Studio将每个工作流分析的结果导出到项目文件夹。Studio Backstage View > Settings > Design并启用导出分析器结果选项。

启用此选项后,每个工作流分析的结果将以JSON格式保存在\.local\.analysis\ 项目文件夹的子文件夹。该文件将包含有关每个已启用规则的以下信息:

  • 规则ID

  • 规则名称

  • 参数

  • 严重程度

  • 错误说明

注意:.local文件夹是隐藏的。您可以从Windows文件资源管理器设置中查看隐藏的项目。

5️⃣ 进阶

现在让我们实践,以更好地了解如何在Studio中使用Workflow Analyzer。

♈ 命令行支持

UiPath.Studio.Command行。exe命令行用户界面包含一组参数,用于根据特定规则检查文件或项目,即使在CI/CD管道配置中也是如此。

UiPath.Studio.Command行。exe在安装文件夹中可用:

  • 对于Windows Installer(.msi)版本的Studio,默认路径为C:\Program Files(x86)\UiPath\Studio\

  • 对于以用户模式(.exe)安装的Studio,默认路径为%LocalAppData%\UiPath\[Studio_version]\

访问下面的文档链接以了解有关使用命令行运行工作流分析的更多信息。

♉ 生成自定义规则

工作流分析器以其现成的形式提供了一套广泛的规则。但是,如果预定义规则未涵盖您团队的需求,您可以选择构建自定义规则。

要构建自定义规则,需要UiPath.Activities。来自官方源的Api包。与自定义活动一样,自定义规则是在IDE中构建的。它们可以在全局或项目级别集成到Studio中。

要开始,请访问关于构建自定义规则的UiPath Studio指南页面,并按照示例构建第一个规则。

♊ Governance

Governance在确保Studio用户遵守开发标准并通过执行策略遵守某些规则方面发挥着重要作用。治理的主要功能之一包括使用WorkflowAnalyzer规则来强制执行策略。

示例:通过在工作流分析器中配置App/URL限制规则,可以确定允许哪些应用程序和URL用户自动执行。

作为治理策略的一部分,组织可以使用以下两种方式之一,以集中的方式在所有项目中实施与其需求相关的自定义规则:

  • UiPath Automation Ops:自动化云中提供的基于web的应用程序,用于创建和部署治理策略。

  • File-based Governance:创建一个JSON策略文件,并在本地、外部或通过Orchestrator部署该文件。

6️⃣ 参考资料

Workflow Analyzer

Building Custom Rules


⭐写在结尾:

文章中出现的任何错误请大家批评指出,一定及时修改。

希望写在这里的小伙伴能给个三连支持

有关【前沿技术RPA】 一文了解UiPath的代码审查工具Workflow Analyzer的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  3. ruby-on-rails - 浏览 Ruby 源代码 - 2

    我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru

  4. ruby - 模块嵌套代码风格偏好 - 2

    我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的

  5. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  6. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

  7. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  8. 程序员如何提高代码能力? - 2

    前言作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以程序员在程序开发过程中的代码能力也是根据平时开发中的业务实践来积累和提升的。提高代码能力核心要素程序员要想提高自身代码能力,尤其是新晋程序员的代码能力有很大的提升空间的时候,需要针对性的去提高自己的代码能力。提高代码能力其实有几个比较关键的点,只要把握住这些方面,就能很好的、快速的提高自己的一部分代码能力。1、多去阅读开源项目,如有机会可以亲自参与开源

  9. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  10. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

随机推荐