[TOC]
這篇文章主要說明如何脫離官方給出的開發(fā)手冊并且不使用Orchestrator來如何完成UiPath學(xué)院高級認(rèn)證中的第二大題"計(jì)算客戶加密哈希值"(Calculate Client Security Hash)蛉签。
一、題目解析
該題目主要是從ACME網(wǎng)站中,獲取類型為WI5的數(shù)據(jù)的詳細(xì)信息,然后拼接字符串從指定的哈希網(wǎng)站獲取字符串哈希值羊壹,之后在詳情頁面中點(diǎn)擊update work item巷查,在彈出的窗口中更新哈希值及狀態(tài)值即可。
在這個題目中报慕,官方給出了兩個文檔:
- Calculate Client Security Hash_PDD _v1.3.pdf
這個文檔PDD即流程設(shè)計(jì)說明書(Process Design Document)靶剑,其中描述了這個流程將要做的業(yè)務(wù)概要蜻拨、業(yè)務(wù)流轉(zhuǎn)的流程圖、業(yè)務(wù)中的關(guān)鍵步驟序列桩引、規(guī)定流程范圍缎讼、異常處理方式以及
在開發(fā)機(jī)器人之前的條件和要求。本設(shè)計(jì)文件作為基礎(chǔ)
為開發(fā)人員收集機(jī)器人自動化所需的詳細(xì)信息的文檔
業(yè)務(wù)流程坑匠。
- Calculate Client Security Hash_Walkthrough_Short_v1.0.pdf
這個文檔可以理解為開發(fā)手冊血崭,詳細(xì)給出了在開發(fā)過程中所需要做的工作內(nèi)容,其中包括所用到的配置文件厘灼、配置文件參數(shù)說明夹纫、流程開發(fā)中的Activities等內(nèi)容。
二设凹、流程說明
業(yè)務(wù)流程圖如下:
流程步驟簡述:
- 打開瀏覽器舰讹,并進(jìn)入https://acme-test.uipath.com/account/login網(wǎng)站
- 使用用戶名密碼登錄網(wǎng)站
- 在主頁點(diǎn)擊Work Items按鈕,進(jìn)入到Work Items列表闪朱。
- 選擇類型為WI5的數(shù)據(jù)跺涤,并點(diǎn)擊Action中的放大鏡進(jìn)入到詳情頁面。
- 復(fù)制詳情頁面中的信息
- 進(jìn)入到http://www.sha1-online.com/網(wǎng)站监透,將上一步復(fù)制的信息按照"[ClientID]-
[ClientName]-[ClientCountry]"格式進(jìn)行字符串拼接(中間為 "-" ),并填入到網(wǎng)頁中航唆。 - 點(diǎn)擊Hash按鈕獲取加密之后的哈希數(shù)值胀蛮。
- 返回值WorkItem的詳情頁面并點(diǎn)擊Update Work Item。
- 將獲取到的哈希值填入到Comment文本框糯钙,并將New Status修改為Completed粪狼。
- 循環(huán)4-9步驟退腥,將所有Work Item處理完畢。
三再榄、開發(fā)手冊問題
在官方給出的開發(fā)手冊中狡刘,將一些變量或參數(shù)都存儲在了Orchestrator中的Assert中,但是很多朋友并不是很理解Orchestrator及其功能困鸥,新手如果按照官方的開發(fā)手冊來開發(fā)流程的話嗅蔬,開發(fā)難度比較大,也比較難理解疾就。
所以通過這篇文章主要說明如何脫離官方給出的開發(fā)手冊并且不使用Orchestrator來如何完成這道題目澜术。
四、開發(fā)
1. 主模塊劃分
如下圖為主流程部分猬腰,其中只包括了是三個Sequence鸟废,分別用于讀取用戶配置、處理主業(yè)務(wù)邏輯姑荷、流程結(jié)束清理盒延。
- 1.Read Config: 在流程用到了用戶名密碼這樣敏感的數(shù)據(jù),應(yīng)該將這些數(shù)據(jù)單獨(dú)放置在服務(wù)器端或者加密之后的配置文件中鼠冕。這里我們可以將它放置在加密之后的Excel文件中添寺,通過讀取excel來獲取用戶名密碼,也符合題目要求的安全性供鸠。
- 2.Main-Process: 主要用于主業(yè)務(wù)邏輯的使用畦贸,通過調(diào)用其他的XAML腳本文件,達(dá)到方便開發(fā)楞捂、調(diào)試的目的薄坏。
- 3.End Process: 主要完成一些在主業(yè)務(wù)流程結(jié)束之后的收尾工作,如退出系統(tǒng)寨闹、關(guān)閉瀏覽器等動作胶坠。
2. 業(yè)務(wù)模塊劃分
業(yè)務(wù)主模塊流程如下,其中主要包括系統(tǒng)登錄繁堡、表格數(shù)據(jù)獲取并輸出沈善、更新WorkItem。
- LoginSys :使用此模塊實(shí)現(xiàn)系統(tǒng)登錄的自動化椭蹄。
- GetProcessData :獲取表格中的所有數(shù)據(jù)并輸出到文件中
為什么要輸出到Excel文件中闻牡?
解:方便后續(xù)流程的調(diào)試和模塊解耦。將數(shù)據(jù)持久化到某個文件中绳矩,可以方便后續(xù)流程直接使用數(shù)據(jù)罩润,而不需要到網(wǎng)頁中再抓取數(shù)據(jù),浪費(fèi)時間翼馆。
- UpdateWI5 workflow:從上一個模塊中產(chǎn)生的數(shù)據(jù)文件中獲取WorkItem割以,并更新數(shù)據(jù)金度。
3. 獲取數(shù)據(jù)
獲取數(shù)據(jù)部分,主要考察Data Scraping的使用严沥。
如下猜极,在點(diǎn)擊Work Item 之后,便可通過Data Scraping來獲取表中所有數(shù)據(jù)消玄,并輸出DataTable變量跟伏,并將數(shù)據(jù)寫入到Excel文件中,方便后續(xù)流程的調(diào)試及使用莱找。
注意:在使用Data Scraping獲取數(shù)據(jù)之后酬姆,需要在Extract Structured Data的Activiti中設(shè)置最大獲取行數(shù)。如果不設(shè)置奥溺,可能獲取不到所有的表格數(shù)據(jù)辞色。
image
4. 更新數(shù)據(jù)
更新數(shù)據(jù)部分,主要需要考慮的是多個瀏覽器之間的切換浮定。
為了準(zhǔn)確切換至相應(yīng)的瀏覽器窗口相满,需要將Hash網(wǎng)站和Acme網(wǎng)站瀏覽器對象輸出為變量,用戶之后Attach Browser的使用桦卒。
同時立美,按照說明書中的要求,在更新work item過程中若出現(xiàn)錯誤方灾,不應(yīng)該影響之后的操作建蹄,所以建議使用try catch 的Activiti來捕捉錯誤≡3ィ或者可以使用retry scope的Activiti來重試更新洞慎。
流程設(shè)計(jì)如下:
五、總結(jié)及代碼獲取
這篇文章說明如何脫離官方給出的開發(fā)手冊并且不使用Orchestrator來解決開發(fā)中的問題嘿棘,并給出流程開發(fā)及模塊劃分相關(guān)的思路劲腿,方便用戶理解和自己動手開發(fā)流程。
代碼獲取
代碼已打包上傳至RPA小星球鸟妙,點(diǎn)擊下面鏈接獲取焦人。(已經(jīng)加入的可以直接獲取,未加入的可以掃描下面優(yōu)惠券二維碼加入)
https://t.zsxq.com/FIMB2rV
附 關(guān)于RPA知識星球
之前有很多文章和心得發(fā)布在"小專欄"中重父,但是最近由于各種原因花椭,后續(xù)不準(zhǔn)備再發(fā)一些文章上去,全部遷移至知識星球房午。知識星球中內(nèi)容全部由我運(yùn)營个从,會定期輸出與RPA相關(guān)內(nèi)容,包括但不限于:
- RPA實(shí)施方法論
- RPA實(shí)施技術(shù)架構(gòu)
- RPA應(yīng)用場景分析理解
- RPA實(shí)施中填坑之路......
為什么要收費(fèi):
- 建立門檻,過濾掉觀光客嗦锐;
- 逼自己盡可能多地思考和輸出內(nèi)容;
- 通過輸出內(nèi)容沪曙,和一幫志趣相投的朋友們一起奕污,激發(fā)出更多好玩的機(jī)會;
- 利用知識星球連接鐵桿粉絲液走,做出高品質(zhì)社群