Power Automateの「スケジュール済みクラウドフロー」では、指定したタイミングや頻度でフローを実行することが可能です。
この時、「繰り返し間隔」の設定で毎週月~金に実行するようにした場合、フローは祝日にも実行されてしまいます。
フローを祝日には実行されないようにするには、どうすればいいでしょうか。
様々な方法があるかと思いますが、Outlookの自分の予定表に新しく「日本の祝日」の予定表を追加して活用することによる、簡単なフローをご紹介します。
フローの概要
本記事では、祝日に実行させたくないフローのデモとして、平日のみの特定の時間・特定のTeamsチャネルに投稿を行うフローを作成しました。
前述の通り、「繰り返し間隔」の設定により、Power Automateで毎週月~金のみフローが実行されるようにすることはできますが、祝日も実行されないように設定することはできません。
そのため、何らかのデータソースを設定して祝日情報の判定を行い、フローの実行を制御する必要があります。
しかし、毎年手動で祝日情報判定のためのデータソースを作成するのも手間なので、今回はOutlookに標準で用意されている予定表「日本の休日」を使用します。
事前準備
事前準備として、Outlook on the webの予定表にて「日本の休日」を追加します。
[イベントのカレンダービューの取得(V3)]アクションにて最初から候補として表示される場合もありますが、表示されていない場合は本章で紹介する操作が必要です。
今回は、Outlook on the webでの操作手順を記載します。
- Outlook on the webを開きます。(https://outlook.office.com/mail/)
- [予定表]にて[予定表を追加]をクリックします。
- 予定表を追加ウィンドウの左側のメニューから[祝日]をクリックし、[日本]のチェックボックスをオンにします。
- 予定表に「日本の祝日」予定表が追加されたことを確認します。
(日髙:キャプチャ追加しました。)
フローの作成
- Power Automate にサインインします。(https://make.powerautomate.com/)
- 左側のナビゲーションから[作成]を選択します。
- [スケジュール済みクラウドフロー]を選択し、下記項目に任意の内容を入力します。
- フロー名
- 開始日
- 繰り返し間隔
- [現在の時刻]アクションを追加します。
- [変数を初期化する]アクションを追加し、下記のように設定します。
- 名前:Day
- 種類:アレイ
- 値:空白のまま
- Office 365 Outlookの[イベントのカレンダービューの取得(V3)]アクションを追加し、下記のように設定します。
- カレンダーID:日本 の休日
- 開始時刻:動的なコンテンツ[現在の時刻]
- 終了時刻:動的なコンテンツ[現在の時刻]
- [条件]アクションを追加し、下記のように設定します。
- 左側:イベントのカレンダービューの取得(V3)の動的なコンテンツ[Value]
- 真ん中:次の値に等しい
- 右側:変数の動的なコンテンツ[Day]
- 「はい」の中に[チャットまたはチャネルでメッセージを投稿する]アクションを追加し、下記項目に任意の値を入力します。
※「いいえ」へのアクションの追加は不要です。- 投稿者
- 投稿先
- Team
- Channel
- Message
動作確認
今回作成したフローは「平日のみ」実行されるフローであるため、トリガーを設定して任意のタイミングでの動作確認は困難です。
そのため、[イベントのカレンダービューの取得(V3)]アクションにて予定表IDを任意の予定表に変更し、予定がある場合とない場合それぞれでフローのテストを行い、実行可否を確認します。
※フローは、[イベントのカレンダービューの取得(V3)]アクションの出力にて、Valueが「空白」の場合(=予定がない場合)のみ実行されます。
※「日本の休日」にはユーザーによる予定の追加はできないため、必ず予定表IDを変更してお試しください。
▼TEST用の予定作成例
▼TEST用の[イベントのカレンダービューの取得(V3)]アクション設定例
▼予定がない場合の実行結果
▼予定がある場合の実行結果
まとめ
本記事では、Power Automateで毎週月~金に実行されるフローが祝日には実行されないようにするために、[イベントのカレンダービューの取得(V3)]アクションにてOutlookの標準機能で追加できる「日本の休日」を使用する方法を紹介しました。
毎年の祝日判定のためのデータソースの作成という作業がなくなるため、使いやすい&汎用性の高いフローになり、とても満足です。