高級別框架
從通用(和未知流程)框架開始,確保您以一致和結(jié)構(gòu)化的方式處理任何流程吐咳。框架幫助您從高級視圖開始俏站,然后深入了解每個流程的具體細(xì)節(jié)。
機(jī)器人企業(yè)框架模板 建議對重復(fù)過程進(jìn)行靈活的高層概述痊土,并包含本指南中描述的一組良好的實踐肄扎,并且可以很容易地用作使用 UiPath 進(jìn)行 RPA 開發(fā)的堅實起點。該模板構(gòu)建在狀態(tài)機(jī)結(jié)構(gòu)上赁酝。
它是如何運(yùn)作的:
- 機(jī)器人從配置文件和 Orchestrator 資源中加載設(shè)置犯祠,并將它們保存在要跨工作流共享的字典中。
- 機(jī)器人獲取所需的憑據(jù)并登錄到所有應(yīng)用程序中酌呆。
- 如果遇到任何錯誤衡载,則重試幾次,然后成功或中止隙袁。
- 機(jī)器人檢查輸入隊列或其他輸入源以啟動新事務(wù)痰娱。
- 如果沒有(更多的)輸入數(shù)據(jù)可用,則將工作流配置為等待和重試菩收,或者結(jié)束流程梨睁。執(zhí)行用于處理事務(wù)數(shù)據(jù)的UI交互。
- 如果事務(wù)處理成功坛梁,則更新事務(wù)狀態(tài)而姐,機(jī)器人繼續(xù)進(jìn)行下一個事務(wù)。
- 如果遇到任何驗證錯誤划咐,事務(wù)狀態(tài)被更新,機(jī)器人移動到下一個事務(wù)钧萍。
- 如果遇到任何異常褐缠,機(jī)器人會重新嘗試處理事務(wù)幾次(如果配置的話),或者將項目標(biāo)記為失敗并重新啟動风瘦。
-如果配置了郵件队魏,最后則可以發(fā)送一封帶有進(jìn)程狀態(tài)的電子郵件。
用于基于事務(wù)的流程(例如 處理 Excel 文件中的所有發(fā)票 ),沒有通過 Orchestrator 執(zhí)行胡桨,則可以構(gòu)建本地隊列(使用 .net 的 enqueue/ dequeue 方法)官帘。
然后,高級別流程(異常處理昧谊、重試刽虹、恢復(fù))的流程可以很容易地重復(fù)執(zhí)行,這比將整個流程分組在一個 For Each Row 循環(huán)下面更容易呢诬。
所有的 REFrameWork 文件和文檔可以在 這里 找到涌哲。
設(shè)計原則
在較小的工作流中分解流程對于良好的項目設(shè)計至關(guān)重要。 專用工作流允許對組件進(jìn)行獨立測試尚镰,同時通過開發(fā)單獨的文件來鼓勵團(tuán)隊協(xié)作阀圾。
明智地選擇布局類型(流程圖和序列)。通常狗唉,流程的邏輯停留在流程圖中初烘,而導(dǎo)航和數(shù)據(jù)處理則以順序進(jìn)行。
通過在序列中開發(fā)復(fù)雜的邏輯分俯,您最終將得到一個由容器和決策塊組成的迷宮肾筐,非常難以跟蹤和更新。
相反澳迫,流程圖中的UI交互使構(gòu)建和維護(hù)變得更加困難局齿。
項目相關(guān)的文件(例如郵件模板)可以被組織在本地文件夾或者共享磁盤中
注意
如果放置在項目文件夾中,則在部署過程中(以及項目工作流)在 lib/net 45 文件夾中的所有機(jī)器人機(jī)器上復(fù)制它們橄登。
這些文件夾也可以存儲在共享驅(qū)動器上抓歼,所以所有的機(jī)器人都連接到同一個唯一的源。這樣拢锹,業(yè)務(wù)用戶可以完全檢查和維護(hù)與流程相關(guān)的文件谣妻,而不需要 RPA 團(tuán)隊的支持。但是卒稳,決策(共享或本地文件夾)很復(fù)雜蹋半,應(yīng)該考慮到與進(jìn)程和環(huán)境有關(guān)的各個方面:文件的大小、更改的頻率充坑、編輯同一文件的并發(fā)性减江、安全策略等。
源代碼控制
為了方便地管理項目版本控制和共享更多開發(fā)人員的工作捻爷,我們建議使用版本控制系統(tǒng)辈灼。UiPath Studio 是直接與 TFS 和 SVN 集成的。您可以在 這里 找到一個說明連接步驟和功能的教程也榄。
源代碼控制相關(guān)設(shè)置
為了避免在工作流中硬編碼外部設(shè)置(如文件路徑巡莹、URL等),我們建議將它們保存在.config文件(.xlsx、.xml或.json)中降宅,或者作為 Orchestrator 的資源(如果它們經(jīng)常更改)骂远。
一般來說,最終的解決方案應(yīng)該是可擴(kuò)展的腰根,以便在不需要開發(fā)人員干預(yù)的情況下允許輸入數(shù)據(jù)的變化激才。
例如,允許客戶進(jìn)行某種類型的交易的列表唠雕、接收通知的人的電子郵件等應(yīng)該存儲在外部文件中(如excel)贸营,在這些文件中,業(yè)務(wù)人員或其他部門可以直接修改它們(添加/刪除/更新)岩睁。
對于任何重復(fù)的過程钞脂,主循環(huán)中的所有工作流調(diào)用都應(yīng)該使用隔離選項來標(biāo)記,以防止?jié)撛诘臋C(jī)器人崩潰(例如內(nèi)存不足)捕儒。
憑證
不應(yīng)直接將憑據(jù)存儲在工作流中冰啃,而應(yīng)從更安全的地方(如本地 windows憑據(jù)存儲區(qū) 或 Orchestrator 資源)加載憑據(jù)。您可以通過 GetCredential 活動 在工作流中使用它們刘莹。
錯誤處理
在運(yùn)行自動化過程時可能會發(fā)生兩種類型的異常:某種程度上可預(yù)測的或完全出乎意料的阎毅。基于這種區(qū)別点弯,有兩種處理異常的方法扇调,要么通過在工作流中自動執(zhí)行的顯式操作,要么通過將問題升級到人工操作員抢肛。
異常傳播可以通過在TRY/CATCH塊中放置易受攻擊的代碼來控制狼钮,在這些塊中,情況可以適當(dāng)?shù)靥幚砑裥酢T谧罡呒墑e熬芜,主流程圖必須定義廣泛的糾正措施,以解決所有一般異常并確保系統(tǒng)完整性福稳。
上下文處理程序為機(jī)器人適應(yīng)各種情況提供了更大的靈活性涎拉,它們應(yīng)該用于實現(xiàn)可供選擇的技術(shù)、清除或定制用戶/日志消息的圆。利用異常的垂直傳播機(jī)制鼓拧,通過將處理程序向上移動一些級別,從而避免捕獲部分中的重復(fù)處理程序越妈,其中處理程序可能涵蓋單個位置的所有異常毁枯。
應(yīng)該在異常消息中提供足夠的詳細(xì)信息,讓人理解它并采取必要的操作叮称。異常消息和源是必不可少的。異常對象的源屬性指示失敗活動的名稱(在調(diào)用的工作流中)。同樣瓤檐,命名是至關(guān)重要的赂韵,因為錯誤的命名沒有給出崩潰組件的明確指示。
正如你如下看到的那樣挠蛉,選擇不對調(diào)用的活動改名祭示,使奔潰時輸出的異常源提示信息毫無意義。例如 (Invoke Workflow File > Invoke Workflow File > Invoke Workflow File > Type Into 這樣的信息并不能準(zhǔn)確地告訴你發(fā)生了什么情況).
代碼重用
在開發(fā)時谴古,我們通常需要在多個工作流/項目中自動化相同的步驟质涛,因此創(chuàng)建包含小部分正在發(fā)生的自動化的工作流并將它們添加到庫中應(yīng)該是一種常見的做法。
沒有通用的方法告訴你如何分割任何給定的過程掰担。
然而汇陆,業(yè)務(wù)邏輯與自動化組件的分離是一個很好的原則,它有助于構(gòu)建一個可以有效重用的代碼带饱。
例子
假設(shè)流程的部分需要讀取客戶的信息毡代,然后基于該信息和內(nèi)部業(yè)務(wù)規(guī)則來更新客戶的詳細(xì)信息
獲取客戶信息 和 修改客戶信息 應(yīng)該是兩個不同的自動化組件,完全不知道任何過程勺疼。邏輯(僅在過去12個月的總量大于100 k時才更新客戶類型)應(yīng)與自動化分離教寂。
這兩個組件可以在以后使用,分別在同一個項目中使用执庐,或者在不同的項目中使用酪耕,具有不同的邏輯。如果需要轨淌,可以通過參數(shù)將特定的數(shù)據(jù)發(fā)送給這些組件迂烁。
不應(yīng)從 獲取客戶信息 中調(diào)用 修改客戶信息 ,因為這使得測試猿诸、處理異常和重用變得更加困難婚被。
推薦:
分別使用 修改信息 和 獲取信息 組件。
當(dāng)操作之間的分離不那么明顯時梳虽,將現(xiàn)有代碼從一個工作流復(fù)制到另一個工作流(或從一個項目到另一個項目)也能一個很好地表明您應(yīng)該為代碼構(gòu)建一個單獨的組件(工作流)址芯,并在需要時調(diào)用它。
可重用組件存儲在哪里
將現(xiàn)有代碼從庫拖放到工作流中比從頭開始重新創(chuàng)建代碼更容易窜觉。處理數(shù)據(jù)(排序谷炸、過濾)或文本(拆分、regex模式)是可以添加到 示例庫 中的示例禀挫。
請注意旬陡,一旦代碼被添加到工作流中,它就會變成靜態(tài)的语婴,所以如果您在庫中更新工作流描孟,它將不會反映在現(xiàn)有的活動流程中驶睦。
普通(可重用)組件(如應(yīng)用導(dǎo)航、登錄匿醒、初始化)更好地分別存儲和維護(hù)场航,在 網(wǎng)絡(luò)共享驅(qū)動器 上。從該驅(qū)動器廉羔,它們可以被不同的機(jī)器人溉痢,從不同的進(jìn)程。這種方法最大的優(yōu)點是憋他,任何在主組件中所做的更改都會立即反映在使用它的所有進(jìn)程中孩饼。
怎樣檢驗自動化程序的質(zhì)量
-
模塊化:
- 將關(guān)注點與專用工作流分離,允許細(xì)粒度開發(fā)和測試竹挡;在項目之間提取和共享可重用組件或工作流镀娶。
-
可維護(hù)性:
- 良好的結(jié)構(gòu)和發(fā)展標(biāo)準(zhǔn)。
-
可讀性:
- 標(biāo)準(zhǔn)化的程序結(jié)構(gòu)此迅,鼓勵明確的發(fā)展做法汽畴;
- 工作流文件、活動耸序、參數(shù)和變量的有意義名稱忍些。
-
靈活性:
- 將環(huán)境設(shè)置存放在外部配置文件中或者 Orchestrator 示例,使在測試和生產(chǎn)環(huán)境中運(yùn)行自動化變得容易坎怪。
-
可靠性:
- 異常處理和錯誤報告罢坝;
- 實時執(zhí)行進(jìn)度更新。
-
可擴(kuò)展:
- 為新用例的合并做好準(zhǔn)備搅窿。
返回目錄
UiPath 常見問題及解決辦法匯總
更多 UiPath 相關(guān)的資訊嘁酿,請關(guān)注公眾號:流程自動化機(jī)器人教程
由于簡書禁止直接在文章中插入公眾號二維碼,請點擊 這里 了解添加該公眾號的細(xì)節(jié)男应。