[2022/04/15 仕様変更箇所について記載変更]
スケジュール実行とは?
Power Automateでは、フローを開始するトリガーに「スケジュール」というものがあります。これを利用すると決まった間隔・タイミングで何らかの処理を自動実行させることができます。 今回はこの「スケジュール」トリガーの、パターン別の設定方法をご紹介します。
念のため補足:どこから作るか
Power Automateでフローの作成をするときにも、「予定フローを作成」という名前で表示されています。(下図) でも、日本語で利用しているのであれば、あまりここから行くのはお勧めしません。。(日本語訳があれなので)
ということでスキップしていただき、空でフローを作成し始めます。そこからも、「スケジュール」で検索すればすぐに見つけられますし、こちらのほうが日本語でもわかりやすいです。
スケジュールトリガーのパターン
思いつく限り、単純な繰り返しでは以下のようなパターンが使われるかなと思います。
この中で厄介なのは4くらいです。あとは設定どおりではあるので、見ていきましょう。
1.毎月決まった日
例えば25日とか、そういう処理の締め日みたいな日に実行したいフローがある場合に有効です。 この場合には、間隔 と 頻度 をそれぞれ、1 ヵ月 に設定します。
これだけだと、フロー実行した日から適当に繰り返されるので、[詳細オプション] から、タイムゾーンと開始時刻を設定します。
開始時刻の書式は yyyy-mm-ddThh:mm:ssZ です。結構覚えにくいですよね。。 例:2020年4月15日 16:30から1か月間隔なら、2020-04-15T16:30:00Z です。
注意事項(05/02補足)
例えば月の最終日に発動させたい場合には、03-31のように、31日がある月を指定してあげると毎月末に実行されます。
逆に言えば“30日”が重要な場合には、狙った日付以外で発動する月があるので注意してください。(2月)
2.毎週決まった曜日
例えば平日(月曜~金曜)で祝日の考慮が不要な場合とかです。 この場合には、間隔 と 頻度 をそれぞれ、1 週 に設定します。
やはり詳細オプションを表示して、タイムゾーンと、設定曜日、設定時刻を選択します。 下図の例では、月曜から金曜の13時にスケジュール実行されます。
3.隔週で決まった曜日
これは「毎週」の設定で、間隔を2にすれば解決です。ただし、本当に隔週でいいなら。
4.月の第2週・第4週の決まった曜日
さて、ここが一番厄介です。第2週と第4週の決まった曜日です。ここでは、第2月曜日 ではなく、月の2週目の月曜日 のようなパターンを考えます。
これは単純な設定では実現できないので、Trigger Conditionsを利用します。 (詳しくは→ Power Automateの裏側をみてみよう! (2/2) - MoreBeerMorePower )
間隔 と 頻度 を 1 週、設定曜日を指定して、trigger conditionに以下の式を設定します。
@equals( div(dayOfYear(convertFromUtc(utcNow(),'Tokyo Standard Time','yyyy-MM-dd')),7), add(div(dayOfYear(concat(substring(convertFromUtc(triggerOutputs()?['headers']?['x-ms-user-timestamp'],'Tokyo Standard Time','yyyy-MM-dd'),0,8),'01')),7),0) )
実際にはつなげてください。
式の最後の、7),0)
ですが、この 0 を、1週目-->0、 2週目-->1 という具合に、実行したい週の番号に置き換えることで、トリガーの発動するタイミングが制御されます。
Note : 2022/04/15
triggerOutputs()?['headers']?['x-ms-user-timestamp']
がスケジュール実行トリガーで取得できなくなっていましたので、該当箇所をutcNow()
で置き換えています。
5.毎日決まった時間
これは「毎週」の曜日設定が抜けたようなパターンです。 間隔 と 頻度 を 1 日 として、設定時刻を指定します。 下図の場合には、プレビューにも出ているとおり、毎日 8:20と17:20に実行されます。
6.毎時
毎時間休憩時間だよアラームみたいな用途で使えるかもしれません。 毎時繰り返し処理する場合には、間隔 と 頻度 を 1 時間 とします。この際、開始時刻を設定することで、指定した分 (minutes)に実行されます。
おわり
よく使うスケジュール実行ですが、ちょっとなれないと、なかなかうまく制御できないということがあるかなと思います。 全体的な注意事項としては、タイムゾーンの設定を忘れないことでしょうか。
あとは毎回yyyy-MM-ddThh:mm:ssZのタイムスタンプの記法を忘れてしまうので、Windowsの付箋にでも書いておくと便利です!