Microsoft 365

PowerAutomate過去日、未来日でテスト実行する方法

PowerAutomate祝日判定のフローを作成し祝日判定のテストをしていたのですが、平日の業務時間内で行っているので、祝日が来るまで祝日の判定ができるかどうかわからず待つしかないのか?非効率すぎるなと思い未来日、過去日での実行方法とつまずいた点をまとめました。

スケジュール済みクラウドフローで指定してもその後のアクションで変わってしまう

作成していたスケジュール済みクラウドフローではカレンダーで祝日抽出後の工程で本日日付を日本時間に変換しているため、スケジュール済みクラウドフローで日時を指定しても、後のアクションによって現在時刻での実行となりスケジュールした日時での実行になりません。

過去時間を取得のアクション

過去の時間を取得するアクションを挟み実行してみました。過去時間を取得しても後続のタイムゾーンの変換で指定日付がリセットされてしまい失敗…。

祝日判定のフローではカレンダーでの開始時刻と終了時刻の指定は必須なのでここに指定する値をどうにかする方法で少しフローを変更してみます。

関数どうにかしてみる 

つまずいていたフローではRecurrence(スケジュール済み実行)の後に時刻に関するアクションを2ステップ入れていましたが、日本時間に変換した本日の時間を関数にして同じく祝日判定のフローを作成できました。しかしこのままだとutcNowを使用しているので以前の記事と同じく実行日となってしまうので過去日、未来日となる関数に変える必要があります。

ce33dd98da46ac65374e66481b0e890f

addToTimeを使用する

祝日判定addToTime'[timestamp]’, [interval], ‘[timeUnit]’, ‘[format]’)を使用します。
timestamp=計算元の日付
interval=日時を動かす量の指定、未来日なら正の値、過去日なら負の値
timeUnit=Year(年)、Month(月)、Week(週)、Day(日)、Hour(時)、Minute(分)、Second(秒)
format=結果の形式の指定(任意)

1611c957a41995c0363b253df15bb2fc

今回は2023年2月27日から4日前の2月23日の天皇誕生日に実行できるかのテストをしたので「addToTime(‘2023-02-27′,-4,’Day’)」をカレンダーアクションの開始時刻、終了時刻に指定します。

f060cdde814a80cf2cd314045a42d509

実行結果を見てみると2023年2月23日に実行され、祝日は天皇誕生日と出力されているので祝日と判定されています。テスト成功です。基準日から何日後、何日前で指定ができるのでテストをする際などに覚えておくと便利な関数だなと思いました。