こんにちは! Azure Integration サポート チームの 山田 です。
Start/Stop VMs v2 をご利用いただく際などに、「もう少し柔軟に日付や時刻を条件判定して利用したい」というケースが多くあると思います。
当ブログでは以前に Logic Apps で日付や時刻を判定してワークフローを制御する | Japan Azure Integration Support Blog にて、Logic Apps で日付や時刻を判定してワークフローを制御する方法をいくつかご紹介いたしました。
今回はさらに Logic Apps における日付や時刻の判定に使えるシナリオとして「毎月第 1 月曜日に起動したい」場合の設定例をご紹介いたします。
前提条件
今回の記事では従量課金版 Logic Apps を利用しますが、Standard 版 Logic Apps でもご利用いただけます。
目次
- シナリオ: 毎月第 1 月曜日の午前 8 時にワークフローを起動したい
- 関連ドキュメント
- まとめ
シナリオ: 毎月第 1 月曜日の午前 8 時にワークフローを起動したい
「毎月第 1 月曜日の午前 8 時にワークフローを起動したい」。例としてこの場合、まずは以下のように毎週月曜日の 8:00 にワークフローを起動させるよう、繰り返しトリガーを設定しておきます。
参考: 繰り返しワークフローをスケジュール設定および実行する - Azure Logic Apps | Microsoft Learn
トリガーの条件
トリガーには条件式というものを設定できることを、以前の記事でもご紹介いたしました。
参考: Logic Apps で日付や時刻を判定してワークフローを制御する | Japan Azure Integration Support Blog
今回はこちらに「第 1 月曜日」を満たす式を記述しますが、カレンダーからは以下のように 第 1 月曜日 (または月曜日以外の任意の曜日) は必ず 1 以上 7 以下の日付となることが分かります。
1 週間は 7 日間であることから、月の初日から数えて最初の月曜日は必ず 1 日から 7 日の間にあります。以下となります。
- 第 1 週: 1 日から 7 日
- 第 2 週: 8 日から 14 日
- 第 3 週: 15 日から 21 日
- 第 4 週: 22 日から 28 日
- 第 5 週: 29 日以降
したがって、下のように各週の条件を考えることができます。
- 第 1 月曜日 (または月曜日以外の任意の曜日) は 1 以上 7 以下の日付。
- 第 2 月曜日 (または月曜日以外の任意の曜日) は 8 以上 14 以下の日付。
- 第 3 月曜日 (または月曜日以外の任意の曜日) は 15 以上 21 以下の日付。
- 第 4 月曜日 (または月曜日以外の任意の曜日) は 22 以上 28 以下の日付。
- 第 5 月曜日 (または月曜日以外の任意の曜日) は 29 以上の日付。
条件式
上記を踏まえ、日本時間にて「今日が第 1 月曜日である (= 1 以上 7 以下の日付である)」という条件式を設定すると、以下のようになります。
1 | @and(greaterOrEquals(dayOfMonth(convertFromUtc(utcNow(), 'Tokyo Standard Time')), 1), lessOrEquals(dayOfMonth(convertFromUtc(utcNow(), 'Tokyo Standard Time')), 7)) |
greaterOrEquals
(以上) と lessOrEquals
(以下) の利用方法についてご参考になれば幸いです。また関連する関数について、以下ご覧いただけます。
参考:
- Azure Logic Apps および Power Automate のワークフロー式関数のリファレンス ガイド # convertFromUtc
- Azure Logic Apps および Power Automate のワークフロー式関数のリファレンス ガイド # dayOfMonth
- Azure Logic Apps および Power Automate のワークフロー式関数のリファレンス ガイド # lessOrEquals
- Azure Logic Apps および Power Automate のワークフロー式関数のリファレンス ガイド # greaterOrEquals
- Azure Logic Apps および Power Automate のワークフロー式関数のリファレンス ガイド # and
これにより、「毎月第 1 月曜日に起動したい」とするワークフローを制御できるようになりました。上に基づいて、お客様業務上の任意の後続処理を行うための、条件設定に応用いただけます。
関連ドキュメント
本文中でもご紹介いたしましたが、ほか Logic Apps と日付関数に言及した記事には、以下のようなものがございます。
- Logic Apps で簡単に日付や時刻を用いる | Japan Azure Integration Support Blog
- 「繰り返し (Recurrence)」トリガーの起動時刻の差異について | Japan Azure Integration Support Blog
- Logic Apps の式関数で Unix Time を取得する方法 | Japan Azure Integration Support Blog
- Logic Apps で日付や時刻を判定してワークフローを制御する | Japan Azure Integration Support Blog
まとめ
本記事では、繰り返しトリガー利用時に便利な、日付や時刻の判定方法についてご紹介しました。引き続き皆様のお役に立てる情報を発信してまいります。
※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。