やること「日数を計算する」と、土日祝日やお盆休み、年末年始休暇などの非営業日を登録したマスタアプリを組み合わせることで実現可能です。
当記事に関連したものとして、非営業日を指定した場合にエラーを表示するカスタマイズもご紹介しています。
「非営業日はエラー、のような指定はできますか?」をご覧ください。
今回のカスタマイズでできること
開始日と終了日を指定し、その間の土日祝日などを除いた営業日数をカウントして指定のフィールドにセットする
アプリの設定
非営業日の日付を登録したマスタアプリと、営業日カウントを利用するアプリ(カスタマイズを設定する方のアプリ)を用意します。
非営業日マスタアプリ
日付フィールドに非営業日、説明フィールドに「日曜日」「お盆休み」のような休みについての説明を入力しています。
※フィールドコードはフィールド名と同じものを指定します
このアプリに登録した日を非営業日とみなします。
土曜日、日曜日、祝日など、非営業日としたい日付を持つレコードを1日1レコードとしてすべて登録しておきます。
営業日カウントアプリ
※フィールドコードはフィールド名と同じものを指定します
ボタンを配置するためのスペースフィールドを「終了日」フィールドの右横に作成しました。
スペースの要素IDは「btn」です。
完成例
「開始日」と「終了日」を入力してから「営業日計算」ボタンを押すと、営業日のみをカウントした日数が「営業日数」フィールドにセットされます。
カスタマイズ作成
営業日カウントアプリにカスタマイズを追加します。
スペースにボタンを配置する
やること「ボタンをスペースに配置する」、条件「追加画面・編集画面を表示した時」を選択します。
場所には要素IDに「btn」を指定したスペースフィールドを、ラベルには「営業日計算」を指定しました。
ボタンが押されたら、営業日・非営業日関係なく日数を計算する
やること「日数を計算する」、条件「ボタンを押した時」、「複数フィールドが全て同じ条件を満たすならば」を使用します。
このアクションにより営業日と非営業日を区別することなく、開始日から終了日までの日数を「日数を計算する」で計算します。
開始日には「開始日」、終了日には「終了日」フィールドを指定しました。
また、スペースに配置したボタンを押した時に計算したいので「ボタンを押した時」を選択しました。
ボタンには「1」を指定します。
そして開始日、終了日フィールド両方に日付が入力されている時だけ計算したいので「複数フィールドが全て同じ条件を満たすならば」を選択します。
フィールドは「開始日」「終了日」、条件は「等しくない」、比較値には何も入力しないでおきます。
これにより両フィールドが空欄ではない場合にアクションを実行するという条件が設定できます。
非営業日マスタから開始日と終了日の間にある非営業日を取得する
やること「条件を組み立ててレコードを取得する」、条件「他のアクションの実行が完了した時」を選択します。
取得先アプリは「非営業日マスタアプリ」を指定します。
検索条件には次のように設定します。
これは非営業日マスタアプリの「日付」フィールドの値が、営業日カウントアプリの「開始日」以上、かつ「終了日」以下である、という内容になります。
また、最大取得件数には何も入力しません。
そして「条件」は、日数の計算が終わってから処理を行いたいので「他のアクションの実行が完了した時」を選択します。
アクションには「2」を指定しました。
非営業日マスタから取得したレコード数(つまり非営業日の数)を取得する
やること「レコード行数をカウントする」、条件「他のアクションの実行が完了した時」を選択します。
非営業日マスタからのレコード取得が完了してから処理を行いたいので「他のアクションの実行が完了した時」を選択します。
アクションには「3」を指定しました。
営業日の日数を計算する
やること「フィールドに値をセットする」、条件「他のアクションの実行が完了した時」を使用します。
値にこちらの式を設定します。
= $2 - $4 + 1
アクションNo.2で取得した日数からアクションNo.4で取得した非営業日数を引き、 +1 を行います。
これは「日数を計算する」が「開始日」を含めずに計算するため、開始日の日数を考慮する必要があるからです。
例えば、開始日「2024-04-15」から終了日「2024-04-22」の営業日数を計算する場合、土日と終了日を含めると7日になります。ここから非営業日の2日を引き、開始日の1日を追加した6日が営業日数になります。
そして非営業日数の取得が完了してから計算したいので「他のアクションの実行が完了した時」を選択します。
アクションには「4」を指定しました。
以上でカスタマイズは完了です。
営業日カウントアプリの詳細画面で「営業日カウント」ボタンを押すと、非営業日を除いた日数が計算され、「営業日数」フィールドにセットされます。
まとめ
今回は土日祝日などを除いた営業日をカウントするカスタマイズをご紹介しました。
なお、非営業日マスタではなく、営業日マスタを使用して⚪︎営業日後の日付を取得するカスタマイズは次の記事で可能です。あわせてご覧ください。
ご不明な点などございましたら、お気軽にチャットでご質問ください。
Customineドキュメントやサポートページも、ぜひご活用ください。