« 「仕様書で駆動される生産管理システム」公開 | トップページ | トレーサビリティを確保するための便法 »

2013.10.01

「営業カレンダー」のモデリング

 XEAD Driverの営業カレンダーを作り変えた。これまでは1セットの休日リストしか保持できなかったが、任意の「カレンダー区分」毎に持てるようにした。結果的に、日付ピッカー(日付選択用のカレンダーコンポーネント)は、たとえば次のように表示されるようになった。

20131001a

 この修正課題は以前から意識していたことだったのだが、実際の案件に適用してみると早急に対処すべき課題であることがわかった(なんという体たらくであろう)。じっさい、複数セットの休日リストを保持することは、多くのシステムでは避けられない。拠点によっては農作業や祭事のための特別な休みが設けられていたり、納入先毎に固有の休日体系があったりする。それらは現実の多様性として受け入れざるを得ない。

 このような営業カレンダーを設計する際の考慮点をまとめておこう。かつては「半休」と「全休」を区別した営業カレンダーを設計したものだが、週休2日制が一般化した今では「休みであれば全休」と考えてほぼ間違いない。そのような営業カレンダーであれば、まずは次のような「休日テーブル」として構成できる。

[休日] 休日日付、摘要

 これに登録されていれば「全休」であり、登録されていない日付は「通常営業日」である。プログラミング言語の中で有効日付を得るための関数があるので、休日リストさえ手元にあれば日程計算はやれてしまう。また、営業日よりも休日は少ないのでこのほうがデータ保守しやすい。なお、摘要には祭日名や特別休日に関する記述を登録して、日付ピッカーで示せばよい。

 これを発展させると、次のように休日テーブルのキーが{カレンダー区分、休日日付}で複合された形になる。こうしたうえで、たとえば納入先にカレンダー区分を組み込めば顧客に対する納期回答の際にカレンダーを切り替えられる。生産管理システムであれば、作業区(号機)にカレンダー区分を組み込めば稼動計画日程でカレンダーを切り替えられる。

[休日] カレンダー区分、休日日付、摘要

 以上は「場の営業日程」を管理するためのものだったが、これに「従業員の就業日程」いわゆる「シフト」が関わるケースもある。その場合、営業カレンダーには休日リストではなく営業日リストを登録したほうがいいだろう。登録されている営業日の内訳として従業員違いのシフトが認識される必要があるからだ。一口に営業カレンダーと言っても、業態によってだいぶ事情が変わる。仕様策定の参考にしてほしい。

|

« 「仕様書で駆動される生産管理システム」公開 | トップページ | トレーサビリティを確保するための便法 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 「営業カレンダー」のモデリング:

« 「仕様書で駆動される生産管理システム」公開 | トップページ | トレーサビリティを確保するための便法 »