04 Uipath判斷文件下載是否完成

前言:

事先申明,此貼適合小白,高手請繞道。

前階段遇到一個業務,即機器人需要把一個報表從指定網站把文件下載下來,讀取文件的內容並做後續操作。其它各部分的功能邏輯都處理完成了,但唯獨文件下載搞不定,遇到要麼是文件還沒開始下載或者下載到中途時就去讀取文件,要麼是已經下載完成了很久,機器人浪費了很多時間。爲這個問題也想了很久,在網絡上也進行查找,沒有找到好的方法,也可能是我搜索的方法不對。在耗死N多腦細胞之後,終於想出了一個處理辦法,在這裏分享給大家使用。

本次操作使用的是谷歌瀏覽器(Chrome,版本是80.0.3987.132(64 位)),Uipath版本是19.4.4。

 

需求:

1、             能夠設定等待的時間,不至於等待太久;

2、             要保證文件能夠下載完成;

 

思路:

通過對下載的文件進行監控,定時去查看文件是否存在,若是已經存在,則進行後續處理,若是不存在,則繼續等待。根據業務需要設置等待的時長。因爲項目中使用到的文件是客戶項目中相對固定的文件,所以這個增加了許多的方便。

 

具體操作步驟:

1、             打開Uipath,並新建流程WaitDownloadFile。

 

                         

2、             拖入一個“選取文件夾”控件,聲明一個變量:strDownloadPath。類型是String。此文件夾用來選取下載文件的目錄,若是對於自己的環境比較邏輯,可以直接在默認值中修改即可,我自己的下載目錄是固定的,所以我把這個註釋了。這樣可以少了一步交互操作。如圖

 

 

3、             拖入一個“賦值”控件,並且聲明一個變量爲iLoop,類型是Int32,這個值是用來作爲循環次數來使用的:

 

 

 

4、             構造欲等待下載完成的文件全路徑。拖入一個“賦值”控件,聲明一個變量爲strDownloadFile,類型是String:

 

 

在我遇到的這個項目中,他們的下載的文件名稱格式是"工單表"+當日的年月日+".xlsx",即如“工單表20200311.xlsx”,“工單表20200301.xlsx”這種,所以我就把等待下載完成的文件設置爲這個。

 

5、             拖入一個“Do While 循環”控件,在控件中再插入一個“路徑存在”的控件,“路徑存在”的位置在“系統”à“文件”à“路徑存在”。先把路徑存在的參數進行配置:

 

 

此處要爲“路徑存在”設置輸出變量“bFileExist”,“路徑存在”可以對文件或者文件夾的存在進行判斷,若是存在則bFileExist會被賦值爲True,否則爲False。

6、             在“路徑存在”下方拖入一個“IF條件”的控件,條件就是bFileExist。

 

對於此控件,作用是若是bFileExist爲True則走左邊,若是爲False則走右邊。

 

7、             因我們在下載文件時沒有必要一直查詢文件是否已經存在,所以我們在文件不存在時,進行延時,又爲了防止延時時間太久,所以一次延時1秒,格式爲:00:00:01

 

 

8、             在“IF條件”控件的後臺,拖入一個“賦值”控件,這裏給iLoop進行增長賦值,若是沒有這一步,循環的次數就不會起作用。如圖:

 

 

9、             對“Do While 循環”控件的條件進行設置,這個也是重中之重。我在此設置的備件是:“bFileExist=False and iLoop < 100”,意思是若文件存在或者循環夠100次就退出,反之就是文件不存在或者還沒循環夠100次繼續循環。如圖

 

 

10、        最後,我們對退出的條件進行輸出,以便知道什麼原因退出,如圖:

 

 

11、        我跑了一下,結果如圖:

 

 

圖中的結果表示,文件沒有存在,循環100次了,即等待了100秒。

結語:

若是大家在操作的過程中,遇到什麼問題,可以在評論區給我留言。 也可以關注我的微信公衆號:IT人的成長

https://img-blog.csdnimg.cn/20200316083301342.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Jpbmp1bnk=,size_16,color_FFFFFF,t_70

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章