UiPathで翌営業日を取得する方法
UiPathでは.netのメソッド等を使用することができますが、
翌営業日は.netでどうやって取ればいいのでしょうか?
ましてや日本の祝日を考慮することなんてできるんでしょうか?
残念ながらそう言った便利なものはありません。
しかし、UiPathにはいろいろとほかの解決策が存在します。
例えばEXCELはワークシートで関数を使うことができるのですが、
その中にWORKDAY関数というものがあります。
これを使うことで自分で祝日マスタを作っておく必要はありますが、
日本の祝日(今後変わっても対応可能)に対応させることができます。
=WORKDAY(対象日付, 何日進めるかを指定, 祝日マスタの場所)
こんな感じで指定します。
ただし、これはEXCELの話で、この関数は.netには存在しないためUiPathでは使うこともできません。
それではUiPathでEXCELの関数を使うことはできないのでしょうか?
例えばこちらの手順でUiPathからVBAを起動することが可能です。
このやり方を応用し、VBAでワークシート関数を呼び出す「WorksheetFunction」プロパティを使って、
このWORKDAY関数を利用することもできます。
今回はそういうことをせず、便利なパッケージをインストールして解決していきましょう。
まず「パッケージを管理」を開きます。
※パッケージのインストールがよくわからない方はこの辺を参考にしてください。
左メニューからAvailable>Allと進み、検索ウィンドウで「UiPathTeam」で検索します。
するといろいろなパッケージが検索されますので、
「UiPathTeam.NextWorkingDay.Activities.Design」を選びインストールしてください。
するとアクティビティの中にUiPathTeam >「Calendar」という項目が増えます。
こちらを開くと「Get Next Working Day」と「Get Previous Working Day」というアクティビティがあります。
このアクティビティを使うことで、翌営業日と前営業日が簡単に取得できます。
設定はすべてプロパティで行います。
Input
・Country Code:国コードを指定します。
datetime型の変数となるので、あらかじめ変数を作って入れておくか、「datetime.Parse(“対象日付”)」というように記述します。
・Reference Date:インプットとなる日付変数を指定します。デフォルトは当日です。
このアクティビティ、なんと日本の祝日に対応しています。ここは”JP”と指定するだけです。指定なしだとエラーになります。テキストエンコードは日本完全無視仕様なのになんて親切なんでしょうか。
・Next Working Day:次の営業日がdatetime型で出力されます
それでは日本対応していることを証明するために、5月の連休で試してみましょう。
2018/5/2をターゲットにします。この5/2は水曜日の平日ですので、ここから1日進めると、
翌日から日曜日まで休みが続くので、翌営業日は5/7(月)となります。
上記画面のように設定し、出力された変数を.ToString(“yyyy/MM/dd”)してメッセージボックスに表示します。
この通り、見事に日本固有の休みでも対応できました!インストールさえすればかなり便利です。