knowledge 週末と祝日を除いたタスク実行日の翌日を取得する方法

タスクの実行日の次の平日(土日や祝日ではない日)の指定は、
 A. 祝日情報を変数に格納する
 B. タスク実行日の翌日を"日付変数"に格納する
 C. "日付変数"が土曜/日曜であるか判定
  →土日の場合日数を+1し、処理Cに戻る
 D. "日付変数"が祝日か判定
  →祝日の場合日数を+1し、処理Cに戻る
以上の構造を組むことにより可能になります。
土日判定のフィルターと祝日判定のフィルターを別箇に通すような形です。

処理詳細は以下の通りです。
土日の判定はAutoMateの関数を使用して判定させることが出来ますが、
祝日の情報についてはAutoMate外のリソースを使用する必要があります。
そのため、この例では内閣府Webページから取得可能の祝日情報CSVを使用しています。
また、この例における変数は
 var_holidays (祝日情報の格納用変数)
 var_date (実行日の日付用変数)
 var_next ("次の平日"の日付用変数)
以上3種類が宣言されているものとします。

a. [ファイルシステム - ファイルからの読み込み]アクションで、
 祝日CSVの内容を変数に格納する
→"ファイル"の欄に祝日CSVのフルパスを指定し、
 "変数に読み込んだデータを設定する"は"var_holidays"を指定します。
b. [テキスト - 日付の書式設定]アクションでタスク実行日の日付を変数に格納する
→日時形式は"yyyy/M/d"と記入し、"結果を変数に設定する"に"var_date"を指定します。
c. [テキスト - 日付の書式設定]アクションで実行日の次の日を変数に格納する
→日時形式は「祝日csvの表記と同じ形式」を指定してください
 (内閣府の祝日ファイルの場合"yyyy/M/d"形式となります)。
 "結果を変数に設定する"に"var_date"を指定し、[詳細]タブを展開します。
 右側の項目"調整"の"日"の欄に"1"を記入します。
d. [ラベル - 作成]アクションで、日付検査のリスタート点を作成する
→土日と祝日が連続している場合に再度日付調整を開始するポイントになります。
 ここでは[ラベル名]に"lb_recheck"と命名したとします。
e. [if - 条件式]アクションと"Weekday関数"を使用し、"土日判定"の条件式を作成する
→Weekday関数は、指定された日付が何曜日であるか1から7の数値で返す関数です。
 これを使用し、"日付変数の値が土曜日or日曜日の場合"という条件式を作成します。
 ラジオボタン"条件式の指定"を選択し、入力欄に以下のように記述します。
  %Weekday(var_next)% = 1 %OR Weekday(var_next)% = 7
 これにより、この条件式の内部が実行されるのは
 日付変数の値が1(日曜)か7(土曜)の場合のみになります。
┌―――――――――e. 条件式始め――――――――――
│f. [テキスト - 日付の書式設定]アクションで"日付変数"の日付を1日増加させる
│→手順c. 同様、日時形式は「祝日csvの表記と同じ形式」を指定します。
│ "結果を変数に設定する"に"var_next"を指定し、[詳細]タブを展開します。
│ ラジオボタン[指定された日付時間を使用する]を選択し、"%var_next%"を記入します。
│ 日時形式は「祝日csvの表記と同じ形式」とし、
│ 右側の項目"調整"の"日"の欄に"1"を記入します。
│g. [ラベル - Goto]アクションで日付検査リスタート点に処理を戻す
│→移動先ラベルに、手順d. で設定したラベル名を指定します。
└―――――――――e. 条件式終り――――――――――
h. [if - テキスト]アクションで、"祝日判定"の条件式を作成する
→調整した"日付変数"と祝日が重複している場合は再調整する必要があるため、
 祝日ファイル内の記述から"日付変数"の表記を探し、判定します。
 プロパティ"if"のラジオボタンは"指定のテキストを含む"を選択し、
 "ターゲットテキスト"に祝日ファイルの内容変数"%var_holidays%"を記述します。
 "探すテキスト"に"%var_next%,"(必ずカンマを付けてください)を記入することで
 「祝日ファイルの内容に"日付変数"の記載がある場合」という条件式になります。
┌―――――――――h. 条件式始め――――――――――
│i. [テキスト - 日付の書式設定]アクションで"日付変数"の日付を1日増加させる
│→手順f. と設定は同一です。
│j. [ラベル - Goto]アクションで日付検査リスタート点に処理を戻す
│→手順g. と設定は同一です。
└―――――――――h. 条件式終り――――――――――

以上処理のタスクサンプルは以下です。休日ファイルの取得も組み込まれています(ステップ4-9)。
なお、このサンプルはタスク実行の翌日以降の平日を取得する定義となっていますが、ステップ15,20および26での調整する日を"-1"にすると、タスク実行日より前の土日祝を除いた平日を取得するようになります。

<AMVARIABLE NAME="var_holidays" VALUE="" />
<AMVARIABLE NAME="var_date" VALUE="" />
<AMVARIABLE NAME="var_next" VALUE="" />
<AMREGION NAME="内閣府のページからCSVファイルを取得" COLLAPSE="no" />
<AMVARIABLE NAME="var_kyujitsuPage" VALUE="https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv" DESCRIPTION="内閣府の休日一覧ページ" />
<AMWEBBROWSER URL="%var_kyujitsuPage%" SESSION="BrowserSession1" BROWSER="chrome" />
<AMWAIT SCALAR="1" />
<AMWEBBROWSER ACTIVITY="close" SESSION="BrowserSession1" />
<AMENDREGION />
<!--ポータル記事解説内容(ステップ11=解説における"手順a")-->
<AMFILESYSTEM ACTIVITY="read_file" FILE="%userprofile%\Downloads\syukujitsu.csv" RESULTVARIABLE="var_holidays" />
<!--タスク実行日の日付を変数に格納-->
<AMTEXT ACTIVITY="format_datetime" RESULTVARIABLE="var_date" DATETIMEFORMAT="yyyy/M/d" />
<!--タスク実行日の翌日を変数に格納-->
<AMTEXT ACTIVITY="format_datetime" RESULTVARIABLE="var_next" DATETIMEFORMAT="yyyy/M/d" ADJUSTDAY="1" />
<AMLABEL LABELNAME="lb_recheck" />
<!--タスク実行日の次の日が土日か判定する-->
<AMIF EXPRESSION="%Weekday(var_next)%  = 1 %OR Weekday(var_next)% = 7" USECOMPLEXUI="YES" />
<!--土日である場合日数を+1し、土日判定の処理時点まで戻す-->
<AMTEXT ACTIVITY="format_datetime" RESULTVARIABLE="var_next" DATETIMEFORMAT="yyyy/M/d" ACTION="specified" SPECIFIEDDATETIME="%var_next%" SPECIFIEDFORMAT="yyyy/M/d" ADJUSTDAY="1" />
<AMLABEL ACTIVITY="goto" LABELNAME="lb_recheck" />
<AMIF ACTIVITY="end" />
<!--タスク実行日の次の日が祝日か判定する(CSVの内容に翌日日付が入っているか照合する)-->
<AMIF ACTIVITY="contains_text" TEXT="%var_holidays%" SUBSTRING="%var_next%" />
<!--祝日である場合日数を+1し、土日判定の処理時点まで戻す-->
<AMTEXT ACTIVITY="format_datetime" RESULTVARIABLE="var_next" DATETIMEFORMAT="yyyy/M/d" ACTION="specified" SPECIFIEDDATETIME="%var_next%" SPECIFIEDFORMAT="yyyy/M/d" ADJUSTDAY="1" />
<AMLABEL ACTIVITY="goto" LABELNAME="lb_recheck" />
<AMIF ACTIVITY="end" />
<!--結果確認のダイアログ表示-->
<AMSHOWDIALOG>%var_date%の次の平日は%var_next%</AMSHOWDIALOG>

●関連記事
内閣府のページから祝日一覧をダウンロードし、特定日付が祝日かどうかを判定するサンプル
https://automate.sct.co.jp/knowledge/14960/