【Salesforce】Apexで休日マスタを使用して営業日の判定をしてみた

スポンサーリンク
【Apex】休日マスタを作成して営業日判定 Apex

こんにちは、にいるです。

休日マスタを使用した営業日判定のプログラムを作成しました。
ちょっとそれをまとめておきたいと思います。

1.休日マスタの作成

最初はクラスに特定日をハードコーディングしたんですが、ユーザ自信が登録できるようにオブジェクトでデータを持つようにしました。
会社特有の休日があり、オブジェクトの方が利便性が高いかなと思ったので。

作成した項目は下記の7個で、日にち以外、全て数式を組んでいます。
日にちは入力形式がぶれないように日付型を使用しますが、判定用にテキスト型(数式)も作成しておきます。

# 項目名 データ型 API名
1 休日名 テキスト Name
2 日にち 日付 Holiday__c
3 数値(数式) Year__c
4 数値(数式) Month__c
5 数値(数式) Day__c
6 曜日 テキスト(数式) Week__c
7 週No. 数値(数式) Week_No__c
8 日にち(テキスト) テキスト(数式) Holiday_Text__c

各数式項目の数式は下記です。
※項目名が違うとコンパイルエラーになるので、ご注意ください。

2.営業日判定のApexクラス

営業日の判定は下記です。

・平日である
・休日マスタに登録された日付でない

下記コードは、今日の祝日が休日マスタにあるかどうかを見ています。
その後にif文で処理を書くことで祝日なら〜、営業日なら〜という処理を書けば問題なくプログラムは動くと思います。

3.まとめ

いかがでしたでしょうか。

営業日判定はどの組織でも使用したい機能だと思います。
こういう汎用的なメソッドやテストメソッドなどはユーティリティクラスに作っておきたいですね。

みなさんもぜひ考えて書いてみてください。

他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。

ではでは!

Salesforce 機能別 まとめページ

コメント

タイトルとURLをコピーしました