本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「Power Automateで祝日判定をする簡単な方法 #Power Platformリレー」を再編集したものです。
こんにちは、あおいです。
最近、リモートワークを開始しました。同時にスマホを落として画面がバキバキになりました。漢字変換・カナ変換・音声入力が不可能になりました。これを機に買い替えてiPhoneユーザーになろうと思っています。
さて、Power AutomateではdayOfWeek関数を利用して平日・土日の判定が可能ですが、残念ながら祝日判定はできません。しかし、いくつか方法はあります。例えば、事前に祝日テーブルを用意しておき、現在の日付と祝日テーブルにある日付を参照して絞り込みをすることで祝日判定が可能になります。
祝日テーブルを使った判定方法の詳細についてはこちらの記事を参考にしてみてください。
■Power Automateで祝日や土日、業務時間後を判定する ー Qiita
平日・土日の判定についてはこちらの記事を参考にしてみてください。
■Power Automateで平日のみを実行するフローを作成(dayOfWeekの使い方)
しかし、「わざわざテーブルを作成するのが面倒くさいなぁ…」と思われる方がいらっしゃるかもしれません。
そこで、今回は手っ取り早く祝日判定ができる簡単な方法を紹介したいと思います。 もちろん、ExcelやDataverseで祝日テーブルを事前に作成する必要はないので、Power Automate初心者の方は安心してご覧ください。
まず、Power Automateで「インスタントクラウドフロー」を選択して、「手動でフローをトリガーします」をトリガーとします。
次にgetFutureTime関数を使って現在の日本時刻を取得し、文字列型の変数として初期化します。
getFutureTimeは現在の時刻(=世界標準時UTC)に指定した時間間隔を加算する関数です。
第1引数にプラスする時間(日本時刻に合わせるために9を入力)、第2引数に時間単位(Hourを入力)、第3引数に任意の書式設定文字列(今回は yyyy-MM-dd)のように各引数を設定します。
過去のブログでaddHours関数を使って日本時刻に変換する方法を紹介しましたが、UTC(世界標準時)に時間を加算したいだけの場合、getFutureTime関数を使った方が良いと個人的に思います。
■Power Automateで時刻を日本時間へ変換する方法 |cloud.config Tech Blog
「Googleカレンダー」コネクタの「カレンダーのイベントの一覧を表示する」アクションを選択します。このアクションで祝日判定を行ないます。
カレンダーID「日本の祝日を選択」、最小時間「動的なコンテンツからJapanTime変数を選択し、T00:000:00 を入力」、最大時間「動的なコンテンツからJapanTime変数を選択し、T01:00:00を入力」など各項目を設定します。
最後に、「コントロール」コネクタの「条件」アクションを選択します。
条件分岐の左辺には式タブからempty関数を選択します。次に動的なコンテンツタブから「イベント リスト アイテム」を選択してempty関数の引数内にセットします。
右辺には false と数式バーに直接入力します。
これで祝日判定のフローは完成しました!
試しにフローを実行して確認してみましょう!
ちなみに、ブログ執筆中の現在は敬老の日(9月20日)です。
敬老の日と出力されているので、祝日判定が正常に行なわれました! 成功です!
今回はGoogleカレンダーコネクタを活用した祝日判定の方法を紹介させていただきました。 ExcelやDataverseで祝日テーブルを事前に作成する必要はないので、Power Automate初心者の方でも取っつきやすいと思います!非常に簡単なので是非試してみてください!
あおい/FIXER
「初心者の方にも分かりやすく」をモットーにBlog執筆、最近はPower Platform中心。好きなものは米国株、CFD取引、K-POP。