Salesforceで営業日カレンダー

Salesforceにて、営業日カレンダーを標準機能で表現するなら休日(Holiday)を使えば…と思うが、店舗と本社とかカレンダーが複数あるときは、営業時間(BusinessHour)を使うことで表現ができる。

これにはハマりどころがあって、普通のライセンス構成(Service Cloudとか)だとBusinessHourとHolidayのリレーションは存在しないので、SOQLではクエリできないのだ。なのでフローで休日判定しましょうというのも単一の休日ならできるのだが、営業時間を絡めると詰んでしまう。

一方でApexで計算することはできる、ということらしいので検証する必要がある。

Holidayオブジェクト

Salesforce Developers
Salesforce Developer Website

BusinessHoursオブジェクト

Salesforce Developers
Salesforce Developer Website

どちらも標準オブジェクトだね。

似ているけど、OperatingHoursHolidayオブジェクトは、Salesforce Scheduler が必要なオブジェクトで、今回の話からは割愛。Holidayオブジェクトは使うみたいだけど、BusinessHoursとリレーションがあるわけじゃなさそう。

https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_classes_businesshours.htm

このクラスのメソッドで計算できそう。