はじめに
今回はプリザンターのレコードを自動更新するPower Automateフローを作成します。今回はサブスクリプションなどを契約している前提で自動更新するのか契約終了するのかの情報を自動更新していきます。下記、参考資料をもとに自動更新フローを作成しました。
設定
・一つのテーブルにつき複数のユーザー(レコード)が存在
・一つのレコードにはタイトル・開始日・完了日・状況・自動更新の計5つの項目がある
・完了日が過ぎているユーザーのレコードを毎日更新
・自動更新がオンのレコードは完了日を過ぎたら完了日を1か月後更新
・自動更新がオフのレコードは完了日を過ぎたら状況を完了に更新
シチュエーション
今回のシチュエーションとしては昼食補助という福利厚生があり、利用人数を知りたいとします。ちなみに、今回のレコード更新対象は「タイトル」がメーテルさんと星野 哲郎さんです。想定では、メーテルさんは「完了」が1か月後に更新され、星野 哲郎さんは「状況」が完了になります。
フローの全体像
フロー実行間隔・実行日時の設定と変数の初期化処理
繰り返し間隔と実行時間を設定します。そのあと、変数を初期化していきます。設定の内容としては毎日8:00に処理を実行します。
「自動更新」がオフのレコードの「状況」を完了に更新する処理
「状況」が200(=実施中)、かつ「完了」が前日以前、かつ「自動更新」がオフのレコード情報を取得します。取得したレコードの「状況」を完了に更新します。
httpのaddHours(...)に関しては下記のように入力
UTCで取得した時間に対し、-1日することで前日の日付を設定します。そして、UTC→日本時間に修正するために9時間足し、「yyyy/MM/dd」の形式で返すように指定しています。
addHours(addDays(utcNow(),-1),9,'yyyy/MM/dd')
「自動更新」がオンのレコードの「完了」を1か月後に更新する処理
「状況」が200(=実施中)、かつ「完了」が前日以前、かつ「自動更新」がオンのレコード情報を取得します。取得したレコードの「完了」を1か月後に更新します。
http3のaddHours(...)に関しては下記のように入力
上記と同じです。
addHours(addDays(utcNow(),-1),9,'yyyy/MM/dd')
http4のaddHours(...)に関しては下記のように入力
UTCで取得した時間に対し、月に対して+1日することで今日から31日後を設定します。そして、UTC→日本時間に修正するために9時間足し、「yyyy/MM/dd」の形式で返すように指定しています。
addHours(addToTime(utcNow(), 1, 'Month'), 9, 'yyyy/MM/dd')
フロー実行前と後
フロー実行前
フロー実行後
さいごに
今回の自動化はライセンスが必要らしく、無料トライアル版を利用して作成いたしました。確か、90日の無料トライアルで続けるためには課金をしていくシステムでした。そのため、簡単な処理を自動化しましたが、いずれ有料版をサブスクして定型業務を自動化させていきたいですね。また、関数なんかもネットで調べれば色々出てきたので、使い勝手も少しずつ良くなっているのではないかと思われます。
参考資料