雲擴研習社 | 流程設計指南(下)

encooRPA發表於2022-10-08

01.日誌


系統日誌


系統日誌是指機器人、編輯器產生的執行日誌,一般由雲擴研發團隊進行技術支援時使用。

  • 編輯器,參考(需替換使用者):

C:\Users{user}\AppData\Local\Encoo\Log

  • 機器人,在機器人安裝目錄下,參考:

C:\Program Files (x86)\Encoo Robot\Logs


業務日誌


業務日誌是指設計流程時根據業務的實際情況把一些有必要的資訊作為日誌來輸出,用以後續業務核對或者流程中邏輯及流程執行情況的檢查。

日誌級別,共有三個選項:Debug, Info, Error,選擇其中一項代表後續的編輯器、機器人、控制檯能看到的日誌資訊:

  • 選擇 Debug 後,可檢視最詳細的日誌資訊
  • 選擇 Info 後,可檢視 Info 和 Error 等級的日誌資訊
  • 選擇 Error 後,將只輸出 Error 日誌


如何定義日誌級別


流程的最開始建議呼叫【設定日誌級別】元件,透過輸入引數【日誌級別】控制流程輸出的日誌資訊,一般情況下,針對RPA開發者建議使用Debug級別。針對流程使用者建議使用Info或Error級別。

那麼什麼情況下應該寫業務日誌?
正常的業務記錄日誌建議使用Info,針對某些已知的問題(不需要丟擲錯誤),例如沒有資料時下載按鈕不可見,可以寫入日誌,以方便後續業務核對。

異常的錯誤建議使用Error,針對某些未知的錯誤,例如Catches中的異常,可以把異常日誌

exception.Message+exception.StackTrace進行輸出。

日誌輸出位置


編輯器日誌


方法1:流程執行後輸出視窗可見日誌,可根據介面上的錯誤、資訊、除錯進行篩選

方法2: 開始 - 設定 - 專案,勾選【儲存執行、除錯日誌】,開啟目錄下的日誌資料夾

機器人日誌


開啟流程庫 - 流程包 - 日誌

點選日誌開啟資料夾:


  • job-xxx.log:記錄元件執行日誌
  • job-xxx-businesslog.log:記錄業務日誌

控制檯日誌


開啟控制檯-RPA中心-執行記錄,檢視日誌,也可以在此頁面的日誌級別中篩選對應的級別,例如一般會篩選錯誤級別的日誌,以方便檢視流程報錯情況。

02.通知


業務通知


一般情況下流程執行成功、失敗、中間需要人工介入等情況,建議進行通知。

業務通知的方式有簡訊、郵件、釘釘、企業微信。選擇什麼樣的通知方式取決於使用者群體的使用習慣:

1)簡訊方式,目前較多用於銀行和政府,相對比較正式,實時性強,而且即使在沒有流量的時候依然可以順利接收。

2)郵件方式,使用比較廣泛,可以傳送/抄送給不同的使用者,還可攜帶附件,可以很好進行追溯。

3)釘釘方式,需要企業中使用釘釘作為溝通工具,實時性強,一般作為通知來使用,比如流程需要人工介入,需要及時在釘釘中進行反饋。或者流程執行成功或者失敗,也可以及時通知到使用者。

4)企業微信方式,需要企業中使用企業微信作為溝通工具,說明可參考釘釘方式。

通知方式


簡訊通知


簡訊通知主要是兩種方式:

第一種是阿里或者其他平臺提供的簡訊平臺,直接呼叫相關的API介面即可發簡訊。

第二種是需要搭建一個簡訊平臺服務,然後根據平臺的介面去呼叫傳送簡訊。


郵件通知


郵件通知需要配置郵件傳送方的伺服器、代理、埠、密碼、地址,還需要配置接收方的郵箱、內容、附件。

由於郵件傳送伺服器或者接收方有可能不穩定,建議放入重試元件中,可以多重試幾次,降低失敗率。

釘釘/企業微信


安裝訊息推送元件

透過元件市場搜尋【訊息推送】並進行安裝


重新載入專案後,在編輯器元件庫訊息推送中檢視【釘釘訊息推送】和【企業微信訊息推送】


釘釘訊息推送


簡單來說,如果只需要進行訊息推送,首先新建一個釘釘群機器人,配置關鍵詞,再把WebHook複製到元件,文字里需要包含機器人關鍵詞,這樣就可以把對應的文字推送給釘釘群。


企業微信訊息推送


與釘釘訊息推送類似,企業微信也需要先新建一個群機器人,再把WebHook複製到元件,這樣就可以把對應的文字推送給企業微信群。


03.錯誤處理


在不寫Try Catch 的情況下,元件異常會直接中斷流程(除非勾選了失敗繼續),Studio會在輸出框列印日誌,Robot會對整個螢幕截圖,記錄日誌並中斷流程。

是否應該全域性Try Catch
需要根據實際情況使用Try Catch,使用全域性Try Catch代表需要捕獲整體流程的錯誤:
Try中放入整體流程,若Try中出現異常,則會進入Catch(可以多個Catch 同時存在),在此可以列印日誌並通知提示使用者出錯了,列印訊息可參考:exception.Message+exception.StackTrace

Finally可選,若需要可在Finally中釋放資源
單獨子流程應該Catch哪些exception, 應該丟擲哪些exception

  • 資料操作中,迴圈錄入資料的模組中,如果資料之間是相互獨立的,所以希望出現異常也繼續執行流程,建議使用Try Catch元件用以捕獲因異常資料導致的錯誤,並且將異常資料進行對應處理(通常會通知使用者該資料有異常),同時將異常詳情寫入業務日誌中。

  • 頁面操作中,最常見的情況是頁面沒有按預期跳轉(未點選到或者網頁開小差未響應),接下來的操作會因為未匹配到元素或者等待元素超時而丟擲異常中斷流程。這時候我們不希望中斷流程,可以在Catch/Finally中設定執行緒休眠30秒,再重新重新整理頁面。


  • 關閉可能出現的彈出窗,例如Chrome未正常關閉,下次開啟時會有提示恢復頁面彈出框,我們希望關閉這個頁面。但是這個彈窗並不是一定出現,我們會嘗試獲取這個元素並點選關閉,這時候需要在外層套一個Try Catch防止拋異常(如彈窗未出現獲取元素或點選元素會拋異常),這種情況也可以把元件設定成失敗繼續。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015058/viewspace-2917227/,如需轉載,請註明出處,否則將追究法律責任。

相關文章