Power Automateのフローを「毎週月曜日に起動する」などスケジュールで起動している場合や、「メールを受信したとき」のような条件で起動するようにしている場合、何も設定しないと休業期間中にも起動してしまいます。
今回は、年末年始のような休業期間中にフローが起動しないようにする方法をご紹介します。
本記事での前提
本記事では「年末年始の非稼働日にフローを起動させない」という要件でご紹介します。
ここでは毎年12月28日~1月3日までを年末年始の非稼働日とします。
また、トリガーが「繰り返し」フローである場合の設定方法をご紹介します。
※ 「メールを受信したとき」のように特定の条件で起動するようなフローでも、今回紹介する設定方法で同様に設定することが出来ます。
トリガーの条件
今回ご紹介する設定は「トリガーの条件」という設定項目から設定します。
トリガーの条件を設定することで、フロー起動条件を指定することができます。
Microsoft Learnにも設定方法が記載されているのでご確認ください。
設定手順
ここから実際の設定手順をご紹介します。
- トリガーの「・・・」を選択します。その後、設定を選択します。
- トリガーの条件の「+追加」を選択します。
- 赤枠内に以下の式を入力します。
式の詳細
先ほどトリガーの条件に入力した式はこちらです。
@and(greater(convertFromUtc(utcNow(),'Tokyo Standard Time','MM-dd'),'01-03'),less(convertFromUtc(utcNow(),'Tokyo Standard Time','MM-dd'),'12-28'))
この式は「フローが起動した日付が1月4日~12月27日の場合はtrueを返し、それ以外の日付ではtrueを返さない」という意味です。トリガーの条件では式の結果がtrueになった場合、フローが起動されます。
つまり、1月4日~12月27日の間ではフローが起動され、12月28日~1月3日ではフローが起動されないという意味になります。
この式はand関数で2つの式を両方ともtrueの値を返す場合に、フローが起動されるように設定しています。
and関数内の2つの式について、内容を分けて説明します。
1月3日より大きい日付の判定
greater(convertFromUtc(utcNow(),'Tokyo Standard Time','MM-dd'),'01-03')
日本時間で1月3日より大きい日付(1月3日は含まない)である場合にtrueを返します。
greater関数は○○より大きいという意味です。
convertFromUtc(utcNow(),'Tokyo Standard Time','MM-dd'),'01-03')で世界標準時から日本標準時間に変換、かつ月日という日付形式で抜き出すために表示形式を'01-03'にしています。
表示形式を月日にする理由は年表記を省略することで、毎年利用できるためです。
また、Power Automateでは世界標準時で時刻を取得するため、日本時間に変換する必要があります。
12月28日より小さい日付の判定
less(convertFromUtc(utcNow(),'Tokyo Standard Time','MM-dd'),'12-28')
日本時間で12月28日より小さい日付(12月28日は含まない)である場合にtrueを返します。
less関数は○○より小さいという意味です。
convertFromUtc関数以下の説明は既に行っているため省略します。
これら2つの式を合わせることで、1月4日から12月27日の間でのみフローが起動されるようになります。
おわりに
年末年始の休暇期間中にフローが起動されないようにする方法をご紹介しました。
年末年始だけでなく夏休みなど毎年決まった期間が休暇の場合は日付を変更することで対応できます。また、トリガーの条件は複数設定することが出来るので、休暇期間を組み合わせることも出来ます。
それぞれの日程に合わせて変更してご活用いただけたら幸いです。