#はじめに
Automation Anywhereをお勉強中のものです。
以前投稿した「Automation Anywhereで「ツェラーの公式」で曜日を求めてみた!」や「Automation AnywhereでVBScriptを使用して曜日を求めてみた!」を投稿させていただきましたが、なんと【1行で曜日を求める技】を@IQ_Bocchiさんからご教示いただきました。ありがとうございます!(涙)
#私がやりたかった事
私は、営業日判定を組み込みたかったのです!それには、曜日を求める必要があると思い、以前投稿した方法で考えていましたが、@IQ_Bocchiさんの【1行で曜日が取得できる技】を利用させていただき、今回はロボットを作成しました。
#今回の記事で割愛
以下については、前回記事と同様のため、割愛します。
使用したAutomation Anywhereのバージョン
祝日または企業指定休日判定
※祝日または企業指定休日判定は、「Bizrobo!Basicで祝日時は処理をしないようにする処理」に記載しています。
#ロボット構成
まず、「エラーハンドラー:試行」、「エラーハンドラー:キャッチ」でエラー時の対応をしておきます。
- 「エラーハンドラー:試行」を挿入する ※「エラーハンドラー:キャッチ」も一緒に挿入される
- 「エラーハンドラー:キャッチ」でエラーが発生した行番号とエラーメッセージを変数に設定する
- 「エラーハンドラー:試行」でエラーが発生すると「エラーハンドラー:キャッチ」へ進むので、エラーメッセージをメッセージボックスで表示させる
#営業日実行処理手順
-
現在日をシステム日時から取得する
-
曜日をシステム日時から取得する
-
現在日が平日であるか判定する
平日である場合: 4へ進む
平日でない場合: 処理を終了するメッセージボックスを表示する -
祝日および企業指定休日ファイル読込みデータテーブルへ値を格納する
-
現在日がデータテーブルに存在するかデータテーブルをループして確認する
存在する場合: 祝日フラグを「真」にする
存在しない場合: 次行へ進む -
祝日フラグが「真」であるか判定する
「真」である場合: 処理を終了するメッセージボックスを表示する
「偽」である場合: 営業日のため実行を開始するメッセージボックスを表示する
#他の日でテストするためにステップを以下の通り変更
- 営業日である2021/12/27でテストする
変更前:
「日時:文字列に変換」でシステム日時を「yyyy/MM/dd」形式で文字列型sTodayに設定
「日時:文字列に変換」でシステム日時を「EEE」形式で文字列型sWeekDayに設定
変更後:
「日時:追加」でシステム日時に1日増した日付を日時型dTestDateに設定
「日時:文字列に変換」で日時型dTestDateを「yyyy/MM/dd」形式で文字列型sTodayに設定
「日時:文字列に変換」で日時型dTestDateを「EEE」形式で文字列型sWeekDayに設定
- 企業定休日である2021/12/29でテストする
変更前:
「日時:文字列に変換」でシステム日時を「yyyy/MM/dd」形式で文字列型sTodayに設定
「日時:文字列に変換」でシステム日時を「EEE」形式で文字列型sWeekDayに設定
変更後:
「日時:追加」でシステム日時に3日増した日付を日時型dTestDateに設定
「日時:文字列に変換」で日時型dTestDateを「yyyy/MM/dd」形式で文字列型sTodayに設定
「日時:文字列に変換」で日時型dTestDateを「EEE」形式で文字列型sWeekDayに設定
#最後に
@IQ_Bocchiさんのお力をいただけたとこで、ステップ数が26行と短縮できました!私の方法で作成していた場合、相当数のステップ数となったことでしょう。今回は、幸いにして@IQ_Bocchiさんに記事を見ていただけた事、そして、技をご教示いただけた事の奇跡により、自分自身とても満足のロボットを作成できたと思います。
@IQ_Bocchiさんに感謝!
Qiitaのつながりに感謝!