Microsoft 365

Power Automate の通知を「平日のみ」送信する

以前、「Power Automate のテンプレートを活用して Planner のタスク一覧を毎日受け取る」で通知フローを作成しましたが、実際に動かすと休日や祝日にも通知が届いてしまいます。無視すれば良いのですが、折角ですので、フローを「平日にだけ通知を送信する」ようを修正してみます。

週末に通知を送信しない

土曜、日曜に通知を送信しない、だけであれば簡単です。

前の投稿では「スケジュール済みクラウドフロー」の通知間隔の設定を「1日」としていましたが、ここを「週」単位に変更すると、下図のように曜日を指定することができるようになります。土曜、日曜のチェックを外して下さい。

9f8c4a3fff1f3fc9dd609312d5d7e606

祝日に判定する仕組み作り

祝日については上記より少し手間がかかります。曜日のように規則性がないため、「いつが祝日なのか」という情報をどこからか取得して判定する必要があります。幸い、サービス(Exchange Online)側で「日本の休日」というカレンダーが用意されているので、これをそのまま利用します。

下図は、私が作成したサンプルです。

20221107image02

ポイントは「祝日の取得」です。これは名称変更していて、オリジナル名は Outlook コネクタの「イベントのカレンダー ビューの取得 (V3)」を利用しています。このアクションで予め用意されている「日本の休日」カレンダーに対してクエリをかけ、次にその結果を利用して条件判定(祝日かどうか)を行っています。当然、祝日の場合は通知を送信せず終了です。

なお、条件判定の数式は length(body(‘祝日の取得’).value) になります。「祝日の取得」アクションの結果(.value)の長さを length で数えて、ゼロだったら(=祝日ではない)…という判定ですね。

分かってしまえばそれほど難しい設計ではありませんが、条件式も含めて少し(初心者には)難易度高めです。フローをスケジュールで動作させる際に「休日祝日」を考慮したいケースは少なくありませんので、このくらいはフローの設定で対応できるようになると良いのですけどね。