【RPA之家UiPath官方教程】項目組織
項目組織?
在本課程中,我們將專注于組織項目。?我們將學(xué)習(xí)項目布局,分解復(fù)雜流程,重用項目的各個部分,管理版本和處理異常。
受眾:RPA開發(fā)人員
學(xué)習(xí)目標(biāo)
在本課程結(jié)束時,您應(yīng)該能夠:
為每個工作流程選擇合適的項目布局;
將復(fù)雜的自動化項目劃分為可以分別開發(fā)的功能性工作流程;
使用異常處理技術(shù)來構(gòu)建可靠且可擴(kuò)展的項目;
確定跨項目的可重用組件,并構(gòu)建庫以存儲它們以供將來重用;
使用UiPath的版本控制功能可保持開發(fā)工作的可追蹤性和可靠性。
?
關(guān)于本課程
介紹
在本課程中,我們將著重于組織項目的良好案例實踐。?我們將學(xué)習(xí)有關(guān)選擇項目布局,分解復(fù)雜流程,重用項目的各個部分,管理版本以及防止異常的知識。
受眾:RPA開發(fā)人員
課程時間:6小時
完成課程的要求:通過最低80%的分?jǐn)?shù)通過課程測驗
先決條件:
基本編程知識
RPA開發(fā)人員角色課程簡介
變量,數(shù)據(jù)類型和控制流程
數(shù)據(jù)處理課程
Excel和數(shù)據(jù)表課程
UI互動課程
選擇器課程
?
任何UiPath實施都需要遵循明確的原則。
我們的目的是建立以下自動化流程:
可靠(機(jī)器人應(yīng)能按預(yù)期工作,并具有最小的意外錯誤率)
高效(應(yīng)盡可能減少執(zhí)行時間)
可維護(hù)的(工作流應(yīng)該易于理解和調(diào)試)
可擴(kuò)展的(添加新功能應(yīng)該很容易)
?
學(xué)習(xí)目標(biāo)
在本課程結(jié)束時,您將能夠:
1為每個工作流程選擇合適的項目布局;
2將復(fù)雜的自動化項目劃分為可以分別開發(fā)的功能性工作流程;
3使用異常處理技術(shù)來構(gòu)建可靠且可擴(kuò)展的項目;
4確定跨項目的可重用組件,并構(gòu)建庫以存儲它們以供將來重用;
5使用UiPath的版本控制功能可保持開發(fā)工作的可追蹤性和可靠性。
?
注意:本課程是使用UiPath Studio 2019.7創(chuàng)建的。 最新的Community Edition版本中的某些元素可能有所不同。
?
如何選擇最佳的項目布局?
對于自動化的小型過程或較大的自動化項目的一部分,有3種布局選項–序列,流程圖和狀態(tài)機(jī)。
--序列:
什么時候使用?
如果步驟明確,沒有太多條件(例如,UI自動化);
通常,使用序列來嵌套工作流,并通過流程圖或狀態(tài)機(jī)來處理高級邏輯。
?
有什么優(yōu)勢?
易于理解和遵循,具有自上而下的方法;
非常適合簡單的邏輯,例如在互聯(lián)網(wǎng)上搜索商品。
?
缺點是什么?
在同一Sequence中嵌套太多條件會使該過程難以閱讀;
不適合連續(xù)流動。
?
--流程圖:
什么時候使用?
當(dāng)您具有多個條件的復(fù)雜流程時,流程圖至少在視覺上更容易理解和遵循;
當(dāng)您需要一個連續(xù)運(yùn)行或僅在幾種情況下終止的流時。
?
有什么優(yōu)勢?
易于理解,因為它類似于軟件計算中的邏輯圖;
可用于連續(xù)工作流程。
?
缺點是什么?
流程圖只能用作常規(guī)工作流程(序列嵌套在內(nèi)部),不能用于項目的各個部分(嵌套在其他工作流程內(nèi)部)。
?
--狀態(tài)機(jī):
什么時候使用?
首先,讓我們了解什么是狀態(tài)機(jī)。它是一臺抽象機(jī)器,由有限數(shù)量的預(yù)定義狀態(tài)和這些狀態(tài)之間的轉(zhuǎn)換組成。在任何時候,根據(jù)外部輸入和驗證的條件,它只能處于一種狀態(tài)。
可以使用有限數(shù)量的清晰和穩(wěn)定狀態(tài)來使用狀態(tài)機(jī)。您日常生活中的一些例子包括自動售貨機(jī),電梯或交通信號燈。
?
有什么優(yōu)勢?
可用于更復(fù)雜的連續(xù)工作流程;
狀態(tài)之間的轉(zhuǎn)換可以輕松定義并提供靈活性;
可以容納更復(fù)雜且無法通過簡單循環(huán)和If語句捕獲的進(jìn)程;
用狀態(tài)機(jī)覆蓋所有可能的情況/轉(zhuǎn)換會更容易。
?
缺點是什么?
由于它們的復(fù)雜性,需要更長的開發(fā)時間:將流程分為邏輯“狀態(tài)”,弄清楚過渡等。
?
注意:狀態(tài)機(jī)不可過度使用-它們應(yīng)僅定義項目的框架
實際上,有一些基于狀態(tài)機(jī)的模板,這些模板專門用于構(gòu)建大型企業(yè)自動化。最常用的是機(jī)器人企業(yè)框架-我們將在本課程的后面部分中分別介紹兩課。
?
如果您在RPA Developer課程中學(xué)習(xí)了課程1.2-變量,數(shù)據(jù)類型和控制流,那么您已經(jīng)熟悉了序列和流程圖。 現(xiàn)在是時候更多地關(guān)注狀態(tài)機(jī)了。
?
狀態(tài)機(jī)-一個真實的例子
帶恒溫器的空調(diào)的代表是狀態(tài)機(jī)如何工作以及狀態(tài)之間如何轉(zhuǎn)換的一個很好的例子。?如何使用它:
使用“開/關(guān)”按鈕啟動或停止空調(diào)。 啟動后,空調(diào)將進(jìn)入“空閑”狀態(tài)。
在“所需溫度”中寫入所需的溫度。?字段,然后單擊“設(shè)置”。 請注意,工作范圍在15到30度之間,因此任何低于15或高于30的值都將分別轉(zhuǎn)換為15和30。
設(shè)定溫度后,空調(diào)將移至“熱”或“冷”狀態(tài)。?達(dá)到所需溫度后,它將顯示在“當(dāng)前溫度”下,空調(diào)移至“空閑”。
在下面導(dǎo)航以查看此示例中解釋的狀態(tài)機(jī)的概念。
?
1. IDLE,COLD,HEAT是狀態(tài)機(jī)的狀態(tài)。 OFF是狀態(tài)機(jī)的最終狀態(tài); 同樣,在UiPath Studio中,進(jìn)程可以在給定時間處于特定狀態(tài)。 此狀態(tài)是包含要執(zhí)行的活動的狀態(tài)。 如果我們回到示例,在COLD狀態(tài)下,空調(diào)將執(zhí)行冷卻空氣的活動。
2.這些狀態(tài)之間存在轉(zhuǎn)換:
關(guān)閉到空閑:單擊“打開/關(guān)閉”按鈕;
所有狀態(tài)(空閑,冷,熱)都變?yōu)殛P(guān)閉:單擊“打開/關(guān)閉”按鈕;
空閑到冷:所需溫度<當(dāng)前溫度;
空閑到熱:所需溫度>當(dāng)前溫度;
從冷/熱到空閑:所需溫度=當(dāng)前溫度。
3.在任何時候,空調(diào)都處于過渡狀態(tài)或狀態(tài)。
4.空調(diào)過程是連續(xù)的。
?
如何分解一個復(fù)雜的過程?
通過允許對組件進(jìn)行獨(dú)立測試,同時鼓勵團(tuán)隊協(xié)作,在較小的工作流程中打破自動化流程可以確保開發(fā)速度和可靠性。?兩者對于此類舉措的成功都是至關(guān)重要的。 而且,在復(fù)雜的自動化中(就像大多數(shù)企業(yè)項目一樣),問題不在于是否應(yīng)該分解,而在于如何做到。
?
可以采用多種方式劃分工作流,并且至少應(yīng)將3個因素視為分解標(biāo)準(zhǔn):
1正在自動化的應(yīng)用程序;
2特定操作的目的(登錄,處理,使用OCR讀取文檔,填寫模板等);
3每個工作流程的長度。
?
例如,一個復(fù)雜的過程可以分為每個應(yīng)用程序的工作流,對于每個應(yīng)用程序,可以將其分為輸入,處理或輸出。?如果這些工作流程中的任何一個都太長,可以將它們進(jìn)一步拆分,同時還要考慮這樣做的目的。
?
處理數(shù)據(jù)
將項目分成較小的工作流程會影響數(shù)據(jù)的處理方式。由于變量僅在同一工作流程內(nèi)起作用,因此擁有多個工作流程需要使用參數(shù)。
?
您可能知道,參數(shù)與變量非常相似-它們動態(tài)存儲數(shù)據(jù),具有相同的數(shù)據(jù)類型,并且支持相同的方法。主要區(qū)別是“方向”屬性,表示數(shù)據(jù)從/向其傳遞的方向。方向可以是輸入,輸出和輸入/輸出:
in-如果我們想在調(diào)用的工作流程中使用參數(shù)的值;
Out-如果我們要將參數(shù)傳遞到調(diào)用的工作流程之外;
in/Out-如果我們要將變量從父工作流程傳遞到調(diào)用的工作流程,請在調(diào)用的工作流程中對其進(jìn)行修改,然后再將其傳遞回父文件夾。
使用“提取為工作流”選項時,變量將自動轉(zhuǎn)換為參數(shù)。首次調(diào)用工作流以獲取所有可用參數(shù)時,請使用“導(dǎo)入?yún)?shù)”。確保使用“參數(shù)”面板將“參數(shù)”實例化為“變量”的相應(yīng)值。
?
考慮一個調(diào)用的工作流,該工作流從工資總額中減去所有稅款。您將至少需要2個參數(shù):
IN參數(shù)中包含工資總額的變量的值;
OUT將凈工資值傳遞給變量的參數(shù)。
存儲在參數(shù)中的數(shù)據(jù)可以是動態(tài)的??紤]以下2個工作流的示例:
?
A-調(diào)用工作流程B
B-具有列表數(shù)據(jù)類型的IN參數(shù)
?如果工作流程B更新了該列表,它也將在工作流程A中進(jìn)行更新。
?
如何重用項目的一部分?
提取工作流程并在自動化項目中重復(fù)使用它們是使項目保持組織性,可讀性和可持續(xù)性的好習(xí)慣。同時,在某些情況下,可以在不同項目中重用工作流。考慮登錄到SAP的順序。每次自動化項目處理SAP時,都需要相同的順序。
?
通過流程庫可以在單獨(dú)的項目中存儲和重用組件。流程庫是一個包含多個可重用組件的程序包,這些組件由一個或多個充當(dāng)單獨(dú)活動的工作流組成。庫被保存為nupkg文件,然后使用程序包管理器安裝在不同的工作流中。
?
我們?nèi)绾未_定項目的一部分是否可重用?理想情況下,在架構(gòu)師或開發(fā)人員將項目劃分為多個部分之后,她或他將決定可以重用項目的哪個部分。通常,與應(yīng)用程序的圖形交互應(yīng)該是可重用的組件,因為對數(shù)據(jù)的處理不應(yīng)取決于如何獲取數(shù)據(jù)。
?
如何管理同一項目的版本?
源代碼控制系統(tǒng)在大型項目中特別有用,在大型項目中,每個階段都有多個團(tuán)隊和個人參與。?源代碼控制系統(tǒng)允許處于不同團(tuán)隊和位置的用戶訪問相同的資源并在相同的項目領(lǐng)域中工作。 它們還用于對代碼進(jìn)行版本控制以及維護(hù)開發(fā)過程中所做的所有更改的歷史記錄。
?
通過后臺視圖中的“團(tuán)隊”頁面,Studio支持以下源代碼控制系統(tǒng):
Git:
通過Git集成,您可以:
克隆遠(yuǎn)程倉庫
新增項目
提交并推送
將項目復(fù)制到Git
創(chuàng)建和管理分支
使用文件差異選項解決沖突
?
TFS
支持以下版本:
2012年
2013年
2015年
快車2012
快車2013
快車2015
首先,您需要在Studio中設(shè)置TFS。
然后,您可以打開一個項目或?qū)⑿马椖刻砑拥絋FS。
?
SVN
借助SVN集成,您可以:
從SVN打開一個項目
將項目添加到SVN
?
如何預(yù)防和解決異常?
自動化項目通常會遇到中斷干擾項目執(zhí)行的事件。?其中一些在開發(fā)和測試階段已確定,并且已實施處理機(jī)制。
?
考慮一種自動化,其中輸入數(shù)據(jù)來自Web表單,并且應(yīng)用程序嘗試使用姓氏將數(shù)據(jù)與現(xiàn)有客戶端列表進(jìn)行匹配。 但是,如果用戶在拼寫名稱時輸入錯誤,該怎么辦? 自然,該名稱將不會被識別。
?
一個好的項目設(shè)計將包括識別和識別異常的方法,以及僅當(dāng)捕獲異常時才執(zhí)行的操作模式。?這些可以只是簡單地停止執(zhí)行,或者在工作流中自動執(zhí)行明確的動作,甚至可以將問題上報給操作人員。
?
可以通過兩種方式預(yù)測和處理異常:
在活動級別,使用“嘗試/捕獲”塊或“重試作用域”;
在全局級別上,使用全局異常處理程序。
兩者都將在“錯誤和異常處理”課程中進(jìn)行深入介紹。?在這一點上,能夠選擇正確的異常類型非常重要,因為該信息將在開發(fā)的更高級別用于后續(xù)決策。 例外類別為:
--應(yīng)用異常
應(yīng)用程序異常描述了根源于技術(shù)問題的錯誤,例如沒有響應(yīng)的應(yīng)用程序。
考慮一個從員工數(shù)據(jù)庫中提取電話號碼并將其插入財務(wù)應(yīng)用程序的項目。?如果在嘗試進(jìn)行交易時金融應(yīng)用程序凍結(jié),則漫游器找不到應(yīng)在其中插入電話號碼的字段,并最終引發(fā)錯誤。 由于應(yīng)用程序可以解凍,因此僅通過重試事務(wù)即可解決這類問題。
?
在管理應(yīng)用程序異常時,為活動和工作流程制定良好的命名約定非常重要。?這將有助于跟蹤導(dǎo)致異常的活動。
?
--業(yè)務(wù)異常
業(yè)務(wù)異常描述了一個錯誤,該錯誤源于以下事實:自動化項目所依賴的某些數(shù)據(jù)不完整,丟失,超出了設(shè)置范圍(例如,嘗試從ATM中提取的數(shù)據(jù)超出每日限制)或未通過其他數(shù)據(jù)驗證標(biāo)準(zhǔn)(例如包含字母的發(fā)票金額)。
?
考慮一個處理發(fā)票的機(jī)器人,流程所有者設(shè)置了一個業(yè)務(wù)規(guī)則,只有金額低于1 000 $的發(fā)票才能進(jìn)入自動化流程。對于其他應(yīng)用程序,則可以應(yīng)用不同的流程,涉及到人類用戶來處理它們。
?
在這種情況下,重試交易不會產(chǎn)生解決問題的任何機(jī)會,而是應(yīng)通知業(yè)務(wù)用戶有關(guān)待處理的發(fā)票,并將此案例視為業(yè)務(wù)例外-因為這是常規(guī)流程和業(yè)務(wù)流程的例外。驗證由開發(fā)人員在工作流程中明確進(jìn)行。
?
作為推薦的做法,例外中的文本應(yīng)包含足夠的信息,供人類用戶(業(yè)務(wù)用戶或開發(fā)人員)理解所發(fā)生的事情以及需要采取的措施。
?
最佳實踐
讓我們回顧一下針對一個好的項目組織要注意的要點:
1在開始實際開發(fā)之前,對過程進(jìn)行徹底分析,確定需求并計劃解決方案的外觀。
2將流程分為較小的工作流,以更好地理解代碼,獨(dú)立測試和可重用性。這也可能影響效率,因為不同的團(tuán)隊成員可以從事不同(較?。┑墓ぷ髁鞒獭?/p>
3根據(jù)目標(biāo)應(yīng)用程序?qū)㈨椖康墓ぷ髁鞣纸M到不同的文件夾中。
4在整個項目中保持一致的命名約定。
5基于信息方向調(diào)用工作流時,請使用正確的參數(shù)類型(In / Out / InOut)。對于命名,我們建議使用CamelCase,并將參數(shù)的方向作為前綴(in_ / out_ / io_)。
6負(fù)責(zé)任地處理敏感數(shù)據(jù):不應(yīng)將憑據(jù)直接存儲在工作流中,而應(yīng)從本地Windows憑據(jù)存儲或Orchestrator資產(chǎn)等較安全的位置加載,并與“獲取安全憑據(jù)”,“獲取憑據(jù)”和“鍵入安全文本”活動一起使用
7使用“嘗試/捕獲”塊來預(yù)測和處理異常。同時,請記住,僅使用Try / Catch只能識別錯誤,而不能解決錯誤。因此,請確保您開發(fā)了錯誤處理機(jī)制并進(jìn)行了集成。
8在全局和/或不太可能發(fā)生的情況下使用全局異常處理程序(例如,Windows Update彈出窗口)。
9使用庫為項目創(chuàng)建和存儲可重用組件。
10在工作流程中添加注釋,以闡明每個工作流程的目的。
11使用生產(chǎn)日志來獲取有關(guān)關(guān)鍵時刻或需要任何特定數(shù)據(jù)的相關(guān)信息。
?
?
?
?
?
?
?
?