【前沿技术RPA】 一文了解UiPath 机器人企业框架 (REFramework)
🐋作者簡介:博主是一位.Net開發者,同時也是RPA和低代碼平臺的踐行者。
🐬個人主頁:會敲鍵盤的肘子
🐰系列專欄:UiPath
🦀專欄簡介:UiPath在傳統的RPA(Robotic process automation)的基礎上,增加了See(AI通過計算機視覺閱讀用戶的計算機屏幕)和Think(通過機器學習來發現平臺能夠為用戶構建什么自動化流程)從而不斷幫助用戶自動化構建流程,而不僅僅是用戶自主發現,自主構建。并且在構建的過程當中,做到了Low-code甚至是No-code的程度,讓每一位員工都可以自主使用。
🐶座右銘:總有一天你所堅持的會反過來擁抱你。
🌈寫在前面:
本博文主要介紹 UiPath 機器人企業框架 (REFramework)。我們將討論事務處理、調度程序和執行程序的概念,還會簡要介紹 REFramework 可以完成的任務。
👉本文關鍵字:RPA、UiPath、Low-code、No-code、機器人企業框架、REFramework、.Net
文章目錄
- 1?? 背景
- ? 什么是RPA
- ? 什么是UiPath
- ? 為什么使用UiPath
- ? 環境
- 2?? 事務處理
- ? 定義
- ? 線性
- ? 迭代
- ? 事務性
- ? 適合使用事務流程的業務場景
- 3?? REFramework
- ? 定義
- ? 初始狀態
- ? 獲取事務狀態
- ? 流程事務狀態
- ? 結束流程狀態
- 4?? REFramework 的功能
- ? 設置
- ? 日志記錄
- ? 業務異常和應用程序異常
- 5?? 調度程序和執行程序
- ? 調度程序
- ? 執行程序
- 6?? 調度程序和 REFramework 執行程序演示
- ? 創建REFramework項目
- ? Initialization
- ? Get Transaction Data
- ? Process Transaction
- ? End Process
- ? 方法
- 7?? 參考資料
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
2?? 事務處理
? 定義
事務是指對數據進行處理所需要的最小(原子)數據量以及必要的步驟,其目的是為了完成業務流程的一個部分。從郵箱中讀取一封電子郵件,然后從電子郵件中提取數據的流程就是一個典型事務示例。
我們把事務數據稱為原子數據是因為一旦完成數據處理,即可假設在繼續處理業務流程時不再需要這些數據。
考慮到業務流程的步驟及其重復執行方式,我們可以將業務流程分為以下三個類別:
? 線性
流程中的步驟僅執行一次,如果需要處理不同的數據,則需要再次執行自動化。例如,回到在本章簡介部分介紹的電子郵件示例,當收到新電子郵件時,系統需要再次執行自動化才能進行處理。
線性流程通常很簡單,而且很容易實施,但不太適合需要使用不同數據重復執行步驟的情況。
? 迭代
流程中的步驟可以執行多次,但每次使用不同的數據項目。例如,自動化可以檢索多封電子郵件并迭代執行相同的步驟,而不是每執行一次僅讀取一封電子郵件。
這種流程可以通過簡單的循環實現,但缺點是,如果在處理一個項目時出現問題,整個流程就會中斷,因此,其他項目將無法得到處理。
? 事務性
與迭代流程相似,事務性流程的步驟也會使用不同的數據項目來重復執行多次。但是,自動化的設計使每個可重復部分得到獨立處理。
這些可重復的部分稱為事務。事務相互保持獨立,因為它們不會共享任何數據,也沒有特定的處理順序。
您可以將這三類流程看作自動化項目逐步走向成熟的各個階段,從簡單的線性任務開始,經過反復改進,最后演變為事務性方法。
不過,凡事沒有絕對規則,我們要根據流程的特征(例如,要處理的數據以及重復的頻率)和其他相關要求(例如,易用性和穩定性)來選擇合適的類別。
? 適合使用事務流程的業務場景
- 某個文件夾中有多張發票,您需要從發票中讀取數據,并將數據輸入另一個系統。在本例中,我們可以將每張發票視為一個事務,因為它們都需要按照重復的流程進行處理(即提取數據并輸入其他位置)。
- 某個電子表格中包含人員及其電子郵件地址的列表,您需要向其中每位人員發送一封電子郵件以及一條個性化消息。對于每位人員來說,此流程中的步驟(即從電子表格獲取數據,創建個性化消息和發送電子郵件)都是相同的,因此,我們可以將此電子表格中的每一行視為一個事務。
- 在尋找新公寓時,我們可以設立一些條件,然后使用機器人進行搜索。對于每個搜索結果,機器人會提取有關公寓的信息,并將數據插入電子表格中。在本例中,每間公寓的詳細信息頁面就構成了一個事務。
3?? REFramework
? 定義
一般來說,框架就是幫助您設計(自動化)流程的模板。作為框架,至少要提供一種存儲、讀取和便于修改項目配置數據的方法,還要提供強大的異常處理方案,以及關于所有異常和相關事務信息的事件記錄。
REFramework 作為狀態機實現,這是一種工作流,具有兩個非常有用的功能:
- 其一是狀態,它可以根據指定的輸入,定義要執行的操作。
- 其二是轉移,它可以根據狀態本身的結果,在狀態之間切換執行。
您可以參考項目組織博文中的狀態機。其中介紹了一個典型的例子,即空調:
- 當空調處于關閉狀態時,只需按下開/關按鈕,它就會切換到空閑狀態;
- 在空閑狀態下,如果用戶輸入的溫度低于當前溫度,它就會切換到加熱狀態;如果高于當前溫度,它就會切換到致冷狀態。一旦達到需要的溫度,它又會回到空閑狀態;
- 在空閑狀態下,如果按下開/關按鈕,它可以切換到關閉狀態;
- 觸發這些狀態轉換的所有條件都屬于轉移。
基于類似的想法,REFramework 包括 4 種主要狀態。
? 初始狀態
這是流程啟動時的狀態。我們可以將其視為一種操作。在此操作中,流程會初始化設置并執行應用程序檢查,從而確保滿足啟動流程的所有先決條件。
? 獲取事務狀態
獲取下一個事務項目。它可能是隊列項目,也可能是集合中的任何項目。
默認情況下,事務項目是隊列項目,但為了滿足特定的需求,您可以輕松更改其類型。對于這種狀態,開發者需要設置沒有項目需要處理時的退出條件。
? 流程事務狀態
通過上一個步驟獲取事務項目后,在各個應用程序中執行操作/應用邏輯。完成事務項目處理后,流程將繼續處理下一個可用的事務項目。
? 結束流程狀態
流程結束(在自動化期間打開的應用程序應正常關閉)。
為了便于理解如何使用 REFramework,下面我們來介紹一個場景:
某個電子表格中包含人員及其電子郵件地址的列表,您需要基于模板向其中每位人員發送一封電子郵件以及一條個性化消息。
4?? REFramework 的功能
? 設置
在很多流程中,通常都會使用在初始化階段讀取的某些設置和配置值。設置的示例包括用于訪問 Web 應用程序的 URL、Orchestrator 隊列名稱和默認記錄消息。
REFramework 先從配置文件 (Config.xlsx) 讀取這些數據,然后將其存儲在可在不同狀態之間共享的字典對象 (Config) 中,從而實現數據跟蹤。它提供了一種簡單方法,通過更改配置文件中的值(而不是直接修改工作流)即可維護項目。
? 日志記錄
REFramework 的另一個強大功能是內置記錄機制。組成框架的大多數工作流都使用日志消息活動。這些活動會輸出在基于每個執行步驟發生情況的詳細信息上。
這種機制不僅可用于查找問題,幫助您完成調試流程,還可用于創建有關流程執行(例如,每天處理了多少張發票,發生了多少次故障和引發故障的主要原因)以及流程本身(例如,一個月內處理的所有報告的匯總值)的可視化內容和報告。
? 業務異常和應用程序異常
在執行過程中,大多數流程都可能出現與正常執行流程相悖的異常情況,您必須解決問題才能實現更可靠的自動化。
例如,假設某個流程使用了幾個 Web 應用程序,但 Web 瀏覽器在某個點會停止響應。如果某個活動(比如說點擊)嘗試與停止響應的應用程序交互,則可能會失敗并返回異常。經過設計,REFramework 會嘗試再次處理事務(即重試)或跳過該事務,從而實現從異常中恢復。
如果重新啟動應用程序可以解決問題,框架會自動完成操作,并且會再次嘗試處理同一事務。這些異常稱為應用程序異常。
如果問題與數據本身或業務的基本要求相關(例如,不處理價值超過特定金額的發票),則框架會跳過該事務,并繼續處理下一個事務。這些異常稱為業務規則異常。
5?? 調度程序和執行程序
雖然企業框架可以使用不同類型的數據源,但是企業框架結合了一種特殊的數據源:Orchestrator Queue,也就是隊列結構。當使用隊列時,可以定義項目的優先級和截止期來追蹤重試或失敗的項目。使用隊列也啟用了名為“調度程序和執行程序”的執行模式。該模式將流程分為兩個主要階段:調度要處理的項目并將其添加到隊列中,然后從隊列中檢索項目并使用該項目執行流程。流程的第二部分通常使用 REFramework 構建。
? 調度程序
調度程序是用于將事務項目推送到 Orchestrator 隊列的流程。它從一個或多個來源提取數據,并使用這些數據來創建將由執行程序機器人處理的隊列項目。
系統將信息推送到一個或多個隊列,從而讓調度程序為隊列項目中存儲的所有數據使用通用格式。
使用調度程序模式的主要優點是,您可以在多個機器人之間拆分項目的處理。
? 執行程序
執行程序是用于從 Orchestrator 隊列中拉取事務項目,并根據公司需求處理這些項目的流程。它每次處理一個隊列項目。
每個處理的項目都有錯誤處理和重試機制。
執行程序的主要優點是可擴展性(多個執行程序可以與單個隊列一起使用)。
我們仍使用前述同一場景,某個電子表格中包含人員及其電子郵件地址的列表。您需要基于模板向其中每位人員發送一封電子郵件以及一條個性化消息。
我們可以通過以下方式使用“調度程序和執行程序”模式:
調度程序和執行程序模型的優點:
- 流程分離更明確(調度程序和執行程序之間)
- 架構層與流程層的分離和區分更明確
- 更完善的錯誤處理和重試機制
- 可跨多臺計算機運行流程(可用性)
- 在項目創建的組件內提供更好的可重用性
- 改進了內置的配置和 Orchestrator 集成
- 輕松調整和部署以前未使用 REFramework 創建的工作流,從而使用 REFramework 和調度程序/執行程序模型
6?? 調度程序和 REFramework 執行程序演示
? 創建REFramework項目
首先,我們用Templates中的REFramework創建一個項目,如下圖所示。
Main.xaml 已打開,其中顯示有一個序列。
在Main文件中我們可以看到上述提到的4個狀態。
? Initialization
打開Initialization狀態機,我們可以看到讀取了Config文件中的Settings和Constants頁的數據,通過字典類型緩存起來。
在 InitAllSettings 工作流中,您要加載與應用程序或流相關的所有設置和數據。在此狀態下使用的文件之一是 Config 文件,它位于項目的“數據”文件夾中。
其中包含有關設置、常量和資產的各種信息。根據需要,這些信息可用于處理數據和配置 REFramework,在“REFramework 深入探索”課程中可以了解有關 Config 文件的詳細信息。
? Get Transaction Data
? Process Transaction
? End Process
? 方法
1. 調度程序:-從 Excel 文件獲取條目,并在 Orchestrator 中將其添加為隊列項目。
首先,我們創建了一個序列項目,然后添加了“Try Catch 異常處理”活動。在“嘗試”塊中:
- 我們使用“讀取范圍”讀取 Excel 文件中的前 10 行(A1:C11),并將其存儲在新建的 DataTable 變量中;
- 我們使用“遍歷每一行”來循環遍歷的 DataTable 變量中行,并使用“添加隊列項目”活動將其添加到隊列中。
- 我們使用“日志消息”活動來記錄已成功執行調度流程的消息。
2. 執行程序- 從隊列中獲取并處理項目(事務)
a. 在初始狀態下:
- 調用 InitAllSettings 工作流,以初始化使用的應用程序和流程的所有設置和數據。在這個部分,系統將讀取“數據”文件夾中 Config.xlsx 文件的設置、常量和資產;
- 調用 InitAllApps 工作流,以打開應用并檢查其狀態、憑據等;
- 調用 KillAllProcesses 工作流,以保留使用的應用程序的單個實例。
任何系統錯誤都會讓流程進入結束流程狀態。
b. 在獲取事務數據狀態下:
- 在序列中,使用 “should stop” 活動來驗證 Orchestrator 是否發送了停止信號。
- 如果沒有, 則調用獲取事務數據工作流,該工作流使用獲取隊列項目活動來從 Orchestrator 獲取事務信息。
如果沒有要讀取的數據,它會進入結束流程狀態。
c. 在流程事務狀態下:
-
流程是一個使用“嘗試捕獲”活動集來捕獲系統異常和業務異常的序列。
-
在“嘗試”塊中,調用“處理事務”工作流,它具有一個簡單的流程,用于:
- 附加到 UiDemo 應用程序
- 3 個“輸入信息”活動用于填寫“兌現”、“銀行內求償支票”和“非銀行內求償支票”字段;
- 'Click“接受”按鈕。
d. 在結束流程狀態下,使用“關閉應用程序”。
7?? 參考資料
GitHub UiPath REFramework
?寫在結尾:
文章中出現的任何錯誤請大家批評指出,一定及時修改。
希望寫在這里的小伙伴能給個三連支持!
總結
以上是生活随笔為你收集整理的【前沿技术RPA】 一文了解UiPath 机器人企业框架 (REFramework)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel 筛选重复值和删除重复值的异同
- 下一篇: JVM垃圾收集器