見出し画像

任意の受注・発注からの客先への納入予定日を算出する手法

以前に書いたこの記事、エクセルでできることは分かったのですがデータベースで何とかならないかとずっと考えていました。その解法がほぼわかったので覚書としておきます。

ステップ1:下記の関係で示される受発注があると想定する

ステップ2:受注は優先順位に合わせて、発注は入荷予定日に合わせて連番を振る

ステップ3:連番に沿って数量の累計値を算出する

ステップ4:受注-発注を左外部結合すると下記の出力となるはず

ステップ5:発注側の累計-受注側の累計を算出する

ステップ6:差分が「0未満」のデータを除外する

ステップ7:受注日と製品でグループ化を実行。入荷予定の最小値を取得する

上記の過程を経ることで「受注と発注が任意に行われる場合において、どの発注がどの受注に引きあたるのか=顧客に回答するべき納期回答日のベースをどう計算するか」の基礎データが算出できます。

もちろん実務でこれを計算しようとすると、私が今実装しようとした所だけでもこれだけの課題が出ています。

1.「在庫」も考慮に入れる必要がある=現時点での案だが、在庫も発注の一部(今日もしくは近日中に入荷する分)とみなすのがシンプル
2.連番の振り方がポイント。エクセルライクな「並び替え」ではなくしっかり定義づける必要あり
3.この管理を必要とする場合、製品は多種類あるのが通常。品番ごとの連番の振り方は少しテクニカル
4.実務では入荷してすぐ発送できるわけではないのが通常。どの程度のバッファを持たせるかは各業務の性質の違いによる。製品ごとに入荷予定日のバッファの持たせ方が異なるケースもある。(製品に入荷予定日のバッファを設定するマスタを持たせるしかないと思われる)

…いろいろあるのは確かですが、基礎理論がないと何もできないので結構いい気づきでした。何年も考えてた案件なので結構うれしい。

実際、いままだバグだらけのベータ版を作成した段階でも発注漏れや販売中止品の受注を見つけてしまい、結構いけるぞと確信するに至りました笑

この記事が気に入ったらサポートをしてみませんか?