close

Kausal Vikash . on LinkedIn: #powerautomate #microsoft #automation  #lowcodenocode #rpa


在上一篇擷取螢幕畫面併存成圖檔的範例中有提到,該流程在執行後是會直接覆蓋掉存檔路徑中,

原本存在以執行當天的日期為檔名的圖片的,並沒有任何的防呆或是檢查!

 

所以有很高的機率會因為不小心按到執行,又讓流程跑完,然後原本要的圖檔就不見了…

(因為新的圖檔給取代掉了)

 

這時候,如果這圖檔非常重要,那麼如果有做備份就馬上找備分中的檔案回來以外,

就真的是沒招了!

 

所以這時候在流程設計之初,就要先想到這一點,並加入一個判斷流程,

讓電腦先確認指定的資料夾路徑(存檔路徑)中,到底有沒有當天的檔案存在,

如果沒有的話才直接存檔!(這點不只針對圖檔,也適用於各種類型的檔案)

 

而讓電腦確認指定的資料夾中有沒有指定檔名的檔案存在,其實是有好幾種方式的,

但這篇的範例主要是針對存檔時,要電腦先去做確認的流程喔。

 

其他的做法會等有機會的時候再來講解。

 

下面就來看看確認檔案是否存在的流程要怎麼製作吧!

 

首先先把"拍攝螢幕截去畫面"動作中設定的存檔路徑複製下來!

 

【讓機器人幫我工作】Power Automate Deskt

 

先在左側動作清單中找到"檔案"項目,

並展開清單後選取並將"如果檔案已存在"動作

【讓機器人幫我工作】Power Automate Deskt

 

然後把這動作拖曳到編輯區中"拍攝螢幕畫面"的上方!

 

【讓機器人幫我工作】Power Automate Deskt

 

 

在跳出的設定視窗中的"檔案路徑"欄位上貼上剛剛複製的路徑後點"儲存"

【讓機器人幫我工作】Power Automate Deskt

 

之後,在編輯區的流程中就會多一個"如果檔案已存在""End"判斷式

"如果檔案已存在""End"中間的區域就是設定判斷式的條件的位置

【讓機器人幫我工作】Power Automate Deskt


判斷式是什麼呢?

 

就是如果滿足了你設定的條件後,你要電腦去做什麼事情。

 

口語化點就是:如果怎樣,就這樣…

 

這部分和"條件"動作清單中的If是一樣的概念。

 

【讓機器人幫我工作】Power Automate Deskt

 

"條件"清單中的動作主要是針對PAD中設定的"變數"去做判斷,

而檔案的"如果檔案已存在"這個動作,單純只針對"檔案"的存在與否去做判斷


 

※雖然"檔案已存在"這個動作名稱是"已存在",但在其設定視窗中,

"如果檔案"後面的下拉清單內,其實是可以切換"存在""不存在"的!

【讓機器人幫我工作】Power Automate Deskt


 

由於這篇還沒有說到"迴圈"(loop),所以這邊就單純的讓機器人在發現檔案已存在時,

直接跳出個通知視窗告知使用者檔案已存在了!

 

所以就到左邊動作區域,展開"訊息方塊"的清單

【讓機器人幫我工作】Power Automate Deskt

 

"顯示訊息"給拖曳到右邊編輯區中,"如果檔案已存在"的下方

【讓機器人幫我工作】Power Automate Deskt

 

然後設定下"顯示訊息"的內容

【讓機器人幫我工作】Power Automate Deskt

 

主要設定"訊息方塊標題""要顯示的訊息"即可。

【讓機器人幫我工作】Power Automate Deskt

 

"訊息方塊圖示"的部分則可視需求調整(預設為"")

【讓機器人幫我工作】Power Automate Deskt

 

設定完成後,點擊"儲存"即可。

【讓機器人幫我工作】Power Automate Deskt

 

這樣就能讓電腦自己先去判斷檔案存不存在了!

【讓機器人幫我工作】Power Automate Deskt

 

到此,目前的流程是下面這樣的:

【讓機器人幫我工作】Power Automate Deskt

 

但是如果只是這樣還是會有問題,因為剛剛的判斷式並不"完整"!!

 

因為如果照上面的流程來說,電腦只是單純地去檢查有沒有檔案

如果有檔案的話,就跳個訊息通知告訴使用者而已。

 

然後電腦會繼續執行下一個動作,也就是"拍攝螢幕擷取畫面",然後擷取畫面並存成檔案。

 

也就是說,在這流程中,如果原本有檔案的話,還是會被取代掉的

 

那也許有人會問:我不是已經加了一個判斷式了嗎?

 

答案是沒錯的。

 

我們上面是加了判斷式,而判斷式也能正常執行的,

只是我們要電腦做判斷的條件是:

"存檔路徑中有沒有檔案,有的話就跳個通知"罷了!

 

也就是說,我們並沒有在判斷式中告訴電腦,

"如果路徑中沒有檔案的時候,它要怎麼做"!!

 

 

也許還會有人問:下面一個動作就是"拍攝螢幕擷取畫面"了啊!?

 

這個答案也是正確的,不過問題就在於這動作的擺放位置上。

 

因為我們並不是把"拍攝螢幕擷取畫面"這個動作放在判斷式內,

而是要電腦判斷完之後才去執行"拍攝螢幕擷取畫面"這個動作,

也就是對於電腦來說,整個判斷式會視為"一個""連貫的動作",每一個步驟都是"一個單獨的動作"

(一個判斷式會對應一個End當作結束)

 

【讓機器人幫我工作】Power Automate Deskt

 

所以遇到判斷式時,電腦會將判斷式中的流程視為"一個動作"

因此電腦會執行完判斷式中的所有動作以後,才會繼續執行下個動作(6)

 

電腦執行順序:12(3~5)6

 

因為我們這個流程相對簡單,所以看不出來12(3~5)6123456的差異

 

所以我們假設下,在第4步是呼叫一個有10個動作的子流程A,那麼執行順序會是什麼呢?

 

其實對這流程來說還是12(3~5)6,但實際上電腦做了12(3A(1~10)5)6

 

這邊也許我的表達不是很好,也有點難理解......

 

不過這邊就先記得:

"遇到判斷式時,電腦是會先把判斷式內的動作都執行完,接著才會執行下個動作"

的原則吧!

 

所以基於上述的原則,就來修改下判斷式吧!

 

首先在判斷式中加入一個Else的動作(在動作區域的條件清單)

【讓機器人幫我工作】Power Automate Deskt

 

拖曳到到右邊編輯區中,"顯示訊息"的下方

 

 

【讓機器人幫我工作】Power Automate Deskt

 

Else是指和判斷式設定的條件相反時的意思。

 

口語化來說就是,如果怎樣,就這樣,不然就那樣

 

所以在這判斷式中,放在這個Else下面的動作是在電腦判斷出檔案"不存在"時才被觸發!

 

所以接下來就是把"拍攝螢幕擷取畫面"這個動作給拉到Else下面:

【讓機器人幫我工作】Power Automate Deskt

 

完成後如下:

【讓機器人幫我工作】Power Automate Deskt

 

先將流程"儲存"之後,來執行兩次看看結果吧!

 

【讓機器人幫我工作】Power Automate Deskt

 

執行第一次:

 

結果正常,電腦直接跑完流程,並產生一個圖檔。

 

【讓機器人幫我工作】Power Automate Deskt

 

 

執行第二次:

 

跳出訊息通知視窗,告知檔案已存在。

 

【讓機器人幫我工作】Power Automate Deskt

 

並且不會取代原本的檔案!

【讓機器人幫我工作】Power Automate Deskt

 

 

如此一來,基本的防呆就完成啦!

 


 

※補充說明

 

判斷式:

基本上就是以前數學學過If x = 1, y = 0,然後怎樣怎樣的概念!

 

只是在電腦這邊還多了ElseElse If

 

Else If是用在多條件的判斷式,但是在簡易的流程中,

其實可以用If判斷式中加入另一個If去做

 

 

 

顯示訊息:

訊息方塊按鈕可以調整成常見的兩個按鈕(確認+取消)或其他。

 

都可以在設定視窗的"訊息方塊按鈕"旁的下拉式按鈕中調整!

【讓機器人幫我工作】Power Automate Deskt

 

預設按鈕也可以變更。

 

如果不想訊息視窗被其他軟體給蓋掉,則可以開啟"訊息方塊一律保持在最上方"

 

【讓機器人幫我工作】Power Automate Deskt

 

如果想要訊息視窗自動消失,也可以在開啟"自動關閉訊息方塊",並設定持續顯示的秒數

【讓機器人幫我工作】Power Automate Deskt

 

 

 


 

arrow
arrow

    PIZZ的挨踢日常 發表在 痞客邦 留言(0) 人氣()