Vol.2 営業日カレンダー - SIOS Technology FRAMEWORK
はじめに
FRAMEWORK 紹介の第一弾として、「業務日付」を取り上げました。今回は、業務日付とも関連の強い「営業日カレンダー」について取り上げます。
営業日カレンダーについて
通常の暦日カレンダーは、一般的には、下記の事項を管理しています。
年月日
曜日
休日(祝日、振替休日、国民の休日)
一方、ビジネスの世界では、暦日カレンダーで管理される休日以外にも、営業を行わない日(非営業日)が存在します。例えば、当社では、12月29日から1月4日は年末年始休暇として非営業日になっています。また、製造業などでは、お盆の時期に合わせて一斉に夏季休業に入るような会社も結構あると思います。東京証券取引所、大阪証券取引所、東京商品取引所を運営する日本取引所グループ(JPX)では、12月31日から1月3日までを休業日に設定しています。証券会社は、それと同様の休業日設定をしてる場合がほとんどです。また、銀行においては、銀行法と銀行法施行令によって、12月31日から1月3日が銀行休業日となっています。
上記のような非営業日(休業日とも呼ばれる)も管理するカレンダーを、営業日カレンダーと呼んでいます。
営業日カレンダーの用途
かつて「資産運用サービス ラップとシステム」について、8本のNote記事をリリースしました。ラップにおいては、各四半期の第X営業日(以降)に報酬を徴収するとか、各四半期の最終営業日のみ実施される処理があるなど、処理タイミングを判断するにあたり、営業日カレンダーが利用されます。
クレジットカードの引き落としが毎月5日以降の最初の営業日なんてことありますね。お客様からお申込みをいただき、当社内で承認がなされた翌営業日を「契約締結日」とするという定義が約款になされている場合、社内で承認した日の「翌営業日」を算出する必要があります。このような算出も営業日カレンダーがなければできません。
多くの業務システムにおいて、営業日カレンダーの存在が必須となっています。
営業日カレンダー関連機能一覧(抜粋)
営業日関連の機能として分かりやすいもの、特徴的なものを抜粋してみました。実際には、FRAMEWORK上もう少しの機能があります。
営業日カレンダーの管理項目(抜粋)とその作成
データベース上、下記のような管理項目を持っています。機能一覧同様、抜粋したものです。
既に述べた機能一覧を実装するには、日付、曜日、営業日フラグがあれば十分です。ですが、毎回、それなりのコンピューテーション(算出処理)を実施することなく処理を終わらせられるよう、各種フラグや通番を持つようにしています。このあたりは、IT エンジニアなりの工夫になります。夜間バッチ処理にて何万回も実施されるような処理の場合、少しでもコンピュータにかかる負荷を低減し、1回あたりの必要な処理時間を短くしておく必要があります。
このような管理項目を持ったデータベース上のテーブルを手作業で作成するのはかなり厳しいものとなります。そのため、FRAMEWORKの一部として、休日とその組織の休業日の一覧を作成しておけば、自動で下記の項目に保持すべき値を算出しそのテーブルを作成するツールを用意しています。
関連記事
概要 Vol.0 - SIOS Technology FRAMEWORK
Vol.1 業務日付 - SIOS Technology FRAMEWORK
Vol.2 営業日カレンダー - SIOS Technology FRAMEWORK (当記事)