內文主要是分享如何使用 Power Automate 自動化根據 OneDrive for Business 內的 Excel 資料發送即將到期的警示給負責人。
概述
在日常工作中, 我們可能需要通知負責人某公司購買商品即將到期。
若沒有系統協助我們記錄與自動通知,我們往往最直接的做法可能是在 ERP 系統下載資料後,再根據即將到期日的資訊手動一一通知負責人。
可是若剛好我們具有 Microsoft 365 服務與 Power Automate 功能, 我們將可以使我們的工作更為輕鬆,更簡便。
以下是我的範例,分享給大家。
範例資料
在 OneDrive for Business 準備一個 Excel, 並且輸入簡易資料(序號,公司名稱,商品,到期日,剩餘時間,負責人)。
針對資料使用資料表格式,並且命名表為資料表。
剩餘時間是使用工時計算, [@到期日] 是直接選擇前方的到期日後的變數:
=[@到期日]-TODAY()
備註:剩餘時間格式需修改為數字, 否則可能會變成日期格式(01/01/1990)。

完成後, 我們即可開始我們 Power Automate 設計。
Power Automate 流程
開始 Power Automate 時, 我們可以根據我們的情景使用 Scheduled 自動觸發 Trigger 或手動點擊按鈕作為觸發 Trigger。
手動點擊按鈕觸發

Scheduled 自動觸發

手動通知是我們有需要時, 再依賴手動的方式點擊按鈕開始流程。
若是依賴 Scheduled, 我們只需要設定我們所需觸發週期(如每天,每週或每月), 流程將會定時觸發。
若我們可以設定每天早上 9 點自動 Trigger 流程, 流程將會自動協助我們通知負責人。
備註:以上我們為了方便, 我們將使用手動的方式進行觸發。
以上 Trigger 選擇後, 我們將開始我們的第一個 Action: 列出 Excel 內的 Table 的資料。
連接器在 Excel Online (Business) - Action 的 List rows present in a table
點擊後, 位置選擇 OneDrive for Business 與文件庫選擇 OneDrive, 我們即可在 FIle 與 Table 選擇上方我準備的範例資料(檔案位置在自動處理下的商品記錄表, Table 名稱為資料表)
備註:檔案將是使用選擇的方式選擇至相關檔案,並且敞開進階設定將 DateTime 修改為 ISO 8601。
若不修改 DateTime 格式, 後續使用的日期將會變成數字

Excel 關聯完成後, 我們需設定兩個變數: 一個將變數命名為文字剩餘時間, 另一個將變數命名為數字剩餘時間
文字剩餘時間格式為 String, 預設為 0; 數字剩餘時間格式為 Integer, 預設也為 0.
使用變數原因有三:
- Excel Table 傳數字至 Power Automate 會變成文字, 故後續在數字判斷上會發生錯誤
- 我發現無法在 Condition 的邏輯處理器內直接將文字資料轉換為數字資料, 故需要使用變數
- 迴圈內是無法建立變數的, 故需要在迴圈前建立變數後供迴圈內使用

完成變數設定後, 新增 Apply to each 連接器(該連接器為迴圈連接器)
新增後, 選擇 Excel 的 value, 連接器將會依賴 Excel Table 的資料一步一步執行。

設定好 Apply to each 後, 在 Apply to each 內新增兩個設定變數連接器(Set variable)。
一個是設定文字剩餘時間的變數為 Excel 的剩餘時間,另一個是使用公式將文字剩餘時間轉為數字, 公式為:
int(variables('文字剩餘時間'))
備註:可以在 Expression 內輸入 int() 後點擊 Dynamic content 使用選擇的方式將 Excel 的剩餘時間變數塞進公式。

完成變數轉換後, 我們即可使用 Condition 連接器進行條件判斷。
我們在變數內選擇我們設定好的數字剩餘時間,然後中間判斷選擇少於或等於,最後判斷值為 10。

完成 Condition 後,我們將可以在若判斷是的情況下設定通知。
一般通知使用 Email, 在 Power Automate 內是使用 Outlook 的 Send an email 連接器進行發信, 但為了更好的整合 Microsoft Teams , 我們可以使用 Microsoft Team 的機器人通知。
Office 365 Outlook - Send an email 連接器
To 的欄位可以直接使用我們在 Excel 內的負責人 Email,該負責人在執行流程後也將會收到 Email。
使用分號可達至發送至多人。

Microsoft Teams - Post message in a chat or channel (我使用這個作為範例)
我是將資訊依賴 Flow bot 發佈到 Flow bot 的 Chat 內。
除此之外, 為了方便, 我在收件人使用了點擊按鈕的 User Email 作為收到資訊的目的地。 實際情景可使用 Excel Table 內的負責人作為收取資訊者。
最後,我們可以在資訊內輸入我們想要提供的資訊。

完成後, 我們即可進行測試我們流程是否正常。
根據我們的資料,少於一天的公司為 A, 故我們在 Microsoft Teams 的 Flow bot 收到的資訊如下:



完整流程

補充
以下是我使用 Compose 連接器輸出取得 Excel 內剩餘天數的格式, 我們會發現該資料是純文字。

若是數字將會沒有引號包覆。

除此之外, 若不想事前使用 Excel 格式計算出剩餘天數, 可考慮參考我另一篇文章( [Power Automate] 日期相減 ) 在流程內計算剩餘時間。
最後, 若需要更美觀發送資訊至 Microsoft Teams, 可使用卡片的方式(Microsoft Teams - Post message in a chat or channel)進行設計與發佈至 Flow Bot 的 Chat 內。
可是該方式將會因需要輸入一些 Code 而顯得更加複雜與麻煩, 之後有機會再介紹 Microsoft Teams 的 Card 設計。
總結
根據以上範例,我們後續將可以僅考慮如何更新 Excel 內的資料即可。 這樣一來也解除了我們日常工作中不斷重複通知的作業, 也使得我們工作上更有效率與輕鬆。
最後, 若我們真的想要達至全自動化, 除了可依賴系統外, 我們還能依賴 Power Automate RPA 自動下載更新資料。
以上內容為我個人的見解, 並感謝您的閱讀, 謝謝