(57)【要約】【課題】需要に変動があっても生産負荷の標準化を図ることができる生産計画自動立案装置、生産計画自動立案方法、及び、生産計画自動立案プログラムを提供する。【解決手段】本発明に係る生産計画自動立案装置は、制御部を備える。この制御部は、作成手段と、更新手段と、決定手段とを備える。作成手段は、第１の周期における期末の在庫計画数に関する期末安全在庫数データを用いて、第２の周期における在庫計画数に関する短周期基準安全在庫数データを複数作成する。更新手段は、第１の周期における増減数データを用いて、複数の短周期基準安全在庫数データに対応する在庫計画数の各々に、増減数データに対応する製品の増減分を割り当てる。決定手段は、短周期基準安全在庫数データと、第１の周期における製品の引当数に関する引当数データとを用いて、第２の周期において製品を生産すべき計画数を決定する。【選択図】図５
2016194900.tif 000002
【特許請求の範囲】
【請求項１】
製品を生産すべき計画数を立案するための、制御部を備えた生産計画自動立案装置において、
前記制御部は、
前記製品に対する需要予測を考慮して予め定められた、第１の周期における期末の在庫計画数に関する期末安全在庫数データを用いて、前記第１の周期に含まれかつ当該第１の周期よりも相対的に短い第２の周期における在庫計画数に関する短周期基準安全在庫数データを複数作成する作成手段と、
前記第１の周期における前記製品の増減分に関する増減数データを用いて、前記複数の短周期基準安全在庫数データに対応する在庫計画数の各々に、前記増減数データに対応する前記製品の増減分を割り当てることにより、前記作成手段で作成した前記短周期基準安全在庫数データを更新する更新手段と、
前記更新手段で得られた短周期基準安全在庫数データと、前記第１の周期における前記製品の引当数に関する引当数データとを用いて、前記第２の周期において前記製品を生産すべき計画数を決定する決定手段と
を備えた
ことを特徴とする生産計画自動立案装置。
【請求項２】
前記制御部は、
前記複数の短周期基準安全在庫数データに対応する在庫計画数の各々に割り当てるべき前記製品の増減分の割当分を、前記第１の周期に属する日の数を用いて算出する算出手段をさらに含む
ことを特徴とする請求項１に記載の生産計画自動立案装置。
【請求項３】
前記第１の周期に属する日の数は、前記製品の生産を行うことが可能な稼働日の数であり、
前記算出手段は、
前記稼働日の各々に、当該稼働日の前記第１の周期における順序に応じた係数を設定する係数設定手段を含み、かつ、
前記係数設定手段で設定した係数に対応する稼働日に対して、前記割当分として、前記製品の増減分を前記稼働日の数で除した値に、該稼働日に設定された係数を乗じた値を用いる
ことを特徴とする請求項２に記載の生産計画自動立案装置。
【請求項４】
前記第１の周期は、月を単位とする期間であり、かつ、
前記第２の周期は、日を単位とする期間であり、
前記制御部は、
前記製品を生産すべき計画数の立案対象となる適用期間の基準日付を設定する基準日付設定手段
を含み、かつ、
前記作成手段は、
前記基準日付設定手段で設定した基準日付を含む月の翌月の月末の在庫計画数に関する期末安全在庫数データを用いて、前記翌月に属する日の各々について前記短周期基準安全在庫数データを作成する
ことを特徴とする請求項１〜３のいずれか１項に記載の生産計画自動立案装置。
【請求項５】
前記制御手段は、
前記決定手段で決定した複数種類の製品の計画数についてまとめ処理を行うまとめ手段をさらに含む
ことを特徴とする請求項１〜４のいずれか１項に記載の生産計画自動立案装置。
【請求項６】
制御部を備えた生産計画自動立案装置において実行される、製品を生産すべき計画数を立案するための生産計画自動立案方法であって、
前記制御部において実行される、
前記製品に対する需要予測を考慮して予め定められた、第１の周期における期末の在庫計画数に関する期末安全在庫数データを用いて、前記第１の周期に含まれかつ当該第１の周期よりも相対的に短い第２の周期における在庫計画数に関する短周期基準安全在庫数データを複数作成する作成ステップと、
前記第１の周期における前記製品の増減分に関する増減数データを用いて、前記複数の短周期基準安全在庫数データに対応する在庫計画数の各々に、前記増減数データに対応する前記製品の増減分を割り当てることにより、前記作成ステップで作成した前記短周期基準安全在庫数データを更新する更新ステップと、
前記更新ステップで得られた短周期基準安全在庫数データと、前記第１の周期における前記製品の引当数に関する引当数データとを用いて、前記第２の周期において前記製品を生産すべき計画数を決定する決定ステップと
を含む
ことを特徴とする生産計画自動立案方法。
【請求項７】
制御部を備えた生産計画自動立案装置において実行させるための、製品を生産すべき計画数を立案するための生産計画自動立案プログラムであって、
前記制御部において実行させるための、
前記製品に対する需要予測を考慮して予め定められた、第１の周期における期末の在庫計画数に関する期末安全在庫数データを用いて、前記第１の周期に含まれかつ当該第１の周期よりも相対的に短い第２の周期における在庫計画数に関する短周期基準安全在庫数データを複数作成する作成ステップと、
前記第１の周期における前記製品の増減分に関する増減数データを用いて、前記複数の短周期基準安全在庫数データに対応する在庫計画数の各々に、前記増減数データに対応する前記製品の増減分を割り当てることにより、前記作成ステップで作成した前記短周期基準安全在庫数データを更新する更新ステップと、
前記更新ステップで得られた短周期基準安全在庫数データと、前記第１の周期における前記製品の引当数に関する引当数データとを用いて、前記第２の周期において前記製品を生産すべき計画数を決定する決定ステップと
を含む
ことを特徴とする生産計画自動立案プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生産計画自動立案装置、生産計画自動立案方法、及び、生産計画自動立案プログラムに関する。
【背景技術】
【０００２】
特許文献１には、歩留り変動などが発生するため、需要変動に追随可能な生産計画を作成することが困難な内製デバイス品を含む組立製品について、生産要求量の累積量が在庫量より多い場合には、すなわち増産が必要な場合には、生産要求量の累積量から在庫量を差し引いた値を生産量として算出し、一方で、生産要求量の累積量が在庫量より少ない場合には、すなわち減産が必要な場合には、生産量を０とする生産計画立案システムが開示されている（段落［００２０］等参照）。この特許文献１に開示された生産計画立案システムによれば、需要変動に対応できる在庫量を確保しながらプロセス部品の生産量を決定することができる。
【０００３】
また、特許文献２には、在庫管理方法として、実数である在庫数及び実販売数と、管理対象物の出荷実績等の基礎データとを用いて、在庫日数を算出することを開示している（段落［００１０］〜［００１１］等参照）。また、特許文献２は、算出した在庫日数データを生産のコントロールに適用することも開示しており、具体的には、生産増の場合には、増加分の生産計画を最新の生産計画データに追加し、一方、生産減の場合には、生産計画固定期間以降で最も早い該当製品の生産計画を減らすことを開示している（段落［００１０］〜［００１１］等参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１７８０３７号公報
【特許文献２】特開２００１−２２９３１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１，２に記載の技術では、需要変動に対応可能であるものの、増産が必要な場合における増加分を制御することができないために、例えば増加分が生産能力にとって過多であっても当該増加分に応じた生産負荷が生じ、一方で、減産が必要な場合における減少分を制御することができないために、生産設備や生産体制に十分な余力があるにもかかわらず、生産量を０にしなければならない場合が生じる。これらのように、従来技術では、生産設備や生産体制の稼働状態を考慮せずに、生産計画又はその更新がなされていたために、最大の生産量に応じて設定されている生産能力を十分に発揮することができないという問題がある。なお、同様の問題は、上述のような生産管理の場面だけでなく、在庫量の管理が必要となる在庫管理及び販売管理の場面においても生じる。
【０００６】
本発明は、上記問題点に鑑みてなされたものであって、需要に変動があっても生産負荷の標準化を図ることができる生産計画自動立案装置、生産計画自動立案方法、及び、生産計画自動立案プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明にかかる生産計画自動立案装置は、製品を生産すべき計画数を立案するための、制御部を備えた生産計画自動立案装置において、前記制御部は、前記製品に対する需要予測を考慮して予め定められた、第１の周期における期末の在庫計画数に関する期末安全在庫数データを用いて、前記第１の周期に含まれかつ当該第１の周期よりも相対的に短い第２の周期における在庫計画数に関する短周期基準安全在庫数データを複数作成する作成手段と、前記第１の周期における前記製品の増減分に関する増減数データを用いて、前記複数の短周期基準安全在庫数データに対応する在庫計画数の各々に、前記増減数データに対応する前記製品の増減分を割り当てることにより、前記作成手段で作成した前記短周期基準安全在庫数データを更新する更新手段と、前記更新手段で得られた短周期基準安全在庫数データと、前記第１の周期における前記製品の引当数に関する引当数データとを用いて、前記第２の周期において前記製品を生産すべき計画数を決定する決定手段とを備えたことを特徴とする。
【０００８】
また、本発明に係る生産計画自動立案装置は、前記に記載の生産計画自動立案装置において、前記制御部は、前記複数の短周期基準安全在庫数データに対応する在庫計画数の各々に割り当てるべき前記製品の増減分の割当分を、前記第１の周期に属する日の数を用いて算出する算出手段をさらに含むことを特徴とする。
【０００９】
さらに、本発明に係る生産計画自動立案装置は、前記に記載の生産計画自動立案装置において、前記第１の周期に属する日の数は、前記製品の生産を行うことが可能な稼働日の数であり、前記算出手段は、前記稼働日の各々に、当該稼働日の前記第１の周期における順序に応じた係数を設定する係数設定手段を含み、かつ、前記係数設定手段で設定した係数に対応する稼働日に対して、前記割当分として、前記製品の増減分を前記稼働日の数で除した値に、該稼働日に設定された係数を乗じた値を用いることを特徴とする。
【００１０】
また、本発明に係る生産計画自動立案装置は、前記に記載の生産計画自動立案装置において、前記第１の周期は、月を単位とする期間であり、かつ、前記第２の周期は、日を単位とする期間であり、前記制御部は、前記製品を生産すべき計画数の立案対象となる適用期間の基準日付を設定する基準日付設定手段を含み、かつ、前記作成手段は、前記基準日付設定手段で設定した基準日付を含む月の翌月の月末の在庫計画数に関する期末安全在庫数データを用いて、前記翌月に属する日の各々について前記短周期基準安全在庫数データを作成することを特徴とする。
【００１１】
また、本発明に係る生産計画自動立案装置は、前記に記載の生産計画自動立案装置において、前記制御手段は、前記決定手段で決定した複数種類の製品の計画数についてまとめ処理を行うまとめ手段をさらに含むことを特徴とする。
【００１２】
本発明にかかる生産計画自動立案方法は、制御部を備えた生産計画自動立案装置において実行される、製品を生産すべき計画数を立案するための生産計画自動立案方法であって、前記制御部において実行される、前記製品に対する需要予測を考慮して予め定められた、第１の周期における期末の在庫計画数に関する期末安全在庫数データを用いて、前記第１の周期に含まれかつ当該第１の周期よりも相対的に短い第２の周期における在庫計画数に関する短周期基準安全在庫数データを複数作成する作成ステップと、前記第１の周期における前記製品の増減分に関する増減数データを用いて、前記複数の短周期基準安全在庫数データに対応する在庫計画数の各々に、前記増減数データに対応する前記製品の増減分を割り当てることにより、前記作成ステップで作成した前記短周期基準安全在庫数データを更新する更新ステップと、前記更新ステップで得られた短周期基準安全在庫数データと、前記第１の周期における前記製品の引当数に関する引当数データとを用いて、前記第２の周期において前記製品を生産すべき計画数を決定する決定ステップとを含むことを特徴とする。
【００１３】
本発明にかかる生産計画自動立案プログラムは、制御部を備えた生産計画自動立案装置において実行させるための、製品を生産すべき計画数を立案するための生産計画自動立案プログラムであって、前記制御部において実行させるための、前記製品に対する需要予測を考慮して予め定められた、第１の周期における期末の在庫計画数に関する期末安全在庫数データを用いて、前記第１の周期に含まれかつ当該第１の周期よりも相対的に短い第２の周期における在庫計画数に関する短周期基準安全在庫数データを複数作成する作成ステップと、前記第１の周期における前記製品の増減分に関する増減数データを用いて、前記複数の短周期基準安全在庫数データに対応する在庫計画数の各々に、前記増減数データに対応する前記製品の増減分を割り当てることにより、前記作成ステップで作成した前記短周期基準安全在庫数データを更新する更新ステップと、前記更新ステップで得られた短周期基準安全在庫数データと、前記第１の周期における前記製品の引当数に関する引当数データとを用いて、前記第２の周期において前記製品を生産すべき計画数を決定する決定ステップとを含むことを特徴とする。
【００１４】
また、本発明は在庫管理にも適用することができる。この場合、本発明に係る在庫管理装置は、上述した課題を解決するために、物品の在庫数を管理するための、制御部を備えた在庫管理装置において、前記制御部は、前記物品に対する需要予測を考慮して予め定められた、第１の周期における期末の在庫計画数に関する期末安全在庫数データを用いて、前記第１の周期に含まれかつ当該第１の周期よりも相対的に短い第２の周期における在庫計画数に関する短周期基準安全在庫数データを複数作成する作成手段と、前記第１の周期における前記物品の数の増減分に関する増減数データを用いて、前記複数の短周期基準安全在庫数データに対応する在庫計画数の各々に、前記増減数データに対応する前記物品の増減分を割り当てることにより、前記作成手段で作成した前記短周期基準安全在庫数データを更新する更新手段とを備えたことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、需要に変動があっても生産負荷の標準化を図ることができる、という効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、需要増に何も手を打たない場合における在庫割り増しの参考例を示す図である。
【図２】図２は、従来の仕組みで安全在庫数を増減させた場合における計画的在庫割り増しの一例を示す図である。
【図３】図３は、本発明の実施形態において、日別の安全在庫数を設定した場合の計画的在庫割り増しの一例を示す図である。
【図４】図４は、本発明の実施形態に係る生産計画自動立案装置を含む生産計画自動立案システムの構成の一例を示すブロック図である。
【図５】図５は、図４における生産計画自動立案装置１００が実行する処理の処理手順を模式的に示す図である。
【図６】図６は、図５に示すステップＳＡ１における月末在庫計画数データ取込処理及び日割り処理におけるデータの流れを模式的に示す図である。
【図７】図７は、図６に示したワークテーブル０１に格納されたレコードの一例を示す図である。
【図８】図８は、図６に示したワークテーブル０２に格納されたレコードの一例を示す図である。
【図９】図９は、図６に示したワークテーブル０３に格納されたデータの一例を示す図である。
【図１０】図１０は、図６に示したワークテーブル０４に格納されたレコードの一例を示す図である。
【図１１】図１１は、図５のステップＳＡ１において月末在庫計画数データ取込処理を行う際に表示される月末在庫計画数データ取込画面の一例を示す図である。
【図１２】図１２は、ＣＳＶデータマスタ１０６ｄに格納されているＣＳＶレコードのレイアウトの一例を示す図である。
【図１３】図１３は、図５のステップＳＡ１において実行される月末在庫計画数データ取込処理及び日割処理の処理手順を示すフローチャートである。
【図１４】図１４は、図１３のステップＳＢ４〜ＳＢ１０の説明で用いる用語を説明するために用いられる図である。
【図１５】図１５は、図１３のステップＳＢ８においてワークテーブル０４に空レコードをセットする処理を説明するために用いられる図である。
【図１６】図１６は、図１５に示す稼働日順位を示す数値と稼働日との関係の一例を示す図である。
【図１７】図１７は、図１３のステップＳＢ１０において稼働日についての在庫計画数を設定する処理を説明するために用いられる図である。
【図１８】図１８は、図１３のステップＳＢ１０において月末日付レコードにおける在庫計画数を設定する処理を説明するために用いられる図である。
【図１９】図１９は、図１３のステップＳＢ１０において非稼働日についての在庫計画数を設定する処理を説明するために用いられる図である。
【図２０】図２０は、図４における日別在庫計画マスタ１０６ａに対して行われる更新処理を説明するために用いられる図である。
【図２１】図２１は、図５のステップＳＡ２において実行される生産計画自動立案処理の処理手順を示すフローチャートである。
【図２２】図２２は、図２１のステップＳＣ１において品目コード及び出荷予定日に関する情報をワークＤに出力する処理を説明するために用いられる図である。
【図２３】図２３は、図２１のステップＳＣ１において計画立案対象のレコードを、受注ファイルからワークＡに出力する処理を説明するために用いられる図である。
【図２４】図２４は、図２１のステップＳＣ１において計画立案対象のレコードを、内示ファイルからワークＡに出力する処理を説明するために用いられる図である。
【図２５】図２５は、図２１のステップＳＣ２での受注引当ファイル再生成処理において行われる更新処理を説明するために用いられる図である。
【図２６】図２６は、図２１のステップＳＣ２での受注引当ファイル再生成処理において行われる受注ファイルの初期化処理を説明するために用いられる図である。
【図２７】図２７は、図２１のステップＳＣ２での受注引当ファイル再生成処理において行われる生産計画ファイルの初期化処理を説明するために用いられる図である。
【図２８】図２８は、図２１のステップＳＣ２での受注引当ファイル再生成処理において行われる計画引当ファイルの初期化処理を説明するために用いられる図である。
【図２９】図２９は、図２１のステップＳＣ４ａの製番的計画ファイル作成処理において行われる生産計画ファイルの再引当処理を説明するために用いられる図である。
【図３０】図３０は、図２１のステップＳＣ４ａの製番的計画ファイル作成処理において行われる計画引当ファイルの第１の更新処理を説明するために用いられる図である。
【図３１】図３１は、図２１のステップＳＣ４ａの製番的計画ファイル作成処理において行われる受注ファイルの再引当処理を説明するために用いられる図である。
【図３２】図３２は、図２１のステップＳＣ４ａの製番的計画ファイル作成処理において行われる生産計画ファイルの第１の追加処理を説明するために用いられる図である。
【図３３】図３３は、図２１のステップＳＣ４ａの製番的計画ファイル作成処理において行われる計画引当ファイルの第１の追加処理を説明するために用いられる図である。
【図３４】図３４は、図２１のステップＳＣ４ａの製番的計画ファイル作成処理において行われる生産計画ファイルの第２の再引当処理を説明するために用いられる図である。
【図３５】図３５は、図２１のステップＳＣ４ａの製番的計画ファイル作成処理において行われる計画引当ファイルの第２の追加処理を説明するために用いられる図である。
【図３６】図３６は、図２１のステップＳＣ４ｂのＭＲＰ的計画ファイル作成処理において行われるワークＦに１レコードを追加する処理を説明するために用いられる図である。
【図３７】図３７は、図２１のステップＳＣ４ｂのＭＲＰ的計画ファイル作成処理において行われる手配ファイルに手配納期に関する項目をセットする処理を説明するために用いられる図である。
【図３８】図３８は、図２１のステップＳＣ４ｂのＭＲＰ的計画ファイル作成処理において行われる生産計画ファイルに納期に関する項目をセットする処理を説明するために用いられる図である。
【図３９】図３９は、図２１のステップＳＣ４ｂのＭＲＰ的計画ファイル作成処理において行われるワークＤに必要数に関する項目をセットする処理を説明するために用いられる図である。
【図４０】図４０は、図２１のステップＳＣ４ｂのＭＲＰ的計画ファイル作成処理において行われる生産計画ファイルの第２の追加処理を説明するために用いられる図である。
【図４１】図４１は、図２１のステップＳＣ４ｂのＭＲＰ的計画ファイル作成処理において行われる計画引当ファイルの第２の追加処理を説明するために用いられる図である。
【発明を実施するための形態】
【００１７】
本発明の実施形態を図面に基づいて詳細に説明する。なお、本発明は本実施形態により限定されるものではない。
【００１８】
［１．概要］
製品の需要増が見込まれるにも関わらず当該需要増に対して何も手を打たない場合（図１参照）、安定在庫数は一定に設定されたままである。この場合、生産負荷の増大や安全在庫数割れのリスクが増すなどといった問題点がある。そこで、従来では、生産管理（管理コンピュータ）上、見込まれる需要増に備えて、当該需要増が見込まれる月の前の月において、日々の安定在庫数の値を需要増に応じた高い値に設定変更することが行われている（図２参照）。
【００１９】
しかし、従来技術（図２に示す例）では、管理コンピュータ上、安全在庫数の設定が品番ごとに固有の設定になっているため、安全在庫数の設定値を増やす変更を行うと、変更直後の日付における製品の所要量（必要生産量）を計算した結果として、多量の製品を生産すべき旨の生産指示が生産管理情報として発生するという問題点がある。特には、需要増が著しい場合、生産能力を超えた生産指示が生産管理情報として生成される可能性も否定できない。一方で、管理コンピュータ上、安全在庫数の設定値を減らす変更を行ったり、又は、設定値を増やす変更を行った後の日付において元に戻す変更を行ったりすると、変更直後の日付における製品の所要量を計算した結果として、生産すべき製品なしの旨の生産指示情報が発生する（すなわち、生産指示が発生せず）。そして、そのような生産指示に応じてしまうと、生産設備が不稼働になってしまうという問題点がある。
【００２０】
本実施形態は、生産計画における安全在庫数の日別設定と、その設定を加味した所要量の計算とに関するものである。具体的には、本実施形態は、将来の安全在庫数を設定することで、そこへ向けた日割りによる日別の安全在庫数の自動計算を行う機能と、日別の安全在庫数を加味した所要量の計算を行う機能とを技術的思想として含むものであり、本実施の形態では、それら機能によって、将来の安全在庫数の増減分をそれ以前の複数の日にちの安全在庫数に割り当て、割り当てた安全在庫数を生産計画の自動立案に利用する。
【００２１】
本実施形態によれば、将来の需要増に向けた製品在庫の積み増しを計画的に（すなわち段階的に）行うことができるので、繁忙期の生産負荷の低減が実現される。そのため、生産設備の最大生産能力を低下させるか又は最大生産能力の低い生産設備を使用することも可能となる。また、本実施形態によれば、将来の需要減に向けて少なく設定された安全在庫数に応じて生産調整を段階的に行いつつ、製品在庫過剰分についてはその数を減らしていくことができるので、突然の設備の不稼働が回避されるだけでなく、閑散期においても生産設備の生産能力を活用することができる。まとめると、本実施形態によれば、繁忙期の生産負荷の低減を実現することができ、かつ、閑散期においても生産能力を活用することができるので、上述した問題点を解消して、需要に変動があっても生産負荷の標準化を図ることができる（図３参照）。
【００２２】
なお、本実施形態は、製造業（工場などにおける生産業務）における生産管理に限らず、例えば小売業などにおける商品の在庫管理や販売管理などにも適用可能であり、この場合には、在庫管理に要する負荷（例えば、商品の発注業務の負荷）の標準化を図ることができる。
【００２３】
［２．構成］
本実施形態に係る生産計画自動立案装置を含む生産計画自動立案システムの構成の一例について、図４を参照して説明する。図４は、本発明の実施形態に係る生産計画自動立案装置を含む生産計画自動立案システムの構成の一例を示すブロック図である。
【００２４】
図４に示す生産計画自動立案システムは、情報処理装置としての生産計画自動立案装置１００と、サーバ２００と、生産計画自動立案装置１００及びサーバ２００を相互に通信可能に接続するネットワーク３００とを含んでいる。
【００２５】
生産計画自動立案装置１００は、市販のデスクトップ型パーソナルコンピュータであり、製品を生産すべき計画数を立案するための情報処理装置である。なお、生産計画自動立案装置１００は、デスクトップ型パーソナルコンピュータのような据置型情報処理装置に限らず、市販されているノート型パーソナルコンピュータ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、スマートフォン、タブレット型パーソナルコンピュータなどの携帯型情報処理装置であってもよい。
【００２６】
生産計画自動立案装置１００は、制御部１０２と、通信インターフェース部１０４と、記憶部１０６と、入出力インターフェース部１０８とを備えている。生産計画自動立案装置１００が備えている各部は、任意の通信路を介して通信可能に接続されている。
【００２７】
通信インターフェース部１０４は、ルータ等の通信装置及び専用線等の有線又は無線の通信回線を介して、生産計画自動立案装置１００をネットワーク３００に通信可能に接続する。通信インターフェース部１０４は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク３００は、生産計画自動立案装置１００とサーバ２００とを相互に通信可能に接続する機能を有し、例えばインターネットやイントラネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等である。したがって、通信インターフェース部１０４は、図４には図示されていない情報処理装置からの入力情報等を、ネットワーク３００を介して又はネットワーク３００及びサーバ２００を介して受け付けることが可能に構成されているとともに、所定の情報処理装置に対して所定の情報を出力することが可能に構成されている。
【００２８】
記憶部１０６には、各種のデータベース、テーブル、及びファイルなどが格納される。記憶部１０６には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）と協働してＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に命令を与えて各種処理を行うためのコンピュータプログラム（本発明の生産計画自動立案プログラムを含む）が記録される。記憶部１０６として、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、及び光ディスク等を用いることができる。また、この記憶部１０６には、本発明の生産計画自動立案プログラムを実施するために用いられる各種のマスタ（データベース又はテーブル）が書き出し／読み出し可能に格納されている。各種のマスタについては後述する。
【００２９】
入出力インターフェース部１０８には、入力装置１１２及び出力装置１１４が接続されている。出力装置１１４には、モニタ（家庭用テレビを含む）の他、スピーカやプリンタを用いることができる。入力装置１１２には、キーボード、マウス、及びマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置１１４をモニタ１１４とし、入力装置１１２をキーボード１１２またはマウス１１２として記載する場合がある。
【００３０】
制御部１０２は、生産計画自動立案装置１００を統括的に制御するＣＰＵ等である。制御部１０２は、ＯＳ等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。
【００３１】
さらに図４を参照しながら、記憶部１０６の構成と制御部１０２の構成について詳述する。
【００３２】
記憶部１０６には、図４に示す例では、日別在庫計画マスタ１０６ａと、手配条件マスタ１０６ｂと、品目マスタ１０６ｃと、ＣＳＶデータマスタ１０６ｄと、受注データマスタ１０６ｅと、内示データマスタ１０６ｆと、在庫データマスタ１０６ｇと、計画データマスタ１０６ｈとが格納されている。
【００３３】
日別在庫計画マスタ１０６ａは、後述する日別基準安全在庫数データを格納するためのマスタである。この日別基準安全在庫数データは、在庫計画数、品目コード、日付（年月）、安全在庫数（上限）、安全在庫数（下限）、発注点及び発注検討期間等に関する情報を含むレコードである。
【００３４】
手配条件マスタ１０６ｂは、製品の生産又は在庫管理に必要な条件を設定値として格納しておくためのマスタであり、設定値としては、例えば、安全在庫数（上限）、安全在庫数（下限）、発注点、発注検討期間、拠点コード、品目コード、工順、手配パターンに関する情報がある。
【００３５】
品目マスタ１０６ｃは、製品を識別又は特定するための情報を格納するためのマスタである。このマスタには、製品ごとに、例えば、製造拠点コード、品目区分、内示受注計画区分、計画引当区分、計画立案区分、内示受注計画区分、計画まとめ区分、最少計画数、増分計画数、最大計画数、品目名、在庫単位コード、及び出荷場所コードが登録される。
【００３６】
ＣＳＶデータマスタ１０６ｄは、後述する期末安全在庫数データを格納するためのマスタである。この期末安全在庫数データは、月末における製品の在庫計画数（月末在庫計画数）に関する情報が複数月分にわたって記録されているレコードデータであり、フォーマットを予め規定しておけば、例えばテキストデータであってもよい。月末在庫計画数は、需要予測を考慮して予め定められた設定値である。
【００３７】
受注データマスタ１０６ｅは、製品の受注に関する情報を格納するためのマスタである。このマスタには、製品ごとに、例えば、得意先コード、品目コード、生産計画必要区分、完納区分、在庫管理出荷数、在庫引当数、製造完成数、納期、製造出荷日、受注区分、受注番号、品目名、納期、出荷予定日、製造出荷日、在庫管理受注数、在庫管理出荷数、在庫単位コード、在庫単位名、在庫引当場所コード、在庫引当数、製造指示数、製造完成数、生産計画必要区分、生産計画日、計画立案数、及び製番に関する情報が記録されているレコードが格納される。
【００３８】
内示データマスタ１０６ｆは、内示に関する情報を格納するためのマスタある。このマスタには、製品ごとに、例えば、得意先コード、品目コード、内示日、出荷予定日、内示番号、品目コード、内示日、及び内示数に関する情報が記録されているレコードが格納される。
【００３９】
在庫データマスタ１０６ｇは、製品の在庫に関する情報を製品ごとに格納するためのマスタある。このマスタには、製品ごとに、現在の在庫数に関する情報等が記録されているレコードが格納される。
【００４０】
計画データマスタ１０６ｈは、後述する製品の生産計画に関する情報を格納するためのマスタである。
【００４１】
また、図４に示すように、制御部１０２は、機能概念的に、日割り処理部１０２ａと、立案部１０２ｂとを備えている。
【００４２】
日割り処理部１０２ａは、後述する生産計画自動立案方法の在庫管理方法を実行するための手段として機能する。この手段には、短周期基準安全在庫数データを作成する作成手段と、増減数データに対応する製品の増減分の割り当てを行う更新手段とが含まれる。
【００４３】
立案部１０２ｂは、後述する生産計画自動立案方法の生産管理方法を実行するための手段として機能する。この手段には、製品を生産すべき計画数を決定する決定手段が含まれる。
【００４４】
［３．第１の実施形態］
続いて、本発明の第１の実施形態について説明する。具体的には、図４に示す生産計画自動立案装置１００を含む生産計画自動立案システムにおいて実行される第１の実施形態に係る生産計画自動立案方法の処理手順について説明する。なお、本処理の大部分は、図１における生産計画自動立案装置１００の制御部１０２において実行される。この第１の実施形態に係る生産計画自動立案方法は、概略的には、製品の安全在庫数を決定するための在庫管理方法と、当該在庫管理方法において決定した安全在庫数に基づいて製品を生産すべき生産数を決定するための生産管理方法とから構成されており、製品が複数種類にわたる場合には、各製品について本処理が行われる。
【００４５】
第１に、在庫管理方法の処理手順を説明する。この在庫管理方法に係る処理の大部分は、制御部１０２の日割り処理部１０２ａにおいて実行される。また、これらの処理を実行するために、記憶部１０２に所定の作業領域（ワーク）を形成し、当該ワーク上で退避データを作成することが好ましい。
【００４６】
まず、在庫管理方法の第１工程においては、在庫管理の対象となる適用期間の基準日付を決定する（基準日付設定手段）。なお、この在庫管理の対象となる適用期間は、後述する生産管理方法において製品を生産すべき計画数の立案の対象となる適用期間にも該当する。この基準日付は、現在の日付であってもよいし、現在の日付よりも後の日付であってもよい。そして、基準日付を含む月の翌月以降が上記適用期間として設定される。適用期間の末日は、デフォルトで又は任意に設定可能であり、例えば翌々々月の末日（すなわち３か月間）に設定される。
【００４７】
続く第２工程においては、月を単位として予め定められた在庫計画数に関する一連のデータを読み出す。
【００４８】
ここで、在庫計画数とは、製品に対する需要予測を考慮して予め定められた製品の在庫数として予定している数を意味し、通常は、所定の周期ごとに当該周期の期末に予定している在庫数（以下、「期末の在庫計画数」ともいう）として定められる。需要予測は、過去の製造実績を参考になされたものであってもよいし、市場調査によって得られたものであってもよいし、過去の製造実績及び市場調査の結果の双方を勘案したものであってもよい。在庫計画数としては、一般的に、在庫切れが起こらないように、需要予測から見積もられる製品の数を十分に上回る数が設定される。そして、このように設定された複数の連続した周期にわたる期末の在庫計画数のデータ（以下、「期末安全在庫数データ」ともいう）は、記憶部１０６又は外部記憶装置に予め格納しておくことが好ましい。
【００４９】
次に、第３工程においては、第２工程において読み出した一連の期末安全在庫数データから、１か月分の期末安全在庫数データ（例えば、基準日付を含む月の翌月の期末安全在庫数データ）を抽出し、抽出した期末安全在庫数データに対応する月の末日における在庫計画数の値を読み出すとともに、抽出した期末安全在庫数データに対応する月の先月の末日における在庫計画数の値を読み出し、そして、両者の差分（すなわち、１か月後の在庫計画数の増減分）を算出して、その算出結果を増減数データとして取得する（算出手段）。増減数データにおいては、増大分は正の整数で表され、減少分は負の整数で表され、増減がない場合にはゼロで表される。なお、この増減数データには、製品のイレギュラーな移動分（例えば、他の製造拠点への貸し借り分、返品若しくはキャンセルの受け入れ分、及び直送分）に関する情報も含まれていることが好ましい。
【００５０】
続いて、第４工程においては、第３工程において抽出した期末安全在庫数データに対応する月について、該当月の日数の分だけ日別のデータ（以下、「日別基準安全在庫数データ」ともいう）を用意する（作成手段）。日別基準安全在庫数データの初期値はゼロ又はＮｕｌｌであり、本処理が既に行われている場合には、そのときに用意した日別基準安全在庫数データとして設定されている値が用いられる。
【００５１】
次に、第５工程においては、第４工程において用意した複数の日別基準安全在庫数データの各々について、当該日別基準安全在庫数データが、製品の生産を行うことが可能な稼働日についてのデータかどうかを判定するとともに、稼働日であれば、該当月における日にちの順序に応じた係数を設定し（係数設定手段）、一方、稼働日でなければ直前の稼働日に設定した係数と同じ係数を設定する（係数設定手段）。稼働日についての判定は、製品の生産を行う現場のカレンダーに準じて行われる。
【００５２】
そして、第６工程においては、第４工程において用意した日別基準安全在庫数データのうち、第５工程において稼働日であると判定された日別基準安全在庫数データの各々に対して、第３工程において取得した増減数データに対応する製品の増減分を割り当てる。その結果として、日別基準安全在庫数データの更新が行われることとなる（更新手段）。すなわち、この処理によって、日別基準安全在庫数データに割り当てられた増減分に関する値が設定される。
【００５３】
ここで、第６工程における増減分を割り当て方法の一例を説明する。この例は、第５工程において稼働日に設定される係数として、該当月における日にちの順序を示す整数を設定した場合に関する。
【００５４】
増減分を割り当てるために、まず、第３工程において抽出した期末安全在庫数データに対応する月の先月の末日における在庫計画数の値を、割り当ての基準値とし、この値を、稼働日に対応する日別基準安全在庫数データの各々に割り当てる。次に、稼働日に対応する日別基準安全在庫数データに対して、上記係数を用いた傾斜配分を行う。具体的には、増減数データに対応する製品の増減分を稼働日の日数で除算し、日割りの増減分に関する日割り増減数データとして取得し、続いて、取得した増減数データに対応する日割りの増減分に、稼働日に設定した係数としての整数を乗算し、得られた値を、稼働日の日別基準安全在庫数データに割り当てる。すなわち、稼働日に対応する日別基準安全在庫数データには、在庫計画数の基準値に、日割りの増減分と稼働日に設定された係数の乗算結果が加算された値が割り当てられる。これにより、増減分がある場合には（すなわち増減がない場合を除いては）、日別基準安全在庫数データに割り当てられる在庫計画数の値を、稼働日の日付が進むにつれて漸増又は漸減させることができ、他方、増減がない場合においても、稼働日に設定した係数によらず、在庫計画数の基準値を日別基準安全在庫数データに対して割り当てることができる。なお、非稼働日（稼働休止日）に対応する日別基準安全在庫数データに対しては、その前日に割り当てられた在庫計画数の値と同じ値が割り当てられる。さらに、第３工程において抽出した期末安全在庫数データに対応する月の先月の末日における在庫計画数の値を上記の基準値で更新する。
【００５５】
次に、第７工程においては、翌々月分の在庫計画数の設定を行うかどうか判定する。この判定は、第１工程において決定された適用期間に、第３工程で抽出した期末安全在庫数データに対応する月の翌月に対応する期末安全在庫数データが存在するかどうかを判定することで行われる。翌月分の在庫計画数の設定を行う場合には、第１工程に戻って、基準日付を翌月に更新し、第２工程〜第６工程の処理を行う。翌々月分の在庫計画数の設定を行わない場合には、在庫管理方法の全ての処理を完了する。これにより、第１工程において決定された適用期間に属する日の各々に在庫計画数が設定されることとなる。設定された在庫計画数は、日別基準安全在庫数データとして、日別在庫計画マスタ１０６ａに格納される。
【００５６】
第２に、生産管理方法の処理手順を説明する。この生産管理方法に係る処理の大部分は、制御部１０２の立案部１０２ｂにおいて実行される。また、これらの処理を実行するために、記憶部１０２に所定の作業領域（ワーク）を形成し、当該ワーク上で退避データを作成することが好ましい。
【００５７】
まず、生産管理方法の第１工程においては、在庫管理方法の第１工程と同様に基準日付を決定した上で、対象となる製品について、生産拠点における受注に関する受注ファイルと引当に関する計画引当ファイルの読み出しを行う。読み出した受注ファイル及び計画引当ファイルは、必要に応じて、ワーク上で、初期化や不要なデータの削除が行われる。
【００５８】
続いて、第２工程においては、対象となる製品について、生産拠点ごとに、製品の生産計画に係る生産計画ファイルを日別で作成する。具体的には、生産計画ファイルに、対象となる製品を生産すべき計画数を設定する（決定手段）。対象となる製品を生産すべき計画数は、該当する日付における在庫数と、第１工程において読み出した受注ファイルにおける製品の受注数及び納期に関するデータと、計画引当ファイルにおける引当数に関するデータと、上述した在庫管理方法に係る処理で作成した日別のデータに設定された在庫計画数とに基づいて設定される。ここで、該当する日付における在庫数は、該当する日付において既に生産完了して出荷済みの製品の数を示す完成数や出荷前のリードタイムも考慮される。概略的には、対象となる製品を生産すべき計画数は、在庫計画数から、引当数及び完成数を減算することで定まる。より好ましくは、１ロットに含まれる数を考慮して対象となる製品を生産すべき計画数を定める。なお、用いるデータの不足等により、生産計画ファイルが作成できていない場合等には、手配条件マスタ１０６ｂから読み出した手配条件、例えば、安全在庫数の上限値、下限値、又は所定の発注点を用いて、対象となる製品を生産すべき計画数として設定することが好ましい。
【００５９】
そして、第３工程においては、別の生産拠点についても上述した第１工程〜第２工程の処理を行う。ここで、必要に応じて、全ての生産拠点についての製品の計画数の集計を行ってもよい。さらに、第４工程においては、他の製品についても生産管理を行う場合には、上述した第１〜第３工程の処理を行う。なお、第３工程及び第４工程に代えて、又は、並行して、各生産拠点について複数種類の製品の計画数の集計（まとめ処理）を行ってもよい（まとめ手段）。そして、生産管理方法に係るすべての処理を完了する。
【００６０】
上述した第１の実施形態に係る生産計画自動立案方法によれば、在庫管理に際し、製品に対する需要予測を考慮して予め定められた所定の月における期末の在庫計画数に関する期末安全在庫数データを用いて、当該所定の月に属する日における在庫計画数に関する日別基準安全在庫数データを当該月に属する日の数の分だけ作成し（在庫管理方法の第４工程）、そして、上記の所定の月における製品の増減分に関する増減数データを用いて（在庫管理方法の第３工程）、日別基準安全在庫数データに対応する在庫計画数の各々に、増減数データに対応する製品の増減分を割り当てることにより、作成した日別基準安全在庫数データを更新する（在庫管理方法の第６工程）ので、上記の所定の月における期末の在庫計画数（製品の需要）に変動があっても、安全在庫数を確保しつつ、当該所定の月の期末の在庫計画数の増減分を日割りで配分することができる。すなわち、当該所定の月の期末の在庫計画数の増減分を当該所定の月において均して標準化することができる。また、基準日付を更新することで（在庫管理方法の第７工程）、さらに先の在庫計画数を決定することができる。
【００６１】
また、上述の在庫管理に際し、稼働日であると判定された日別基準安全在庫数データの各々に対して、増減数データに対応する製品の増減分を割り当てる（在庫管理方法の第６工程）ので、稼働日、すなわち在庫数の調整が可能な日を選択して在庫管理を行うことができるとともに、生産管理の観点からも非稼働日を製品の生産に充てる必要をなくすことができる。さらには、在庫管理方法の第６工程においては、増減分を割り当てるために、稼働日に設定される係数を用いて傾斜配分を行って、日別基準安全在庫数データに割り当てられる在庫計画数の値を、稼働日の日付が進むにつれて漸増又は漸減させるので、生産設備及び生産体制を考慮した日割りで増産量の積み増し又は減産量の調整を行うことができ、これにより、製品の生産負荷が急増又は急減するのを回避することができる。
【００６２】
また、本実施形態に係る生産計画自動立案方法によれば、生産管理に際し、在庫管理方法を用いて得られた日別基準安全在庫数データと、上記の所定の月における製品の引当数に関する引当数データとを用いて、上記の所定の月に属する日において製品を生産すべき計画数を決定する（生産管理方法の第２工程）ので、基準日付を含む月の翌月からの生産計画が自動的に立案されることとなる。この結果、上記の所定の月における期末の在庫計画数（製品の需要）に変動があっても、安全在庫数を確保しつつ、当該期末の在庫計画数に応じた製品の増産量又は減産量の絶対値を当該所定の月において均すことができ、これにより、期末に向けて増産又は減産を段階的に行うこと、すなわち生産負荷の標準化を図ることができる。また、基準日付を変更又は更新することで、さらに先の生産計画を立案することもできる。
【００６３】
なお、「月に属する日の数」とは、上記生産管理方法を考慮する上では、上述のとおり、製品の生産を行う稼働日の数であることが好ましいが、生産管理方法を考慮せずに在庫管理のみに着目する場合には、単に、該当月に属する日の数としてもよく、この場合には、在庫数を考慮して必要な在庫数を算出して生産現場へ発注するか、又は、生産管理に際して稼働日を考慮した生産計画を立案することが好ましい。
【００６４】
また、上述した第１の実施形態においては、月を単位とする期間（周期）についてのデータ（期末安全在庫数データ）を用いて、日を単位とする期間（周期）についてのデータ（日別基準安全在庫数データ）を作成しているが、期間の単位は、月日に限られることはなく、相対的に長い期間についてのデータを用いて相対的に短い期間についてのデータが作成されればよく、これにより、上述した効果と同等の効果を奏することができる。
【００６５】
［４．第１の実施形態の具体例］
続いて、上述した第１の実施形態に係る生産計画自動立案方法の具体例について、図５から図４１までを参照して説明する。
【００６６】
［４−１．処理概要］
本具体例で実行される、月末安全在庫数に向けた生産計画自動立案の処理の概要について、図５から図１２等を参照して説明する。図５は、図４における生産計画自動立案装置１００が実行する処理の処理手順を模式的に示す図である。
【００６７】
［ステップＳＡ１：月末在庫計画数データ取込と日割り処理］
日割り処理部１０２ａは、ＣＳＶデータマスタ１０６ｄを参照して月末安全在庫数をテキストデータ（ＣＳＶファイル）にて取込む（図６参照）。そして、日割り処理部１０２ａは、取り込んだデータ（期末安全在庫数データ）を各種ワークテーブルで処理して、日割りによる日別安全在庫数のデータ（日別基準安全在庫数データ）を作成し、作成したデータを日別在庫計画マスタ１０６ａに設定（格納）する（図６参照）。
【００６８】
ここで、図６に示したワークテーブル０１（名称：“ＷＦ＿”＋ＪＯＢＩＤ＋“０１”）には、ＣＳＶファイル読込データ（文字列状態）のエラーチェック結果を記録したレコード（図７参照）が格納される。図６に示したワークテーブル０２（名称：“ＷＦ＿”＋ＪＯＢＩＤ＋“０２”）には、エラーチェックの結果がＯＫであったＣＳＶレコード（図８参照）が格納される。また、図６に示したワークテーブル０３（名称：“ＷＦ＿”＋ＪＯＢＩＤ＋“０３”）には、エラーリスト用データ（図９参照）が格納される。また、図６に示したワークテーブル０４（名称：“ＷＦ＿”＋ＪＯＢＩＤ＋“０４”）には、日割り処理後のレコード（図１０参照）が格納される。
【００６９】
図１１は、図５のステップＳＡ１において月末在庫計画数データ取込処理を行う際に表示される月末在庫計画数データ取込画面の一例を示す図である。
【００７０】
この月末在庫計画数データ取込画面は、図１１に示されるように、取込対象のファイルを選択するための領域と、取込対象のファイルの先頭行がタイトルであることを選択（チェック）するための領域と、これから更新しようとするデータと同一のデータ（コード）がある場合の処理を選択するための領域と、取込開始年月を入力するための領域と、取込対象年月を入力するための領域とを含んでいる。ここで、取り込むデータに関し、先頭行からデータが格納されていることが予め判明している場合、先頭行がタイトルであることを選択するための領域については「チェックなし」で固定されていてもよいし、又は、先頭行がタイトルであることを選択するための領域を非表示にしてもよいし、若しくは、当該領域を設けなくてもよい。また、取込開始年月を入力するための領域の初期表示は、ユーザの手間を省くために、現在の日付（年月）とすることが好ましい。また、取込開始年月を入力するための領域の入力値に基づいて、取込対象年月を入力するための領域には「入力年月」と、「その翌月」と、「その翌々月」とを表示する。
【００７１】
図１２は、ＣＳＶデータマスタ１０６ｄに格納されているＣＳＶレコードのレイアウトの一例を示す図である。図１２に示すように、ＣＳＶレコードには、複数か月分（図１２に示す例では３か月分）の月末在庫計画数が記録されている。なお、レコードの１行目に「データ名」を記録してもよく、この場合、データ行は２行目からとなる。また、数値項目は、「￥」、「−」、「，」、「．」を含んでいてもよい。また、データＮｏ欄に記入がないものは、読み込み時に無視されるので、入力時のメモとして利用してもよい。また、途中に空行が見つかった場合、それ以降を読み飛ばしてもよい。
【００７２】
［ステップＳＡ２：生産計画自動立案］
立案部１０２ｂは、ステップＳＡ１にて作成された日別安全在庫数のデータに基づいて、生産管理上の計画数を決定する。なお、日別安全在庫の設定がない製品（品目）については、手配条件マスタ１０６ｂに設定されている安全在庫数を生産管理上の計画数として採用する。
【００７３】
以上で、［４−１．処理概要］の説明を終了する。
【００７４】
［４−２．月末在庫計画数データ取込処理及び日割り処理の詳細］
本具体例で実行される、月末在庫計画数データ取込と日割り処理について、図１３から図２０までを参照して詳細に説明する。図１３は、図５のステップＳＡ１において実行される月末在庫計画数データ取込処理及び日割処理の処理手順を示すフローチャートである。
【００７５】
ここで、本説明では、ワークテーブル０２（ワーク０２）に、チェックＯＫのＣＳＶレコード（「翌月末在庫計画数」、「翌々月末在庫計画数」及び「翌々々月末在庫計画数」）が格納されているものとする。また、本説明において、データ名に付した「＠」は、変数を示す記号である。また、本説明において、クライアント名（クライアントＮｏ）が指定されているものとする。
【００７６】
［ステップＳＢ１：カーソルを作成］
日割り処理部１０２ａは、ワーク０２のデータを下記に示す抽出条件に従って抽出して、カーソル（以下、「カーソルＡ」という）を作成（データ領域特定）する。このカーソルＡは、以下に示すソート順で、作成（データ領域移動）される。具体的には、ステップＳＢ１〜ＳＢ１０の処理を、ループ処理として実行する。すなわち、行ＮｏごとにステップＳＢ１〜ＳＢ１０の処理が行われる。これにより、全ての行Ｎｏについてのカーソル作成が行われることとなる。
＜抽出条件＞
ワーク０２．クライアントＮｏ＝クライアント名
＜ソート順＞
ワーク０２．行Ｎｏ
【００７７】
［ステップＳＢ２：削除処理］
日割り処理部１０２ａは、下記に示す抽出条件に従って、「これから更新しようとするカーソルＡと同一データが、ワークテーブル０４（ワーク０４）に既に存在するか」をチェックする。
＜抽出条件＞
ワーク０４．クライアントＮｏ＝クライアント名
＆ワーク０２．クライアントＮｏ＝クライアント名
＆ワーク０４．品目コード＝カーソルＡ．品目コード
【００７８】
上記チェックの結果、上記抽出条件に合致するデータが存在しなかった場合、日割り処理部１０２ａは、後述するステップＳＢ３の処理を実行する。上記チェックの結果、上記抽出条件に該当するデータが存在していた場合、日割り処理部１０２ａは、以下に説明する処理を行う。なお、画面．同一コード（図１１に示した月末在庫計画数データ取込画面の同一のデータ（コード）がある場合の処理を選択するための領域）の選択値によって、日割り処理部１０２ａは、処理を分岐させる。
（画面．同一コード＝上書きの場合）
日割り処理部１０２ａは、上記抽出条件に合致したワーク０４のレコードを全て削除して、そのままステップＳＢ３の処理へ進む。
（画面．同一コード＝読み飛ばしの場合）
日割り処理部１０２ａは、ステップＳＢ１で作成したカーソルＡについての以降の処理をスキップし、ステップＳＢ１の処理に戻る。すなわち、カーソルＡの次行へ進む。
【００７９】
［ステップＳＢ３：安全在庫数下限値取得］
日割り処理部１０２ａは、手配条件マスタ１０６ｂを下記に示す抽出条件でリード（参照）して、安全在庫数の下限値（＠安全在庫数下限）を取得する。ここで、安全在庫数の下限値は、標準手配パターンＭにおいて標準パターンＣＤごとに設定されているか、又は基本情報ＭのパターンＣＤに応じて設定されている。そこで、日割り処理部１０２ａは、品目Ｍ「製造拠点コード」及びカーソルＡ「品目コード」をＫＥＹとして、標準手配パターンＭを検索して、標準パターンＣＤを特定する。
＜抽出条件＞
拠点コード＝品目Ｍ「製造拠点コード」
品目コード＝カーソルＡ「品目コード」
工順＝９９９
パターンＣＤ＝標準手配パターンＭ．標準パターンＣＤ（なければ基本情報Ｍ．パターンＣＤ）
【００８０】
次に、日割り処理部１０２ａは、ワーク０２の「翌月末在庫計画数」、「翌々月末在庫計画数」及び「翌々々月末在庫計画数」の３つの項目に関連して、以下に説明するステップＳＢ４〜ＳＢ１０の処理を順番に実行する。このために、「翌月末在庫計画数」、「翌々月末在庫計画数」及び「翌々々月末在庫計画数」の各場合について、図１４に示すように、項目名＜基準日付＞、＜計算対象日付＞、及び＜月末在庫計画数＞を読み替えながら、ループ処理が行われる。また、＜月末在庫計画数＞の各々の値が、安全在庫数下限の値より小さい場合は、＜月末在庫計画数＞を＠安全在庫数下限に読み替えるものとする。
【００８１】
［ステップＳＢ４：各変数の初期化］
日割り処理部１０２ａは、下記に示すように各変数の初期化を行う。
＠基準月末在庫計画数＝０
＠増減数＝０
＠翌年月＝ＮＵＬＬ
＠合計稼働日数＝０
＠日別増減数＝０
【００８２】
［ステップＳＢ５：基準月末在庫計画数取得］
日割り処理部１０２ａは、下記の抽出条件を用いて、「＜基準日付＞」の月末の日別在庫計画Ｍ．在庫計画数（＠基準月末在庫計画数）を取得する（ステップＳＢ５）。
＜抽出条件＞
日別在庫計画Ｍ．品目コード＝カーソルＡ．品目コード
日別在庫計画Ｍ．日付（年月）＝＜基準日付＞（年月）
ここで、上記抽出条件で取得可能なレコードのうち、「最大の日付」レコードの在庫計画数を、＠基準月末在庫計画数として取得する。
【００８３】
［ステップＳＢ６：増減数取得］
日割り処理部１０２ａは、「カーソルＡ．＜月末在庫計画数＞−＠基準月末在庫計画数」の値（＠増減数）を取得する。
【００８４】
［ステップＳＢ７：計算対象日付取得］
日割り処理部１０２ａは、「＜計算対象日付＞」の値（＠翌年月）を取得する。
【００８５】
［ステップＳＢ８：合計稼働日数取得］
日割り処理部１０２ａは、＠翌年月の１日〜末日までの空レコードをワーク０４へセットする（図１５参照）。
【００８６】
なお、図１５に示す稼働区分は、カレンダーＭを下記の抽出条件に従って参照することにより取得される（図１５に示す※１）。ここで、稼働区分を示す値は、稼働日では“１”であり、非稼働日（稼働休止日）では“０”である。
＜抽出条件＞
カレンダーＭ．拠点コード＝品目Ｍ．製造拠点コード（カーソルＡ．品目コードで品目Ｍリード）  →万が一インバリッドの場合、「０００」でリード
＆カレンダーＭ．年月日＝＠翌年月（１日〜末日）
【００８７】
また、図１５に示す稼働日順位を示す数値（図１５に示す※２）については、図１６に示される例のように、日付順で稼働日（稼働区分＝１）が現れるたびにインクリメントを行うことで取得する。
そして、日割り処理部１０２ａは、翌年月の合計稼働日数（＠合計稼働日数）を取得する。なお、合計稼働日数の値は、稼働日順位を示す数値の最大値と同一であるので、容易に取得可能である。
【００８８】
［ステップＳＢ９：日別増減数取得］
日割り処理部１０２ａは、「＠増減数÷＠合計稼働日数」の値（＠日別増減数）を取得する。この値は、例えば、小数点以下４桁目を四捨五入することにより得られる小数点以下３桁の数値である。
【００８９】
［ステップＳＢ１０：計画在庫数を更新］
日割り処理部１０２ａは、翌年月の１日〜末日のレコードに対して、下記条件に合致する稼働日について図１７に示すように在庫計画数を設定する。図１７に示す例では、各レコードに対して、稼働日順位に応じた値を用いることによって増産分の積み増し（漸増）又は減産分の調整（漸減）が行うことが可能となっている。
＜条件＞
ワーク０４．クライアントＮｏ＝クライアント名
ワーク０４．品目コード＝カーソルＡ．品目コード
ワーク０４．日付（年月）＝＠翌年月
ワーク０４．稼動区分＝１（稼動）
【００９０】
さらに、日割り処理部１０２ａは、下記の条件に合致するレコードのうち、ワーク０４．日付が最大のもの（すなわち、該当月のうち稼働日の最終日に対応するレコード）の在庫計画数の値を取得して、月末日付レコードにおける在庫計画数の値として、＠基準月末在庫計画数と同じ値を設定する（図１８参照）。これにより、月末日付レコードに＠基準月末在庫計画数が設定されることとなる。
＜条件＞
ワーク０４．クライアントＮｏ＝クライアント名
ワーク０４．品目コード＝カーソルＡ．品目コード
ワーク０４．稼動区分＝１
ワーク０４．日付（年月）＝＠翌年月
【００９１】
一方、日割り処理部１０２ａは、下記の条件に合致する“非稼働日（稼働休止日）分の”レコードについて、図１９に示すように、在庫計画数を設定する。これにより、翌年月の１日〜末日のレコードが更新される。
＜条件＞
ワーク０４．クライアントＮｏ＝クライアント名
ワーク０４．品目コード＝カーソルＡ．品目コード
ワーク０４．日付（年月）＝＠翌年月
ワーク０４．稼動区分＝０（休止）
なお、図１９に示す非稼働日に設定される在庫計画数（図１９に示す※１）に関し、「ワーク０４．日付−１日」が前月日付（すなわち前月の末日）に該当する場合は、＠基準月末在庫計画数の値を在庫計画数の値として設定する。
【００９２】
そして、引き続いてさらに翌月分等についての処理を行う場合には、ステップＳＢ４の処理に戻り、次の行Ｎｏについての処理を行う場合には、ステップＳＢ１の処理に戻り、全ての行Ｎｏについての処理が終わったら、本処理を完了する。
【００９３】
ところで、日割り処理部１０２ａは、所定のタイミング又は任意のタイミングにおいて日別在庫計画マスタの更新処理を行う場合、下記に示す条件に合致する日別在庫計画Ｍのレコードを削除して、ワークテーブル０４の「クライアントＮｏ」が一致するレコードの安全在庫数を、日別在庫計画Ｍへ追加（登録）する（図２０参照）。これにより、日別在庫計画マスタにおけるレコードが更新されることとなる。なお、該当マスタにおいて、レコードがインバリッド時は、安全在庫数として、ＮＵＬＬをセットする。
＜条件＞
日別在庫計画Ｍ．品目コード＝ワーク０４．品目コード
日別在庫計画Ｍ．日付（年月）＝ワーク０４．日付（年月）
ワーク０４．クライアントＮｏ＝クライアント名
【００９４】
以上で、［４−２．月末在庫計画数データ取込処理及び日割り処理の詳細］の説明を終了する。
【００９５】
［４−３．生産計画自動立案処理の詳細］
本具体例で実行される、生産計画自動立案処理について、図２１から図４１までを参照して詳細に説明する。図２１は、図５のステップＳＡ２において実行される生産計画自動立案処理の処理手順を示すフローチャートである。
【００９６】
図２１に示す処理を実行するに先立って、得意先ＣＤ（得意先コード）、品目ＣＤ（品目コード）、品目諸口区分、製造拠点コード、受注納期、製造納期及び計画日等の必要な情報については、所定のデータ入力画面を介して予め入力がなされているものとする。なお、以下の説明においては、「受注データマスタ１０６ｅ」を「受注Ｆ」と、「品目マスタ１０６ｃ」を「品目Ｍ」と、「内示データマスタ１０６ｆ」を「内示Ｆ」と、「手配条件マスタ１０６ｂ」を「手配条件Ｍ」とも表記する場合がある。
【００９７】
［ステップＳＣ１：受注ファイル、内示ファイル抽出］
立案部１０２ｂは、以下に示す（１０）〜（１１）の処理を行う。
【００９８】
（１０）立案部１０２ｂは、以下に示す（１０ａ）〜（１０ｃ）の処理を行うことにより、計画立案対象のレコードを受注Ｆから抽出して、ワークテーブルＡ（ワークＡ）に出力する。
【００９９】
（１０ａ）立案部１０２ｂは、受注Ｆから、下記の条件に合致するレコードとして、最終確注日が定まっている品目についてのレコード（すなわち出荷予定日を示す数値の最大値のレコード）を抽出して、それらの品目コード及び出荷予定日に関する情報をワークテーブルＤ（ワークＤ）に出力する（図２２参照）。
＜条件＞
受注Ｆ．得意先コード＝画面．得意先コード（画面．得意先ＣＤ＝ＮＵＬＬの時は条件に含めない）
受注Ｆ．品目コード＝画面．品目コードの範囲内（画面．品目ＣＤＭｉｎ，Ｍａｘ＝ＮＵＬＬの時は条件に含めない）
画面．品目ＣＤＭｉｎ＝ＮＵＬＬの時、受注Ｆ．品目コード≦画面．品目コードＭａｘ
画面．品目ＣＤＭａｘ＝ＮＵＬＬの時、受注Ｆ．品目コード≧画面．品目コードＭｉｎ
【０１００】
（１０ｂ）立案部１０２ｂは、受注Ｆから、下記の条件に合致する計画立案対象のレコードを抽出する。
＜条件＞
受注Ｆ「品目諸口区分」＝０（一般）
＆品目Ｍ「製造拠点コード」＝画面「製造拠点ＣＤ」
＆受注Ｆ「生産計画必要区分」≠０
＆品目Ｍ「品目区分」≠９９
＆受注Ｆ「完納区分」≠１  ｏｒ  ｛受注Ｆ「完納区分」＝１＆同「在庫管理出荷数」＞同「在庫引当数」＋同「製造完成数」｝
＆受注Ｆ「納期」≦画面「受注納期」（画面「受注納期」＝ＮＵＬＬの時は条件に含めない）
＆受注Ｆ「製造出荷日」≦画面「製造納期」（画面「製造納期」＝ＮＵＬＬの時は条件に含めない）
＆受注区分≠２（内示受注）  ｏｒ  ｛受注区分＝２（内示受注）＆品目Ｍ「内示受注計画区分」≠０（計画立案しない）｝
＆受注Ｆ．得意先コード＝画面．得意先コード（画面．得意先ＣＤ＝ＮＵＬＬの時は条件に含めない）
＆受注Ｆ．品目コード＝画面．品目コードの範囲内（画面．品目ＣＤＭｉｎ，Ｍａｘ＝ＮＵＬＬの時は条件に含めない）
画面．品目ＣＤＭｉｎ＝ＮＵＬＬの時、受注Ｆ．品目コード≦画面．品目コードＭａｘ
画面．品目ＣＤＭａｘ＝ＮＵＬＬの時、受注Ｆ．品目コード≧画面．品目コードＭｉｎ
【０１０１】
（１０ｃ）立案部１０２ｂは、（１０ｂ）で抽出した計画立案対象のレコードを、ワークＡに出力する（図２３参照）。なお、図２３に示す安全在庫数、発注点、及び発注検討期間の値（図２３における注１）については、以下に示すｉ）〜ｉｉｉ）の処理をこの順で行うことによって、求められる。
ｉ）初期値として０を設定する。
ｉｉ）手配条件Ｍを、製造拠点コード＋品目コード＋工順［９９９］＋パターン［１］にてリードする。ただし、各項目がＮＵＬＬの場合及び手配条件Ｍインバリット時は０とする。一方、バリット時には、リードの結果として取得した値を用いて、以下のように各項目を設定（セット）する。
ワークＡ．安全在庫数（上限）←手配条件Ｍ．安全在庫数（上限）
ワークＡ．安全在庫数（下限）←手配条件Ｍ．安全在庫数（下限）
ワークＡ．発注点            ←手配条件Ｍ．発注点
ワークＡ．発注検討期間      ←手配条件Ｍ．発注検討期間
ｉｉｉ）日別在庫計画Ｍを、品目コード＋出荷予定日にてリードし、バリット時には、安全在庫数の上限及び発注点について、リードの結果として取得した値を用いて、以下のように上書きを行う。
ワークＡ．安全在庫数（上限）←日別在庫計画Ｍ．在庫計画数
ワークＡ．発注点            ←日別在庫計画Ｍ．在庫計画数
なお、安全在庫数の下限については手配条件Ｍからのセットのみである。
【０１０２】
（１１）立案部１０２ｂは、以下に示す（１１ａ）〜（１１ｃ）の処理を行うことにより、計画立案対象の内示Ｆからレコードを抽出して、ワークＡに追加出力する。
【０１０３】
（１１ａ）立案部１０２ｂは、受注Ｆから、下記の条件に合致する計画立案対象のレコードを抽出する。これにより、内示受注に関するレコードが抽出される。
＜条件＞
品目Ｍ．製造拠点コード＝画面．製造拠点コード
＆内示Ｆ．得意先コード＝画面．得意先コード（画面．得意先ＣＤ＝ＮＵＬＬの時は条件に含めない）
＆内示Ｆ．品目コード＝画面．品目コードの範囲内（画面．品目ＣＤＭｉｎ，Ｍａｘ＝ＮＵＬＬの時は条件に含めない）
画面．品目ＣＤＭｉｎ＝ＮＵＬＬの時、内示Ｆ．品目コード≦画面．品目コードＭａｘ
画面．品目ＣＤＭａｘ＝ＮＵＬＬの時、内示Ｆ．品目コード≧画面．品目コードＭｉｎ
＆内示Ｆ．内示日≦画面．受注納期（画面．受注納期＝ＮＵＬＬの時は条件に含めない）
＆内示Ｆ．内示日≦画面．製造納期（画面．製造納期＝ＮＵＬＬの時は条件に含めない）
＆内示Ｆ．内示日≧画面．計画日
ただし、下記条件にマッチしたレコードについては、この（１１ａ）で抽出されたとしても、以下の（１１ｂ）では出力されないか、又は、出力されたとしても、既にデータがあれば上書きしないように設定されている。
＜条件＞
内示Ｆ．品目コード＝ワークＡ．品目コード
＆内示Ｆ．出荷予定日＝ワークＡ．出荷予定日
＆ワークＡ．完納区分≠１１
【０１０４】
（１１ｂ）立案部１０２ｂは、（１１ａ）で抽出したレコードをワークＡに出力する（図２４参照）。
ここで、図２４に示す製造出荷日の値（図２４における注１）は、以下に示すように求めて設定される。なお、用いる用語等は、共通仕様である稼働日算出処理で用いた用語に準ずる。すなわち、製造出荷日（基準日）は、出荷予定日に倉入リードタイムを考慮して決定される。
基準日：出荷予定日−倉入ＬＴ
ＬＴ：０
拠点コード：製造拠点コード
増減区分：２（過去）
なお、上記の倉入ＬＴの値としては、倉入ＬＴＭ（マスタ）において、出荷場所コード＋製造拠点コードをＫＥＹとして読み出した「倉入ＬＴ」の値を用いる。ただし、ＩＮＶ（引当）時には、基本情報Ｍにおける「倉入ＬＴ」の値を用いる。
【０１０５】
また、図２４に示す安全在庫数、発注点、及び発注検討期間の値（図２４における注２）については、以下に示すｉ）〜ｉｉｉ）の処理をこの順で行うことによって、求められる。
ｉ）初期値として０を設定する。
ｉｉ）手配条件Ｍを、製造拠点コード＋品目コード＋工順［９９９］＋パターン［１］にてリードする。ただし、各項目がＮＵＬＬの場合及び手配条件Ｍインバリット時は０とする。一方、バリット時には、リードの結果として取得した値を用いて、以下のように各項目を設定（セット）する。
ワークＡ．安全在庫数（上限）←手配条件Ｍ．安全在庫数（上限）
ワークＡ．安全在庫数（下限）←手配条件Ｍ．安全在庫数（下限）
ワークＡ．発注点            ←手配条件Ｍ．発注点
ワークＡ．発注検討期間      ←手配条件Ｍ．発注検討期間
ｉｉｉ）日別在庫計画Ｍを、品目コード＋出荷予定日にてリードし、バリット時には、安全在庫数の上限及び発注点について、リードの結果として取得した値を用いて、以下のように上書きを行う。
ワークＡ．安全在庫数（上限）←日別在庫計画Ｍ．在庫計画数
ワークＡ．発注点            ←日別在庫計画Ｍ．在庫計画数
なお、安全在庫数の下限については手配条件Ｍからのセットのみである。
【０１０６】
（１１ｃ）立案部１０２ｂは、（１１ｂ）でワークＡに出力したレコードを対象として、受注引当ファイル（以下、「受注引当Ｆ」，「受注引当在庫Ｆ」ともいう）の再生成を行う。この受注引当Ｆ再生成処理においては、現在の在庫数に対する受注残分の在庫引当が行われ、これにより、受注の対象となっていない在庫数がより明らかとなる。なお、受注引当ファイルは、在庫引当数について新規設定及び変動の旨の入力があった場合に更新される。
【０１０７】
ここで、図２５等を参照して、受注引当Ｆ再生成処理について説明する。立案部１０２ｂは、受注引当Ｆ再生成処理を、以下の手順（１）〜（５）で行う。
【０１０８】
（１）立案部１０２ｂは、ワークＡにおける複数のレコードについて、「品目コード」＞「出荷拠点コード」＞「出荷場所コード」＞「出荷予定日」＞「受注番号」の順でソートする。これにより、以下に示す（２）〜（４）の処理が完了するたびにソート順で次のレコードがリードされる。ただし、完納区分＝１１（キャンセル）の条件に合致するレコードは読み飛ばされる。
【０１０９】
（２）品目コード＋“９９９”＋出荷拠点コード＋出荷場所コードで現在在庫Ｆをリードして、現在庫数を「ワーク現在庫数」として取得する。ただし、資産区分＝１（自社資産）、状態区分＝０（通常）  ｏｒ  １（未検査）のレコードのみについて、現在庫数の取得が行われる。
【０１１０】
（３）品目コード＋“９９９”＋出荷拠点コード＋出荷場所コードで受注引当在庫Ｆをリードし、図２５に示されるような更新（ＩＮＶ時には追加）を行う。
【０１１１】
（４）ワークＡ．受注番号にて受注Ｆをリードして、ワーク現在庫数に応じて、以下に示す（４−１）又は（４−２）の更新を行う。
（４−１）「ワーク現在庫数」≧（ワークＡ．在庫管理受注数−ワークＡ．在庫管理出荷数）の場合
・内示データ区分＝０（受注）のときのみ
受注Ｆ．在庫引当数←受注Ｆ．在庫管理受注数
受注Ｆ．製造指示数←０
・受注引当在庫Ｆ．受注引当数←受注Ｆ．在庫管理受注数を加算
・ワークＡ．計画立案必要数←０
・「ワーク現在庫数」←（ワークＡ．在庫管理受注数−ワークＡ．在庫管理出荷数）を減算
（４−２）「ワーク現在庫数」＜（ワークＡ．在庫管理受注数−ワークＡ．在庫管理出荷数）の場合
・内示データ区分＝０（受注）のときのみ
受注Ｆ．在庫引当数←受注Ｆ．在庫管理出荷数＋「ワーク現在庫数」
受注Ｆ．製造指示数←（ワークＡ．在庫管理受注数−ワークＡ．在庫管理出荷数）−「ワーク現在庫数」
・受注引当在庫Ｆ．受注引当数←「ワーク現在庫数」を加算
・ワークＡ．計画立案必要数←上記計算後．製造指示数
・「ワーク現在庫数」←０
【０１１２】
（５）上記（４）の更新処理は、ワークＡ．品目コード＋出荷拠点コード＋出荷場所コードがブレークするまで繰り返し行われる。ブレークした場合、上記（１）に戻って、他のレコードについても上述した処理を行う。
【０１１３】
［ステップＳＣ２：初期化、削除処理］
立案部１０２ｂは、以下に示す（２０）〜（２４）の処理を行う。
【０１１４】
（２０）立案部１０２ｂは、ワークＡに出力したレコードを対象として、受注Ｆの初期化処理を行う。この処理の詳細は、図２６に示されている。これにより、受注ファイルが更新される。
【０１１５】
（２１）立案部１０２ｂは、下記の条件に合致するレコードを対象として、生産計画Ｆの初期化処理を行う。この処理の詳細は、図２７に示されている。これにより、生産計画ファイルが更新される。
＜条件＞
生産計画Ｆ「製造拠点コード」＝画面「製造拠点ＣＤ」
＆品目Ｍ．メーカーコード＝画面．得意先コード（画面．得意先ＣＤ＝ＮＵＬＬの時は条件に含めない）
＆計画引当Ｆ．品目コード＝画面．品目コードの範囲内（画面．品目ＣＤＭｉｎ，Ｍａｘ＝ＮＵＬＬの時は条件に含めない）
画面．品目ＣＤＭｉｎ＝ＮＵＬＬの時、計画引当Ｆ．品目コード≦画面．品目コードＭａｘ
画面．品目ＣＤＭａｘ＝ＮＵＬＬの時、計画引当Ｆ．品目コード≧画面．品目コードＭｉｎ
【０１１６】
（２２）立案部１０２ｂは、下記の条件に合致するレコードを不要データとして、計画引当Ｆから削除する。さらに、計画引当ファイルから削除対象としたレコードに紐づいている生産計画ファイルであって、生産計画Ｆ「所要量計算日」＝ＮＵＬＬの条件に合致する生産計画ファイルも削除される。
＜条件＞
生産計画Ｆ「製造拠点コード」＝画面「製造拠点ＣＤ」
＆品目Ｍ．メーカーコード＝画面．得意先コード（画面．得意先ＣＤ＝ＮＵＬＬの時は条件に含めない）
＆計画引当Ｆ．品目コード＝画面．品目コードの範囲内（画面．品目ＣＤＭｉｎ，Ｍａｘ＝ＮＵＬＬの時は条件に含めない）
画面．品目ＣＤＭｉｎ＝ＮＵＬＬの時、計画引当Ｆ．品目コード≦画面．品目コードＭａｘ
画面．品目ＣＤＭａｘ＝ＮＵＬＬの時、計画引当Ｆ．品目コード≧画面．品目コードＭｉｎ
＆計画引当Ｆ「受入番号」＝０
＆計画引当Ｆ「振替計画番号」＝０
＆計画引当Ｆ「生産計画区分」≠１１（自動立案計画）
ｏｒ計画引当Ｆ「生産計画区分」＝１１（自動立案計画）＆計画引当Ｆ「計画引当区分」＝１（分割引当する）
ｏｒ計画引当Ｆ「生産計画区分」＝１１（自動立案計画）＆計画引当Ｆ「計画まとめ区分」＝１（まとめる）
ｏｒ計画引当Ｆ「生産計画区分」＝１１（自動立案計画）＆品目Ｍ「計画引当区分」＝１（分割引当する）
ｏｒ計画引当Ｆ「生産計画区分」＝１１（自動立案計画）＆品目Ｍ「計画まとめ区分」＝１（まとめる）
ただし、受注番号、生産計画番号、及び受入番号がいずれも“０”でないレコードについては、受注Ｆ、生産計画Ｆ、及び受入実績Ｆにおいて該当するレコードが存在するかどうかのチェックを行い、すべてがバリッドでないレコードも削除対象とする。
【０１１７】
（２３）立案部１０２ｂは、下記の条件に合致するレコードを不要データとして、生産計画Ｆから削除する。
＜条件＞
生産計画Ｆ「製造拠点コード」＝画面「製造拠点ＣＤ」＆生産計画Ｆ「生産計画区分」＝１２（内示自動立案計画）
＆品目Ｍ．メーカーコード＝画面．得意先コード（画面．得意先ＣＤ＝ＮＵＬＬの時は条件に含めない）
＆生産計画Ｆ．品目コード＝画面．品目コードの範囲内（画面．品目ＣＤＭｉｎ，Ｍａｘ＝ＮＵＬＬの時は条件に含めない）
画面．品目ＣＤＭｉｎ＝ＮＵＬＬの時、生産計画Ｆ．品目コード≦画面．品目コードＭａｘ
画面．品目ＣＤＭａｘ＝ＮＵＬＬの時、生産計画Ｆ．品目コード≧画面．品目コードＭｉｎ
【０１１８】
（２４）立案部１０２ｂは、下記の条件に合致するレコードを対象として、計画引当Ｆの初期化処理を行う。この処理の詳細は、図２８に示されている。これにより、計画引当ファイルが更新される。
＜条件＞
生産計画Ｆ「製造拠点コード」＝画面「製造拠点ＣＤ」
＆計画引当Ｆ「受入番号」＝０
＆品目Ｍ．メーカーコード＝画面．得意先コード（画面．得意先ＣＤ＝ＮＵＬＬの時は条件に含めない）
＆生産計画Ｆ．品目コード＝画面．品目コードの範囲内（画面．品目ＣＤＭｉｎ，Ｍａｘ＝ＮＵＬＬの時は条件に含めない）
画面．品目ＣＤＭｉｎ＝ＮＵＬＬの時、生産計画Ｆ．品目コード≦画面．品目コードＭａｘ
画面．品目ＣＤＭａｘ＝ＮＵＬＬの時、生産計画Ｆ．品目コード≧画面．品目コードＭｉｎ
【０１１９】
［ステップＳＣ３：新規計画作成準備］
立案部１０２ｂは、ワークＡの全てのレコードを対象として、生産計画Ｆに、新規の生産計画レコード（以下、単に「新規計画」ともいう）を作成するための準備として、ワークＡにあるレコードの各々を、計画まとめ区分の値に応じて、所定の出力先（ワーク）へ出力する。具体的には、ワークＡ．計画まとめ区分＝０（しない）の場合には、該当レコードを、後述する製番的計画Ｆ作成処理を行うための作業領域であるワークＣへ出力する。また、ワークＡ．計画まとめ区分＝１（する）の場合、該当レコードを、後述するＭＲＰ的計画Ｆ作成処理を行うための作業領域であるワークＤへ出力する。なお、計画まとめ区分とは、資材所要量計画（ＭＲＰ）等を目的として、複数の生産計画レコードのとりまとめ（集計）を行う予定があるかどうかを示す識別フラグであり、各レコードに設定されている。
【０１２０】
［ステップＳＣ４：計画ファイル作成処理］
立案部１０２ｂは、ワークＣにレコードがあるかワークＤにレコードがあるかを判別し、判別結果に応じて、計画ファイル作成処理を変更する。具体的には、ワークＣにレコードがある場合には、計画ファイル作成処理として、製番的計画Ｆ作成処理を行い（ステップＳＣ４ａ）、一方、ワークＤにレコードがある場合には、計画ファイル作成処理として、ＭＲＰ的計画Ｆ作成処理を行う（ステップＳＣ４ｂ）。
【０１２１】
［ステップＳＣ４ａ：製番的計画Ｆ作成処理］
まず、製番的計画Ｆ作成処理について説明する。
【０１２２】
立案部１０２ｂは、ワークＣにレコードがある場合、以下に示す手順（１）〜（４）で、製番的計画Ｆ作成処理を行う。
【０１２３】
（１）ワークＣにおける複数のレコードについて下記ソートキーによりソート処理を行う。
ソートキー：品目コード＞出荷予定日＞内示データ区分＞受注番号
【０１２４】
（２）ワークＣの複数のレコードのうち、未処理のレコードであって上記（１）のソート順の最上位のレコードをリードして、以下のように、プログラム内「計画立案必要数」を設定する。
プログラム内「計画立案必要数」←ワークＣ．計画立案必要数
【０１２５】
（３）計画引当ファイルをリードし、以下の条件に合致するレコードを抽出する。
＜条件＞
計画引当Ｆ「受注番号」＝ワークＣ「受注番号」
＆計画引当Ｆ「受入番号」＝０
＆計画引当Ｆ「振替計画番号」＝０
ここで、バリット時には、生産計画ファイルにおいて再引当処理を実行するとともに、計画引当ファイルにおいて第１の更新処理を実行し、上記（２）に戻って、ワークＣにおける次のレコードに対して製番的計画Ｆ作成処理を行う。生産計画ファイルにおける再引当処理の詳細は、図２９に示されており、また、計画引当ファイルにおける第１の更新処理の詳細は、図３０に示されている。これらにより、生産計画ファイル及び計画引当ファイルが更新される。
【０１２６】
（４）ワークＣから生産計画Ｆのレコードをリードして、ワークＣ内「計画引当区分」の値を判別し、判別結果に応じて以下の処理（４−１）又は（４−２）を行う。
【０１２７】
（４−１）ワークＣ内「計画引当区分」＝０（分割引当しない）の場合には、まず、下記の条件に合致するレコードを生産計画Ｆから抽出する。
＜条件＞
ワークＣ「製造出荷日」≧生産計画Ｆ「納期」
＆生産計画Ｆ「製造拠点コード」＝画面「製造拠点ＣＤ」
＆生産計画Ｆ「品目コード」＝ワークＣ「品目ＣＤ」
＆生産計画Ｆ「計画数」−同「計画引当数」−同「完成数」≧プログラム内「計画立案必要数」
＆生産計画Ｆ「生産計画区分」＝１、１１
＆生産計画Ｆ「完納区分」＝０
なお、上記の抽出の結果、複数のレコードで納期が同じ場合は、生産計画Ｆ「生産計画区分」の優先度が高い方（１→１１の順に優先度が下がる）のレコードを使用する。
【０１２８】
続いて、抽出したレコードに対して、以下の手順Ａ）〜Ｅ）で、処理を行う。
Ａ）プログラム内「計画立案必要数」を、プログラム内「ワーク計画立案数」、プログラム内「ワーク計画数」、プログラム内「ワーク計画引当数」とする。
Ｂ）受注ファイルにおいて再引当処理を行う。この受注ファイルにおける再引当処理の詳細は、図３１に示されている。これにより、受注ファイルが更新される。
Ｃ）生産計画ファイルにおいて、図２９に示した再引当処理を行う。これにより、生産計画ファイルが更新される。
Ｄ）ワークＣ「完納区分」≠１１（キャンセル）の場合、計画引当ファイルにおいて、図３０に示した第１の更新処理を行う。これにより、計画引当ファイルが更新される。
Ｅ）ワークＣにおける次のレコードに対して上述した処理を行う。
【０１２９】
なお、上記（４−１）の抽出処理の結果、上記条件に合致するレコードがなかった場合には、以下の手順Ａ）〜Ｆ）で、処理を行う。
Ａ）プログラム内「計画立案必要数」を、プログラム内「ワーク計画立案数」、プログラム内「ワーク計画数」、プログラム内「ワーク計画引当数」とする。
Ｂ）ワークＣ「計画立案区分」≠１（自動立案）の場合、ワークＣにおける次のレコードに対して上述した処理を行う。
Ｃ）受注ファイルにおいて、図３１に示した再引当処理を行う。これにより、受注ファイルが更新される。
Ｄ）生産計画ファイルにおいて第１の追加処理を行う。この際に行われる生産計画ファイルにおける第１の追加処理の詳細は、図３２に示されている。これにより、生産計画ファイルが更新される。
Ｅ）計画引当ファイルにおいて第１の追加処理を行う。この際に行われる計画引当ファイルにおける第１の追加処理の詳細は、図３３に示されている。これにより、計画引当ファイルが更新される。
Ｆ）ワークＣにおける次のレコードに対して上述した処理を行う。
【０１３０】
（４−２）ワークＣ内「計画引当区分」＝１（分割引当する）の場合には、まず、下記の条件に合致するレコードを生産計画Ｆから抽出する。
＜条件＞
ワークＣ「製造出荷日」≧生産計画Ｆ「納期」
＆生産計画Ｆ「製造拠点コード」＝画面「製造拠点ＣＤ」
＆生産計画Ｆ「品目コード」＝ワークＣ「品目ＣＤ」
＆生産計画Ｆ「計画数」−同「計画引当数」−同「完成数」＞０
＆生産計画Ｆ「生産計画区分」＝１ｏｒ１１
＆生産計画Ｆ「完納区分」＝０
なお、上記の抽出の結果、複数のレコードで納期が同じ場合は、生産計画Ｆ「生産計画区分」の優先度が高い方（１→１１の順に優先度が下がる）のレコードを使用する。
【０１３１】
続いて、抽出したレコードにおいて、生産計画Ｆ「計画数」−同「計画引当数」−同「完成数」の演算結果を取得し、取得した演算結果に応じて、以下の処理（Ａ）又は処理（Ｂ）を行う。
（Ａ）生産計画Ｆ「計画数」−同「計画引当数」−同「完成数」≧プログラム内「計画立案必要数」の場合には、以下の手順ａ）〜ｅ）で処理を行う。
ａ）プログラム内「計画立案必要数」を、プログラム内「ワーク計画立案数」、プログラム内「ワーク計画数」、プログラム内「ワーク計画引当数」とする。
ｂ）受注ファイルにおいて、図３１に示した再引当処理を行う。これにより、受注ファイルが更新される。
ｃ）生産計画ファイルにおいて第２の再引当処理を行う。この生産計画ファイルにおける第２の再引当処理の詳細は、図３４に示されている。これにより、生産計画のファイルが更新される。
ｄ）受注Ｆ「完納区分」≠１１（キャンセル）の場合、計画引当ファイルにおいて、図３０に示した第１の更新処理を行う。これにより、計画引当ファイルが更新される。
ｅ）ワークＣにおける次のレコードに対して上述した処理を行う。
（Ｂ）生産計画Ｆ「計画数」−同「計画引当数」−同「完成数」＜プログラム内「計画立案必要数」の場合には、以下の手順ａ）〜ｆ）で処理を行う。
ａ）生産計画Ｆ「計画数」−同「計画引当数」−同「完成数」を、プログラム内「ワーク計画立案数」、プログラム内「ワーク計画数」、プログラム内「ワーク計画引当数」とする。
ｂ）受注ファイルにおいて、図３１に示した再引当処理を行う。これにより、受注ファイルが更新される。
ｃ）生産計画ファイルにおいて図３４に示した第２の再引当処理を行う。これにより、生産計画のファイルが更新される。
ｄ）受注Ｆ「完納区分」≠１１（キャンセル）の場合、計画引当ファイルにおいて、図３０に示した第１の更新処理を行う。これにより、計画引当ファイルが更新される。
ｅ）プログラム内「計画立案必要数」−（生産計画Ｆ「計画数」−同「計画引当数」−同「完成数」）を、プログラム内「計画立案必要数」とする。
ｆ）次の生産計画データに対して上述した処理を行う。
【０１３２】
なお、上記（４−２）の抽出処理の結果、生産計画データを全て読み終わっても、プログラム内「計画立案必要数」＞０の場合、並びに、上記（４−２）の抽出処理の結果、上記条件に合致するレコードがなかった場合には、以下の手順Ａ）〜Ｆ）で、処理を行う。
Ａ）プログラム内「計画立案必要数」を、プログラム内「ワーク計画立案数」、プログラム内「ワーク計画数」、プログラム内「ワーク計画引当数」とする。
Ｂ）ワークＣ「計画立案区分」≠１（自動立案）の場合、ワークＣにおける次のレコードに対して上述した処理を行う。
Ｃ）受注ファイルにおいて、図３１に示した再引当処理を行う。これにより、受注ファイルが更新される。
Ｄ）生産計画ファイルにおいて、図３２に示した第１の追加処理を行う。これにより、生産計画のファイルが更新される。
Ｅ）計画引当ファイルにおいて、第２の追加処理を行う。この計画引当ファイルにおける第２の追加処理の詳細は、図３５に示されている。さらに、計画引当ファイルにおいて、図３０に示した第１の更新処理を行う。これらにより、計画引当ファイルが更新される。
Ｆ）ワークＣにおける次のレコードに対して上述した処理を行う。
【０１３３】
上述したようにして、ステップＳＣ４ａの製番的計画Ｆ作成処理が行われる。
【０１３４】
［ステップＳＣ４ｂ：ＭＲＰ的計画Ｆ作成処理］
次に、ＭＲＰ的計画Ｆ作成処理について説明する。
【０１３５】
立案部１０２ｂは、ワークＤにレコードがある場合、以下に示す手順（１）〜（６）で、ＭＲＰ的計画Ｆ作成処理を行う。
【０１３６】
（１）ワークＤにおける複数のレコードについて下記ソートキーによりソート処理を行う。
ソートキー：品目コード＞出荷予定日＞内示データ区分＞受注番号
【０１３７】
（２）ワークＦを作成し、初期化して空ファイルにする。このワークＦは、ＭＲＰ用予定在庫ワークとして機能することとなる。
【０１３８】
（３）ワークＤにおける複数のレコードをリードし、ワークＤ「製造拠点コード」・「品目コード」がブレークする毎の初回に、以下の処理（３−１）〜（３−５）を行う。
【０１３９】
（３−１）ワークＦ（ＭＲＰ用予定在庫ワークＦ）をクリア（初期化）して、１レコード追加する。図３６には、ワークＦに１レコードを追加する処理が示されている。
（３−２）プログラム内「Ｗ計画必要数」に“０”をセットする。
【０１４０】
（３−３）プログラム内「現在在庫数」の値を、以下の手順（Ａ）〜（Ｃ）にしたがって算出する。
（Ａ）現在在庫ファイルから、下記の抽出条件にマッチするレコードを抽出し、抽出したすべてのレコードから取得される「現在庫数」の値を集計して、集計結果を「ワーク現在庫数」として取得する。
＜抽出条件＞
現在在庫Ｆ「品目コード」＝ワークＤ．品目コード
＆現在在庫Ｆ「工順」＝“９９９”
＆現在在庫Ｆ「拠点コード」＝画面．拠点コード
＆現在在庫Ｆ「資産区分」＝“１”（自社資産）
＆現在在庫Ｆ「在庫状態区分」＝“０”（通常）ｏｒ“１”（未検査）
＆現在在庫Ｆ「現在庫数」≠“０”
【０１４１】
（Ｂ）受注引当在庫ファイルから、下記の抽出条件にマッチするレコードを抽出し、抽出したすべてのレコードから取得される「受注引当数」を集計して、集計結果を「ワーク受注引当数」として取得する。
＜抽出条件＞
受注引当在庫Ｆ「品目コード」＝ワークＤ．品目コード
＆受注引当在庫Ｆ「工順」＝“９９９”
＆受注引当在庫Ｆ「拠点コード」＝画面．拠点コード
＆受注引当在庫Ｆ「受注引当数」≠“０”
【０１４２】
（Ｃ）「ワーク現在庫数」−「ワーク受注引当数」の値を、プログラム内「現在庫数」とする。
（３−４）まず、手配ファイルから、下記の抽出条件にマッチするレコードを抽出する。
＜抽出条件＞
手配Ｆ「手配発生区分」≠“４”（直送受注）、“１２”（計画外追加）、“１３”（計画外分割）
＆手配Ｆ「製造拠点コード」＝ワークＤ「製造拠点コード」
＆手配Ｆ「品目コード」＝ワークＤ「品目コード」
＆手配Ｆ「工順」＝“９９９”
＆手配Ｆ「完納区分」＝“０”
＆手配Ｆ（「手配数」−「受入数」）＞“０”
＆（手配Ｆ「内示区分」≠１  ｏｒ  手配Ｆ「手配方式区分」≠１）
続いて、抽出した手配Ｆのレコードから、「手配納期」でワークＦをリードし、バリッド時には、手配Ｆ「手配数」−「受入数」の値を、「手配数」に加算して更新する。なお、インバリッド時には、図３７に示すような項目をセットして、追加出力する。
【０１４３】
（３−５）まず、生産計画ファイルから、下記の抽出条件にマッチするレコードを抽出する。
＜抽出条件＞
計画Ｆ「生産計画区分」≠“１”（見込計画）、“１１”（自動立案計画）
＆計画Ｆ「製造拠点コード」＝ワークＤ「製造拠点コード」
＆計画Ｆ「品目コード」＝ワークＤ「品目コード」
＆計画Ｆ「工順」＝“９９９”
＆計画Ｆ「完納区分」＝“０”
＆計画Ｆ（「計画数」−「完成数」）＞“０”
＆計画Ｆ「所要量計算日」＝ＮＵＬＬ
続いて、抽出した生産計画Ｆのレコードから、「納期」でワークＦをリードし、バリッド時には、計画Ｆ「計画数」−「完成数」の値を、「手配数」に加算して更新する。なお、インバリッド時には、図３８に示すような項目をセットして、追加出力する。
【０１４４】
（４）上記（３）の処理の結果、ワークＤ「製造拠点コード」・「品目コード」・「工順」が同一のレコードが複数存在する場合には、まず、ワークＤ「出荷予定日」でワークＦのレコードをリードし、バリッド時には、ワークＤ「計画立案必要数」の値を「必要数」に加算して更新する。なお、インバリッド時には、図３９に示すような項目をセットして、追加出力する。続いて、ワークＤのレコード内容をプログラム内項目（以下、「退避ワークＤ」ともいう）に退避する。ただし、「最小計画数」が“０”の時、及び、「増分計画数」が“０”の時は、在庫単位コードの小数有効桁数で最小値を求める。これらの処理が完了したら、上記（３）の処理に戻って、ワークＤにおける次のレコードに対して処理を行う。
【０１４５】
（５）ワークＤにおける複数のレコードをリードし、ワークＤ「製造拠点コード」・「品目コード」・「工順」がブレークするたびに、以下の処理（５−１）〜（５−２）を行う。
【０１４６】
（５−１）プログラム内「現在在庫数」の値を、プログラム内「予定在庫数」にセットする。このとき、プログラム内「現在在庫数」には、受注引当Ｆ再生成処理について説明したとおり、在庫引当後の現在庫数が記録されている。
【０１４７】
（５−２）ワークＦのレコードをリードして、以下の処理（Ａ）〜（Ｅ）を行う。
【０１４８】
（Ａ）プログラム内「予定在庫数」−ワークＦ「必要数」＋ワークＦ「手配数」の値を、プログラム内「予定在庫数」にセットする。
【０１４９】
（Ｂ）プログラム内「予定在庫数」≧退避ワークＤ「発注点」の時、プログラム内「予定在庫数」を、ワークＦ「予定在庫数」にセットし、（Ａ）の処理へ戻って、次のレコードに対する処理を行う。
【０１５０】
（Ｃ）リードしたレコードの「年月日」から、範囲内で最大の「予定在庫数」を取得する。この際、発注検討期間が考慮される。具体的には、まず、リードしたレコードの「年月日」に対して、退避ワークＤ「発注検討期間」に該当する日数分（稼働日ベースでの日数分）をプラスした日付（年月日）を算出し（ＧｅｔＬｅａｄＤａｙ）、続いて、算出した日付の範囲内で最大値をとる「予定在庫数」を取得する。
【０１５１】
（Ｄ）取得した「予定在庫数」の値に応じて、以下のようにして、手配必要数を求める。「予定在庫数」≧退避ワークＤ「発注点」の場合には、まず、プログラム内「予定在庫数」の値をチェックし、プログラム内「予定在庫数」≧退避ワークＤ「安全在庫数（下限）」のときは、プログラム内「予定在庫数」の値を、ワークＦ「予定在庫数」にセットし、（Ａ）の処理へ戻って、次のレコードに対する処理を行い、一方、プログラム内「予定在庫数」＜退避ワークＤ「安全在庫数（下限）」のときは、退避ワークＤ「安全在庫数（上限）」−プログラム内「予定在庫数」の値を、プログラム内「手配必要数」とする。他方で、「予定在庫数」＜退避ワークＤ「発注点」の場合には、退避ワークＤ「安全在庫数（上限）」−プログラム内「予定在庫数」の値を、プログラム内「手配必要数」とする。
【０１５２】
（Ｅ）以下の処理（Ｅ−１）〜（Ｅ−３）で、数量まとめを行う。この処理により、ロット数を考慮した手配必要数を設定することが可能となる。
【０１５３】
（Ｅ−１）プログラム内「手配必要数」≦退避ワークＤ「最小ロット数」の時、以下の処理（ａ）〜（ｅ）を行う。
（ａ）退避ワークＤ「最小ロット数」の値を、プログラム内「Ｗ手配数」にセットする。
（ｂ）生産計画ファイルにおいて、第２の追加処理を行う。この際に行われる生産計画ファイルにおける第２の追加処理の詳細は、図４０に示されている。さらに、計画引当ファイルにおいて、第２の追加処理を行う。この際に行われる計画引当ファイルにおける第２の追加処理の詳細は、図４１に示されている。これらにより、生産計画ファイル及び計画引当ファイルが更新される。
（ｃ）プログラム内「Ｗ手配数」の値を、プログラム内「予定在庫数」に加算する。
（ｄ）プログラム内「予定在庫数」の値を、ワークＦ「予定在庫数」にセットし、更新をする。
（ｅ）（Ａ）の処理へ戻って、次のレコードに対する処理を行う。
【０１５４】
（Ｅ−２）退避ワークＤ「最大ロット数」＝“０”の時、以下の処理（ａ）〜（ｆ）を行う。
（ａ）（プログラム内「手配必要数」−退避ワークＤ「最小ロット数」）÷退避ワークＤ「増分ロット数」の演算結果（切上げ）を、「ＷＫＡ」とする。＜「ＷＫＡ」：９（９）＞
（ｂ）「ＷＫＡ」×退避ワークＤ「増分ロット数」＋退避ワークＤ「最小ロット数」の値を、プログラム内「Ｗ手配数」にセットする。
（ｃ）生産計画ファイルにおいて、図４０に示した第２の追加処理を行う。さらに、計画引当ファイルにおいて、図４１に示した第２の追加処理を行う。これらにより、生産計画ファイル及び計画引当ファイルが更新される。
（ｄ）プログラム内「Ｗ手配数」の値を、プログラム内「予定在庫数」に加算する。
（ｅ）プログラム内「予定在庫数」の値を、ワークＦ「予定在庫数」にセットし、更新をする。
（ｆ）（Ａ）の処理へ戻って、次のレコードに対する処理を行う。
【０１５５】
（Ｅ−３）退避ワークＤ「最大ロット数」≠“０”の時、以下の処理（ａ）〜（ｄ）を行う。
【０１５６】
（ａ）プログラム内「手配必要数」÷退避ワークＤ「最大ロット数」の演算結果を、「ＷＫＮ」余り「ＷＫＭ」とする。
【０１５７】
（ｂ）以下の処理（ｂ−１）〜（ｂ−３）を「ＷＫＮ」の値分繰り返し行う。
（ｂ−１）退避ワークＤ「最大ロット数」の値を、プログラム内「Ｗ手配数」にセットする。
（ｂ−２）生産計画ファイルにおいて、図４０に示した第２の追加処理を行う。さらに、計画引当ファイルにおいて、図４１に示した第２の追加処理を行う。これらにより、生産計画ファイル及び計画引当ファイルが更新される。
（ｂ−３）プログラム内「Ｗ手配数」の値を、プログラム内「予定在庫数」に加算する。
（ｂ−４）プログラム内「予定在庫数」の値を、ワークＦ「予定在庫数」にセットし、更新をする。
【０１５８】
（ｃ）「ＷＫＭ」≦退避ワークＤ「最小ロット数」の時、以下の処理（ｃ−１）〜（ｃ−４）を行う。
（ｃ−１）退避ワークＤ「最小ロット数」の値を、プログラム内「Ｗ手配数」にセットする。
（ｃ−２）生産計画ファイルにおいて、図４０に示した第２の追加処理を行う。さらに、計画引当ファイルにおいて、図４１に示した第２の追加処理を行う。これらにより、生産計画ファイル及び計画引当ファイルが更新される。
（ｃ−３）プログラム内「Ｗ手配数」の値を、プログラム内「予定在庫数」に加算する。
（ｃ−４）プログラム内「予定在庫数」の値を、ワークＦ「予定在庫数」にセットし、更新をする。
【０１５９】
（ｄ）「ＷＫＭ」＞退避ワークＤ「最小ロット数」の時、以下の処理（ｄ−１）〜（ｄ−５）を行う。
（ｄ−１）｛（「ＷＫＭ」−退避ワークＤ「最小ロット数」）÷退避ワークＤ「増分ロット数」｝の演算結果（切上げ）を、「ＷＫＡ」とする。＜「ＷＫＡ」：９（９）＞
（ｄ−２）退避ワークＤ「最小ロット数」＋退避ワークＤ「増分ロット数」×「ＷＫＡ」の値を、プログラム内「Ｗ手配数」にセットする。
（ｄ−３）生産計画ファイルにおいて、図４０に示した第２の追加処理を行う。さらに、計画引当ファイルにおいて、図４１に示した第２の追加処理を行う。これらにより、生産計画ファイル及び計画引当ファイルが更新される。
（ｄ−４）プログラム内「Ｗ手配数」の値を、プログラム内「予定在庫数」に加算する。
（ｄ−５）プログラム内「予定在庫数」の値を、ワークＦ「予定在庫数」にセットし、更新をする。
【０１６０】
（Ｆ）上述した（Ａ）の処理へ戻って、次のレコードに対する処理を行う。
【０１６１】
（６）上述した（３）の処理へ戻って、ワークＤにおける次のレコードに対する処理を行う。全てのレコードに対する処理が終了したら、本処理を完了する。
【０１６２】
上述したようにして、ステップＳＣ４ｂのＭＲＰ的計画Ｆ作成処理が行われる。
【０１６３】
なお、上述したステップＳＣ４ａの製番的計画Ｆ作成処理及びステップＳＣ４ｂのＭＲＰ的計画Ｆ作成処理において、決定した計画数について所定の出力及び必要な更新処理が行われる。
【０１６４】
以上で、［４−３．生産計画自動立案処理の詳細の詳細］の説明を終了する。
【０１６５】
［５．第２の実施形態］
次に、本発明の第２の実施形態について説明する。
【０１６６】
上述した第１の実施形態においては、生産計画自動立案方法を用いて、在庫管理方法に係る処理と、生産管理方法に係る処理とを実行して、製品を生産すべき計画数を決定したが、本実施形態においては、製品を生産すべき計画数を決定せずに、物品の在庫管理のみに着目して在庫の計画数を決定するものである。
【０１６７】
本実施形態に係る在庫管理方法は、上述した第１の実施形態に係る生産計画自動立案方法に含まれる在庫管理方法と同様にして実行することができる。ただし、本実施形態においては、生産管理の目的で、稼働日を考慮する必要はないので、これらに係る処理を省略又はスキップすればよい。このため、第１の実施形態において説明した生産計画自動立案装置１００は、在庫管理装置としても機能させることができる。
【０１６８】
本実施形態においては、物品の在庫の入庫及び出庫の数に関する増減数を増減数データとして用いればよい。ここで、在庫の増減としては、受注に応じた物品の入荷及び出荷の数が考慮され、より好ましくは、物品のイレギュラーな移動分（例えば、他の拠点への貸し借り分、返品若しくはキャンセルの受け入れ分、及び直送分）をも考慮することが好ましい。そして、本実施形態では、これらの増減数データを用いて第１の実施形態で説明したような処理を実行することにより、在庫の計画数が決定される。
【０１６９】
また、本実施形態において、より好ましくは、決定した在庫の計画数に応じて、物品の不足分（必要数）を生産現場又は卸業者へ発注するように装置を構成してもよく（発注手段）、この場合、より好ましくは、生産現場又は卸業者の稼働日や納期を考慮して発注する。同様に、物品の必要数（過剰分）については、得意先へ卸すか若しくは販売の申し出をしたり、買取業者へ買取依頼を出したり、他の拠点へ保管依頼を出したりするように構成してもよい。
【０１７０】
［６．第３の実施形態］
次に、本発明の第３の実施形態について説明する。
【０１７１】
上述した第２の実施形態においては、物品の在庫管理について説明したが、本実施形態においては、第２の実施形態において決定された物品の必要数に関する情報を受け取り、受け取った情報に基づいて、生産に必要な必要数を計画数として決定する。これを実現するためには、第１の実施形態において説明した生産計画自動立案装置１００を用いればよい。具体的には、第１の実施形態に係る生産計画自動立案方法に含まれる生産管理方法に係る処理を実行すればよい。
【０１７２】
［７．第４の実施形態］
次に、本発明の第４の実施形態について説明する。
【０１７３】
上述した第１〜第３の実施形態では、物品の在庫管理や製品の生産管理に関して、必要数を計画数として決定しているが、これらに相応するプログラムを、本実施形態においては、過去の在庫実績や製品の生産実績の検証又はシミュレーションに用いる。具体的には、適用日（基準日付）と適用期間を変更することにより複数の演算結果が得られるので、過去の在庫実績が適切であったかどうか、又は、過去のどの時点から在庫数を調整するのが適切であったのか等についての検証材料を得ることができ、それにより、在庫スペースの広さの検討又は生産設備の生産能力の検討若しくは生産体制（生産設備の稼働時間や増員等）の検討に生かすことも可能となる。
【０１７４】
［８．他の実施形態］
本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【０１７５】
例えば、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【０１７６】
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【０１７７】
また、生産計画自動立案装置１００及び生産計画自動立案システムに関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【０１７８】
例えば、生産計画自動立案装置１００が備える処理機能、特に制御部１０２にて行われる各処理機能については、その全部または任意の一部を、ＣＰＵ及び当該ＣＰＵにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じて生産計画自動立案装置１００に機械的に読み取られる。すなわち、ＲＯＭまたはＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの記憶部などには、ＯＳと協働してＣＰＵに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、ＲＡＭにロードされることによって実行され、ＣＰＵと協働して制御部を構成する。
【０１７９】
また、このコンピュータプログラムは、生産計画自動立案装置１００に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバ（例えば、ネットワーク３００を介して接続されたサーバ２００）に記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【０１８０】
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カード、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（登録商標）（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、及び、Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ等の任意の「可搬用の物理媒体」を含むものとする。したがって、本明細書で説明したような処理を実行するためのプログラムを格納した記録媒体もまた本発明を構成することとなる。
【０１８１】
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、ＯＳに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成及び読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【０１８２】
記憶部１０６に格納される各種のデータベース等は、ＲＡＭ、ＲＯＭ等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、及び、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、及び、ウェブページ用ファイル等を格納する。
【０１８３】
また、生産計画自動立案装置１００は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、生産計画自動立案装置１００は、当該装置に本実施形態で説明した処理を実現させるソフトウェア（プログラムまたはデータ等を含む）を実装することにより実現してもよい。
【０１８４】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
【産業上の利用可能性】
【０１８５】
本発明は、特に、製造業における生産管理において有用であり、任意の業種における在庫管理及び販売管理にも有用である。
【符号の説明】
【０１８６】
１００  生産計画自動立案装置
１０２  制御部
１０２ａ  日割り処理部
１０２ｂ  立案部
１０４  通信インターフェース部
１０６  記憶部
１０６ａ  日別在庫計画マスタ
１０６ｂ  手配条件マスタ
１０６ｃ  品目マスタ
１０６ｄ  ＣＳＶデータマスタ
１０６ｅ  受注データマスタ
１０６ｆ  内示データマスタ
１０６ｇ  在庫データマスタ
１０６ｈ  計画データマスタ
１０８  入出力インターフェース部
１１２  入力装置
１１４  出力装置
２００  サーバ
３００  ネットワーク
【図１】
2016194900.tif 000003
【図２】
2016194900.tif 000004
【図３】
2016194900.tif 000005
【図４】
2016194900.tif 000006
【図５】
2016194900.tif 000007
【図６】
2016194900.tif 000008
【図７】
2016194900.tif 000009
【図８】
2016194900.tif 000010
【図９】
2016194900.tif 000011
【図１０】
2016194900.tif 000012
【図１１】
2016194900.tif 000013
【図１２】
2016194900.tif 000014
【図１３】
2016194900.tif 000015
【図１４】
2016194900.tif 000016
【図１５】
2016194900.tif 000017
【図１６】
2016194900.tif 000018
【図１７】
2016194900.tif 000019
【図１８】
2016194900.tif 000020
【図１９】
2016194900.tif 000021
【図２０】
2016194900.tif 000022
【図２１】
2016194900.tif 000023
【図２２】
2016194900.tif 000024
【図２３】
2016194900.tif 000025
【図２４】
2016194900.tif 000026
【図２５】
2016194900.tif 000027
【図２６】
2016194900.tif 000028
【図２７】
2016194900.tif 000029
【図２８】
2016194900.tif 000030
【図２９】
2016194900.tif 000031
【図３０】
2016194900.tif 000032
【図３１】
2016194900.tif 000033
【図３２】
2016194900.tif 000034
【図３３】
2016194900.tif 000035
【図３４】
2016194900.tif 000036
【図３５】
2016194900.tif 000037
【図３６】
2016194900.tif 000038
【図３７】
2016194900.tif 000039
【図３８】
2016194900.tif 000040
【図３９】
2016194900.tif 000041
【図４０】
2016194900.tif 000042
【図４１】
2016194900.tif 000043