【解決手段】本発明に係る生産計画自動立案装置は、制御部を備える。この制御部は、作成手段と、更新手段と、決定手段とを備える。作成手段は、第1の周期における期末の在庫計画数に関する期末安全在庫数データを用いて、第2の周期における在庫計画数に関する短周期基準安全在庫数データを複数作成する。更新手段は、第1の周期における増減数データを用いて、複数の短周期基準安全在庫数データに対応する在庫計画数の各々に、増減数データに対応する製品の増減分を割り当てる。決定手段は、短周期基準安全在庫数データと、第1の周期における製品の引当数に関する引当数データとを用いて、第2の周期において製品を生産すべき計画数を決定する。
【発明を実施するための形態】
【0017】
本発明の実施形態を図面に基づいて詳細に説明する。なお、本発明は本実施形態により限定されるものではない。
【0018】
[1.概要]
製品の需要増が見込まれるにも関わらず当該需要増に対して何も手を打たない場合(
図1参照)、安定在庫数は一定に設定されたままである。この場合、生産負荷の増大や安全在庫数割れのリスクが増すなどといった問題点がある。そこで、従来では、生産管理(管理コンピュータ)上、見込まれる需要増に備えて、当該需要増が見込まれる月の前の月において、日々の安定在庫数の値を需要増に応じた高い値に設定変更することが行われている(
図2参照)。
【0019】
しかし、従来技術(
図2に示す例)では、管理コンピュータ上、安全在庫数の設定が品番ごとに固有の設定になっているため、安全在庫数の設定値を増やす変更を行うと、変更直後の日付における製品の所要量(必要生産量)を計算した結果として、多量の製品を生産すべき旨の生産指示が生産管理情報として発生するという問題点がある。特には、需要増が著しい場合、生産能力を超えた生産指示が生産管理情報として生成される可能性も否定できない。一方で、管理コンピュータ上、安全在庫数の設定値を減らす変更を行ったり、又は、設定値を増やす変更を行った後の日付において元に戻す変更を行ったりすると、変更直後の日付における製品の所要量を計算した結果として、生産すべき製品なしの旨の生産指示情報が発生する(すなわち、生産指示が発生せず)。そして、そのような生産指示に応じてしまうと、生産設備が不稼働になってしまうという問題点がある。
【0020】
本実施形態は、生産計画における安全在庫数の日別設定と、その設定を加味した所要量の計算とに関するものである。具体的には、本実施形態は、将来の安全在庫数を設定することで、そこへ向けた日割りによる日別の安全在庫数の自動計算を行う機能と、日別の安全在庫数を加味した所要量の計算を行う機能とを技術的思想として含むものであり、本実施の形態では、それら機能によって、将来の安全在庫数の増減分をそれ以前の複数の日にちの安全在庫数に割り当て、割り当てた安全在庫数を生産計画の自動立案に利用する。
【0021】
本実施形態によれば、将来の需要増に向けた製品在庫の積み増しを計画的に(すなわち段階的に)行うことができるので、繁忙期の生産負荷の低減が実現される。そのため、生産設備の最大生産能力を低下させるか又は最大生産能力の低い生産設備を使用することも可能となる。また、本実施形態によれば、将来の需要減に向けて少なく設定された安全在庫数に応じて生産調整を段階的に行いつつ、製品在庫過剰分についてはその数を減らしていくことができるので、突然の設備の不稼働が回避されるだけでなく、閑散期においても生産設備の生産能力を活用することができる。まとめると、本実施形態によれば、繁忙期の生産負荷の低減を実現することができ、かつ、閑散期においても生産能力を活用することができるので、上述した問題点を解消して、需要に変動があっても生産負荷の標準化を図ることができる(
図3参照)。
【0022】
なお、本実施形態は、製造業(工場などにおける生産業務)における生産管理に限らず、例えば小売業などにおける商品の在庫管理や販売管理などにも適用可能であり、この場合には、在庫管理に要する負荷(例えば、商品の発注業務の負荷)の標準化を図ることができる。
【0023】
[2.構成]
本実施形態に係る生産計画自動立案装置を含む生産計画自動立案システムの構成の一例について、
図4を参照して説明する。
図4は、本発明の実施形態に係る生産計画自動立案装置を含む生産計画自動立案システムの構成の一例を示すブロック図である。
【0024】
図4に示す生産計画自動立案システムは、情報処理装置としての生産計画自動立案装置100と、サーバ200と、生産計画自動立案装置100及びサーバ200を相互に通信可能に接続するネットワーク300とを含んでいる。
【0025】
生産計画自動立案装置100は、市販のデスクトップ型パーソナルコンピュータであり、製品を生産すべき計画数を立案するための情報処理装置である。なお、生産計画自動立案装置100は、デスクトップ型パーソナルコンピュータのような据置型情報処理装置に限らず、市販されているノート型パーソナルコンピュータ、PDA(Personal Digital Assistants)、スマートフォン、タブレット型パーソナルコンピュータなどの携帯型情報処理装置であってもよい。
【0026】
生産計画自動立案装置100は、制御部102と、通信インターフェース部104と、記憶部106と、入出力インターフェース部108とを備えている。生産計画自動立案装置100が備えている各部は、任意の通信路を介して通信可能に接続されている。
【0027】
通信インターフェース部104は、ルータ等の通信装置及び専用線等の有線又は無線の通信回線を介して、生産計画自動立案装置100をネットワーク300に通信可能に接続する。通信インターフェース部104は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク300は、生産計画自動立案装置100とサーバ200とを相互に通信可能に接続する機能を有し、例えばインターネットやイントラネット、LAN(Local Area Network)等である。したがって、通信インターフェース部104は、
図4には図示されていない情報処理装置からの入力情報等を、ネットワーク300を介して又はネットワーク300及びサーバ200を介して受け付けることが可能に構成されているとともに、所定の情報処理装置に対して所定の情報を出力することが可能に構成されている。
【0028】
記憶部106には、各種のデータベース、テーブル、及びファイルなどが格納される。記憶部106には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラム(本発明の生産計画自動立案プログラムを含む)が記録される。記憶部106として、例えば、RAM(Random Access Memory)・ROM(Read Only Memory)等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、及び光ディスク等を用いることができる。また、この記憶部106には、本発明の生産計画自動立案プログラムを実施するために用いられる各種のマスタ(データベース又はテーブル)が書き出し/読み出し可能に格納されている。各種のマスタについては後述する。
【0029】
入出力インターフェース部108には、入力装置112及び出力装置114が接続されている。出力装置114には、モニタ(家庭用テレビを含む)の他、スピーカやプリンタを用いることができる。入力装置112には、キーボード、マウス、及びマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置114をモニタ114とし、入力装置112をキーボード112またはマウス112として記載する場合がある。
【0030】
制御部102は、生産計画自動立案装置100を統括的に制御するCPU等である。制御部102は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。
【0031】
さらに
図4を参照しながら、記憶部106の構成と制御部102の構成について詳述する。
【0032】
記憶部106には、
図4に示す例では、日別在庫計画マスタ106aと、手配条件マスタ106bと、品目マスタ106cと、CSVデータマスタ106dと、受注データマスタ106eと、内示データマスタ106fと、在庫データマスタ106gと、計画データマスタ106hとが格納されている。
【0033】
日別在庫計画マスタ106aは、後述する日別基準安全在庫数データを格納するためのマスタである。この日別基準安全在庫数データは、在庫計画数、品目コード、日付(年月)、安全在庫数(上限)、安全在庫数(下限)、発注点及び発注検討期間等に関する情報を含むレコードである。
【0034】
手配条件マスタ106bは、製品の生産又は在庫管理に必要な条件を設定値として格納しておくためのマスタであり、設定値としては、例えば、安全在庫数(上限)、安全在庫数(下限)、発注点、発注検討期間、拠点コード、品目コード、工順、手配パターンに関する情報がある。
【0035】
品目マスタ106cは、製品を識別又は特定するための情報を格納するためのマスタである。このマスタには、製品ごとに、例えば、製造拠点コード、品目区分、内示受注計画区分、計画引当区分、計画立案区分、内示受注計画区分、計画まとめ区分、最少計画数、増分計画数、最大計画数、品目名、在庫単位コード、及び出荷場所コードが登録される。
【0036】
CSVデータマスタ106dは、後述する期末安全在庫数データを格納するためのマスタである。この期末安全在庫数データは、月末における製品の在庫計画数(月末在庫計画数)に関する情報が複数月分にわたって記録されているレコードデータであり、フォーマットを予め規定しておけば、例えばテキストデータであってもよい。月末在庫計画数は、需要予測を考慮して予め定められた設定値である。
【0037】
受注データマスタ106eは、製品の受注に関する情報を格納するためのマスタである。このマスタには、製品ごとに、例えば、得意先コード、品目コード、生産計画必要区分、完納区分、在庫管理出荷数、在庫引当数、製造完成数、納期、製造出荷日、受注区分、受注番号、品目名、納期、出荷予定日、製造出荷日、在庫管理受注数、在庫管理出荷数、在庫単位コード、在庫単位名、在庫引当場所コード、在庫引当数、製造指示数、製造完成数、生産計画必要区分、生産計画日、計画立案数、及び製番に関する情報が記録されているレコードが格納される。
【0038】
内示データマスタ106fは、内示に関する情報を格納するためのマスタある。このマスタには、製品ごとに、例えば、得意先コード、品目コード、内示日、出荷予定日、内示番号、品目コード、内示日、及び内示数に関する情報が記録されているレコードが格納される。
【0039】
在庫データマスタ106gは、製品の在庫に関する情報を製品ごとに格納するためのマスタある。このマスタには、製品ごとに、現在の在庫数に関する情報等が記録されているレコードが格納される。
【0040】
計画データマスタ106hは、後述する製品の生産計画に関する情報を格納するためのマスタである。
【0041】
また、
図4に示すように、制御部102は、機能概念的に、日割り処理部102aと、立案部102bとを備えている。
【0042】
日割り処理部102aは、後述する生産計画自動立案方法の在庫管理方法を実行するための手段として機能する。この手段には、短周期基準安全在庫数データを作成する作成手段と、増減数データに対応する製品の増減分の割り当てを行う更新手段とが含まれる。
【0043】
立案部102bは、後述する生産計画自動立案方法の生産管理方法を実行するための手段として機能する。この手段には、製品を生産すべき計画数を決定する決定手段が含まれる。
【0044】
[3.第1の実施形態]
続いて、本発明の第1の実施形態について説明する。具体的には、
図4に示す生産計画自動立案装置100を含む生産計画自動立案システムにおいて実行される第1の実施形態に係る生産計画自動立案方法の処理手順について説明する。なお、本処理の大部分は、
図1における生産計画自動立案装置100の制御部102において実行される。この第1の実施形態に係る生産計画自動立案方法は、概略的には、製品の安全在庫数を決定するための在庫管理方法と、当該在庫管理方法において決定した安全在庫数に基づいて製品を生産すべき生産数を決定するための生産管理方法とから構成されており、製品が複数種類にわたる場合には、各製品について本処理が行われる。
【0045】
第1に、在庫管理方法の処理手順を説明する。この在庫管理方法に係る処理の大部分は、制御部102の日割り処理部102aにおいて実行される。また、これらの処理を実行するために、記憶部102に所定の作業領域(ワーク)を形成し、当該ワーク上で退避データを作成することが好ましい。
【0046】
まず、在庫管理方法の第1工程においては、在庫管理の対象となる適用期間の基準日付を決定する(基準日付設定手段)。なお、この在庫管理の対象となる適用期間は、後述する生産管理方法において製品を生産すべき計画数の立案の対象となる適用期間にも該当する。この基準日付は、現在の日付であってもよいし、現在の日付よりも後の日付であってもよい。そして、基準日付を含む月の翌月以降が上記適用期間として設定される。適用期間の末日は、デフォルトで又は任意に設定可能であり、例えば翌々々月の末日(すなわち3か月間)に設定される。
【0047】
続く第2工程においては、月を単位として予め定められた在庫計画数に関する一連のデータを読み出す。
【0048】
ここで、在庫計画数とは、製品に対する需要予測を考慮して予め定められた製品の在庫数として予定している数を意味し、通常は、所定の周期ごとに当該周期の期末に予定している在庫数(以下、「期末の在庫計画数」ともいう)として定められる。需要予測は、過去の製造実績を参考になされたものであってもよいし、市場調査によって得られたものであってもよいし、過去の製造実績及び市場調査の結果の双方を勘案したものであってもよい。在庫計画数としては、一般的に、在庫切れが起こらないように、需要予測から見積もられる製品の数を十分に上回る数が設定される。そして、このように設定された複数の連続した周期にわたる期末の在庫計画数のデータ(以下、「期末安全在庫数データ」ともいう)は、記憶部106又は外部記憶装置に予め格納しておくことが好ましい。
【0049】
次に、第3工程においては、第2工程において読み出した一連の期末安全在庫数データから、1か月分の期末安全在庫数データ(例えば、基準日付を含む月の翌月の期末安全在庫数データ)を抽出し、抽出した期末安全在庫数データに対応する月の末日における在庫計画数の値を読み出すとともに、抽出した期末安全在庫数データに対応する月の先月の末日における在庫計画数の値を読み出し、そして、両者の差分(すなわち、1か月後の在庫計画数の増減分)を算出して、その算出結果を増減数データとして取得する(算出手段)。増減数データにおいては、増大分は正の整数で表され、減少分は負の整数で表され、増減がない場合にはゼロで表される。なお、この増減数データには、製品のイレギュラーな移動分(例えば、他の製造拠点への貸し借り分、返品若しくはキャンセルの受け入れ分、及び直送分)に関する情報も含まれていることが好ましい。
【0050】
続いて、第4工程においては、第3工程において抽出した期末安全在庫数データに対応する月について、該当月の日数の分だけ日別のデータ(以下、「日別基準安全在庫数データ」ともいう)を用意する(作成手段)。日別基準安全在庫数データの初期値はゼロ又はNullであり、本処理が既に行われている場合には、そのときに用意した日別基準安全在庫数データとして設定されている値が用いられる。
【0051】
次に、第5工程においては、第4工程において用意した複数の日別基準安全在庫数データの各々について、当該日別基準安全在庫数データが、製品の生産を行うことが可能な稼働日についてのデータかどうかを判定するとともに、稼働日であれば、該当月における日にちの順序に応じた係数を設定し(係数設定手段)、一方、稼働日でなければ直前の稼働日に設定した係数と同じ係数を設定する(係数設定手段)。稼働日についての判定は、製品の生産を行う現場のカレンダーに準じて行われる。
【0052】
そして、第6工程においては、第4工程において用意した日別基準安全在庫数データのうち、第5工程において稼働日であると判定された日別基準安全在庫数データの各々に対して、第3工程において取得した増減数データに対応する製品の増減分を割り当てる。その結果として、日別基準安全在庫数データの更新が行われることとなる(更新手段)。すなわち、この処理によって、日別基準安全在庫数データに割り当てられた増減分に関する値が設定される。
【0053】
ここで、第6工程における増減分を割り当て方法の一例を説明する。この例は、第5工程において稼働日に設定される係数として、該当月における日にちの順序を示す整数を設定した場合に関する。
【0054】
増減分を割り当てるために、まず、第3工程において抽出した期末安全在庫数データに対応する月の先月の末日における在庫計画数の値を、割り当ての基準値とし、この値を、稼働日に対応する日別基準安全在庫数データの各々に割り当てる。次に、稼働日に対応する日別基準安全在庫数データに対して、上記係数を用いた傾斜配分を行う。具体的には、増減数データに対応する製品の増減分を稼働日の日数で除算し、日割りの増減分に関する日割り増減数データとして取得し、続いて、取得した増減数データに対応する日割りの増減分に、稼働日に設定した係数としての整数を乗算し、得られた値を、稼働日の日別基準安全在庫数データに割り当てる。すなわち、稼働日に対応する日別基準安全在庫数データには、在庫計画数の基準値に、日割りの増減分と稼働日に設定された係数の乗算結果が加算された値が割り当てられる。これにより、増減分がある場合には(すなわち増減がない場合を除いては)、日別基準安全在庫数データに割り当てられる在庫計画数の値を、稼働日の日付が進むにつれて漸増又は漸減させることができ、他方、増減がない場合においても、稼働日に設定した係数によらず、在庫計画数の基準値を日別基準安全在庫数データに対して割り当てることができる。なお、非稼働日(稼働休止日)に対応する日別基準安全在庫数データに対しては、その前日に割り当てられた在庫計画数の値と同じ値が割り当てられる。さらに、第3工程において抽出した期末安全在庫数データに対応する月の先月の末日における在庫計画数の値を上記の基準値で更新する。
【0055】
次に、第7工程においては、翌々月分の在庫計画数の設定を行うかどうか判定する。この判定は、第1工程において決定された適用期間に、第3工程で抽出した期末安全在庫数データに対応する月の翌月に対応する期末安全在庫数データが存在するかどうかを判定することで行われる。翌月分の在庫計画数の設定を行う場合には、第1工程に戻って、基準日付を翌月に更新し、第2工程〜第6工程の処理を行う。翌々月分の在庫計画数の設定を行わない場合には、在庫管理方法の全ての処理を完了する。これにより、第1工程において決定された適用期間に属する日の各々に在庫計画数が設定されることとなる。設定された在庫計画数は、日別基準安全在庫数データとして、日別在庫計画マスタ106aに格納される。
【0056】
第2に、生産管理方法の処理手順を説明する。この生産管理方法に係る処理の大部分は、制御部102の立案部102bにおいて実行される。また、これらの処理を実行するために、記憶部102に所定の作業領域(ワーク)を形成し、当該ワーク上で退避データを作成することが好ましい。
【0057】
まず、生産管理方法の第1工程においては、在庫管理方法の第1工程と同様に基準日付を決定した上で、対象となる製品について、生産拠点における受注に関する受注ファイルと引当に関する計画引当ファイルの読み出しを行う。読み出した受注ファイル及び計画引当ファイルは、必要に応じて、ワーク上で、初期化や不要なデータの削除が行われる。
【0058】
続いて、第2工程においては、対象となる製品について、生産拠点ごとに、製品の生産計画に係る生産計画ファイルを日別で作成する。具体的には、生産計画ファイルに、対象となる製品を生産すべき計画数を設定する(決定手段)。対象となる製品を生産すべき計画数は、該当する日付における在庫数と、第1工程において読み出した受注ファイルにおける製品の受注数及び納期に関するデータと、計画引当ファイルにおける引当数に関するデータと、上述した在庫管理方法に係る処理で作成した日別のデータに設定された在庫計画数とに基づいて設定される。ここで、該当する日付における在庫数は、該当する日付において既に生産完了して出荷済みの製品の数を示す完成数や出荷前のリードタイムも考慮される。概略的には、対象となる製品を生産すべき計画数は、在庫計画数から、引当数及び完成数を減算することで定まる。より好ましくは、1ロットに含まれる数を考慮して対象となる製品を生産すべき計画数を定める。なお、用いるデータの不足等により、生産計画ファイルが作成できていない場合等には、手配条件マスタ106bから読み出した手配条件、例えば、安全在庫数の上限値、下限値、又は所定の発注点を用いて、対象となる製品を生産すべき計画数として設定することが好ましい。
【0059】
そして、第3工程においては、別の生産拠点についても上述した第1工程〜第2工程の処理を行う。ここで、必要に応じて、全ての生産拠点についての製品の計画数の集計を行ってもよい。さらに、第4工程においては、他の製品についても生産管理を行う場合には、上述した第1〜第3工程の処理を行う。なお、第3工程及び第4工程に代えて、又は、並行して、各生産拠点について複数種類の製品の計画数の集計(まとめ処理)を行ってもよい(まとめ手段)。そして、生産管理方法に係るすべての処理を完了する。
【0060】
上述した第1の実施形態に係る生産計画自動立案方法によれば、在庫管理に際し、製品に対する需要予測を考慮して予め定められた所定の月における期末の在庫計画数に関する期末安全在庫数データを用いて、当該所定の月に属する日における在庫計画数に関する日別基準安全在庫数データを当該月に属する日の数の分だけ作成し(在庫管理方法の第4工程)、そして、上記の所定の月における製品の増減分に関する増減数データを用いて(在庫管理方法の第3工程)、日別基準安全在庫数データに対応する在庫計画数の各々に、増減数データに対応する製品の増減分を割り当てることにより、作成した日別基準安全在庫数データを更新する(在庫管理方法の第6工程)ので、上記の所定の月における期末の在庫計画数(製品の需要)に変動があっても、安全在庫数を確保しつつ、当該所定の月の期末の在庫計画数の増減分を日割りで配分することができる。すなわち、当該所定の月の期末の在庫計画数の増減分を当該所定の月において均して標準化することができる。また、基準日付を更新することで(在庫管理方法の第7工程)、さらに先の在庫計画数を決定することができる。
【0061】
また、上述の在庫管理に際し、稼働日であると判定された日別基準安全在庫数データの各々に対して、増減数データに対応する製品の増減分を割り当てる(在庫管理方法の第6工程)ので、稼働日、すなわち在庫数の調整が可能な日を選択して在庫管理を行うことができるとともに、生産管理の観点からも非稼働日を製品の生産に充てる必要をなくすことができる。さらには、在庫管理方法の第6工程においては、増減分を割り当てるために、稼働日に設定される係数を用いて傾斜配分を行って、日別基準安全在庫数データに割り当てられる在庫計画数の値を、稼働日の日付が進むにつれて漸増又は漸減させるので、生産設備及び生産体制を考慮した日割りで増産量の積み増し又は減産量の調整を行うことができ、これにより、製品の生産負荷が急増又は急減するのを回避することができる。
【0062】
また、本実施形態に係る生産計画自動立案方法によれば、生産管理に際し、在庫管理方法を用いて得られた日別基準安全在庫数データと、上記の所定の月における製品の引当数に関する引当数データとを用いて、上記の所定の月に属する日において製品を生産すべき計画数を決定する(生産管理方法の第2工程)ので、基準日付を含む月の翌月からの生産計画が自動的に立案されることとなる。この結果、上記の所定の月における期末の在庫計画数(製品の需要)に変動があっても、安全在庫数を確保しつつ、当該期末の在庫計画数に応じた製品の増産量又は減産量の絶対値を当該所定の月において均すことができ、これにより、期末に向けて増産又は減産を段階的に行うこと、すなわち生産負荷の標準化を図ることができる。また、基準日付を変更又は更新することで、さらに先の生産計画を立案することもできる。
【0063】
なお、「月に属する日の数」とは、上記生産管理方法を考慮する上では、上述のとおり、製品の生産を行う稼働日の数であることが好ましいが、生産管理方法を考慮せずに在庫管理のみに着目する場合には、単に、該当月に属する日の数としてもよく、この場合には、在庫数を考慮して必要な在庫数を算出して生産現場へ発注するか、又は、生産管理に際して稼働日を考慮した生産計画を立案することが好ましい。
【0064】
また、上述した第1の実施形態においては、月を単位とする期間(周期)についてのデータ(期末安全在庫数データ)を用いて、日を単位とする期間(周期)についてのデータ(日別基準安全在庫数データ)を作成しているが、期間の単位は、月日に限られることはなく、相対的に長い期間についてのデータを用いて相対的に短い期間についてのデータが作成されればよく、これにより、上述した効果と同等の効果を奏することができる。
【0065】
[4.第1の実施形態の具体例]
続いて、上述した第1の実施形態に係る生産計画自動立案方法の具体例について、
図5から
図41までを参照して説明する。
【0066】
[4−1.処理概要]
本具体例で実行される、月末安全在庫数に向けた生産計画自動立案の処理の概要について、
図5から
図12等を参照して説明する。
図5は、
図4における生産計画自動立案装置100が実行する処理の処理手順を模式的に示す図である。
【0067】
[ステップSA1:月末在庫計画数データ取込と日割り処理]
日割り処理部102aは、CSVデータマスタ106dを参照して月末安全在庫数をテキストデータ(CSVファイル)にて取込む(
図6参照)。そして、日割り処理部102aは、取り込んだデータ(期末安全在庫数データ)を各種ワークテーブルで処理して、日割りによる日別安全在庫数のデータ(日別基準安全在庫数データ)を作成し、作成したデータを日別在庫計画マスタ106aに設定(格納)する(
図6参照)。
【0068】
ここで、
図6に示したワークテーブル01(名称:“WF_”+JOBID+“01”)には、CSVファイル読込データ(文字列状態)のエラーチェック結果を記録したレコード(
図7参照)が格納される。
図6に示したワークテーブル02(名称:“WF_”+JOBID+“02”)には、エラーチェックの結果がOKであったCSVレコード(
図8参照)が格納される。また、
図6に示したワークテーブル03(名称:“WF_”+JOBID+“03”)には、エラーリスト用データ(
図9参照)が格納される。また、
図6に示したワークテーブル04(名称:“WF_”+JOBID+“04”)には、日割り処理後のレコード(
図10参照)が格納される。
【0069】
図11は、
図5のステップSA1において月末在庫計画数データ取込処理を行う際に表示される月末在庫計画数データ取込画面の一例を示す図である。
【0070】
この月末在庫計画数データ取込画面は、
図11に示されるように、取込対象のファイルを選択するための領域と、取込対象のファイルの先頭行がタイトルであることを選択(チェック)するための領域と、これから更新しようとするデータと同一のデータ(コード)がある場合の処理を選択するための領域と、取込開始年月を入力するための領域と、取込対象年月を入力するための領域とを含んでいる。ここで、取り込むデータに関し、先頭行からデータが格納されていることが予め判明している場合、先頭行がタイトルであることを選択するための領域については「チェックなし」で固定されていてもよいし、又は、先頭行がタイトルであることを選択するための領域を非表示にしてもよいし、若しくは、当該領域を設けなくてもよい。また、取込開始年月を入力するための領域の初期表示は、ユーザの手間を省くために、現在の日付(年月)とすることが好ましい。また、取込開始年月を入力するための領域の入力値に基づいて、取込対象年月を入力するための領域には「入力年月」と、「その翌月」と、「その翌々月」とを表示する。
【0071】
図12は、CSVデータマスタ106dに格納されているCSVレコードのレイアウトの一例を示す図である。
図12に示すように、CSVレコードには、複数か月分(
図12に示す例では3か月分)の月末在庫計画数が記録されている。なお、レコードの1行目に「データ名」を記録してもよく、この場合、データ行は2行目からとなる。また、数値項目は、「¥」、「−」、「,」、「.」を含んでいてもよい。また、データNo欄に記入がないものは、読み込み時に無視されるので、入力時のメモとして利用してもよい。また、途中に空行が見つかった場合、それ以降を読み飛ばしてもよい。
【0072】
[ステップSA2:生産計画自動立案]
立案部102bは、ステップSA1にて作成された日別安全在庫数のデータに基づいて、生産管理上の計画数を決定する。なお、日別安全在庫の設定がない製品(品目)については、手配条件マスタ106bに設定されている安全在庫数を生産管理上の計画数として採用する。
【0073】
以上で、[4−1.処理概要]の説明を終了する。
【0074】
[4−2.月末在庫計画数データ取込処理及び日割り処理の詳細]
本具体例で実行される、月末在庫計画数データ取込と日割り処理について、
図13から
図20までを参照して詳細に説明する。
図13は、
図5のステップSA1において実行される月末在庫計画数データ取込処理及び日割処理の処理手順を示すフローチャートである。
【0075】
ここで、本説明では、ワークテーブル02(ワーク02)に、チェックOKのCSVレコード(「翌月末在庫計画数」、「翌々月末在庫計画数」及び「翌々々月末在庫計画数」)が格納されているものとする。また、本説明において、データ名に付した「@」は、変数を示す記号である。また、本説明において、クライアント名(クライアントNo)が指定されているものとする。
【0076】
[ステップSB1:カーソルを作成]
日割り処理部102aは、ワーク02のデータを下記に示す抽出条件に従って抽出して、カーソル(以下、「カーソルA」という)を作成(データ領域特定)する。このカーソルAは、以下に示すソート順で、作成(データ領域移動)される。具体的には、ステップSB1〜SB10の処理を、ループ処理として実行する。すなわち、行NoごとにステップSB1〜SB10の処理が行われる。これにより、全ての行Noについてのカーソル作成が行われることとなる。
<抽出条件>
ワーク02.クライアントNo=クライアント名
<ソート順>
ワーク02.行No
【0077】
[ステップSB2:削除処理]
日割り処理部102aは、下記に示す抽出条件に従って、「これから更新しようとするカーソルAと同一データが、ワークテーブル04(ワーク04)に既に存在するか」をチェックする。
<抽出条件>
ワーク04.クライアントNo=クライアント名
&ワーク02.クライアントNo=クライアント名
&ワーク04.品目コード=カーソルA.品目コード
【0078】
上記チェックの結果、上記抽出条件に合致するデータが存在しなかった場合、日割り処理部102aは、後述するステップSB3の処理を実行する。上記チェックの結果、上記抽出条件に該当するデータが存在していた場合、日割り処理部102aは、以下に説明する処理を行う。なお、画面.同一コード(
図11に示した月末在庫計画数データ取込画面の同一のデータ(コード)がある場合の処理を選択するための領域)の選択値によって、日割り処理部102aは、処理を分岐させる。
(画面.同一コード=上書きの場合)
日割り処理部102aは、上記抽出条件に合致したワーク04のレコードを全て削除して、そのままステップSB3の処理へ進む。
(画面.同一コード=読み飛ばしの場合)
日割り処理部102aは、ステップSB1で作成したカーソルAについての以降の処理をスキップし、ステップSB1の処理に戻る。すなわち、カーソルAの次行へ進む。
【0079】
[ステップSB3:安全在庫数下限値取得]
日割り処理部102aは、手配条件マスタ106bを下記に示す抽出条件でリード(参照)して、安全在庫数の下限値(@安全在庫数下限)を取得する。ここで、安全在庫数の下限値は、標準手配パターンMにおいて標準パターンCDごとに設定されているか、又は基本情報MのパターンCDに応じて設定されている。そこで、日割り処理部102aは、品目M「製造拠点コード」及びカーソルA「品目コード」をKEYとして、標準手配パターンMを検索して、標準パターンCDを特定する。
<抽出条件>
拠点コード=品目M「製造拠点コード」
品目コード=カーソルA「品目コード」
工順=999
パターンCD=標準手配パターンM.標準パターンCD(なければ基本情報M.パターンCD)
【0080】
次に、日割り処理部102aは、ワーク02の「翌月末在庫計画数」、「翌々月末在庫計画数」及び「翌々々月末在庫計画数」の3つの項目に関連して、以下に説明するステップSB4〜SB10の処理を順番に実行する。このために、「翌月末在庫計画数」、「翌々月末在庫計画数」及び「翌々々月末在庫計画数」の各場合について、
図14に示すように、項目名<基準日付>、<計算対象日付>、及び<月末在庫計画数>を読み替えながら、ループ処理が行われる。また、<月末在庫計画数>の各々の値が、安全在庫数下限の値より小さい場合は、<月末在庫計画数>を@安全在庫数下限に読み替えるものとする。
【0081】
[ステップSB4:各変数の初期化]
日割り処理部102aは、下記に示すように各変数の初期化を行う。
@基準月末在庫計画数=0
@増減数=0
@翌年月=NULL
@合計稼働日数=0
@日別増減数=0
【0082】
[ステップSB5:基準月末在庫計画数取得]
日割り処理部102aは、下記の抽出条件を用いて、「<基準日付>」の月末の日別在庫計画M.在庫計画数(@基準月末在庫計画数)を取得する(ステップSB5)。
<抽出条件>
日別在庫計画M.品目コード=カーソルA.品目コード
日別在庫計画M.日付(年月)=<基準日付>(年月)
ここで、上記抽出条件で取得可能なレコードのうち、「最大の日付」レコードの在庫計画数を、@基準月末在庫計画数として取得する。
【0083】
[ステップSB6:増減数取得]
日割り処理部102aは、「カーソルA.<月末在庫計画数>−@基準月末在庫計画数」の値(@増減数)を取得する。
【0084】
[ステップSB7:計算対象日付取得]
日割り処理部102aは、「<計算対象日付>」の値(@翌年月)を取得する。
【0085】
[ステップSB8:合計稼働日数取得]
日割り処理部102aは、@翌年月の1日〜末日までの空レコードをワーク04へセットする(
図15参照)。
【0086】
なお、
図15に示す稼働区分は、カレンダーMを下記の抽出条件に従って参照することにより取得される(
図15に示す※1)。ここで、稼働区分を示す値は、稼働日では“1”であり、非稼働日(稼働休止日)では“0”である。
<抽出条件>
カレンダーM.拠点コード=品目M.製造拠点コード(カーソルA.品目コードで品目Mリード) →万が一インバリッドの場合、「000」でリード
&カレンダーM.年月日=@翌年月(1日〜末日)
【0087】
また、
図15に示す稼働日順位を示す数値(
図15に示す※2)については、
図16に示される例のように、日付順で稼働日(稼働区分=1)が現れるたびにインクリメントを行うことで取得する。
そして、日割り処理部102aは、翌年月の合計稼働日数(@合計稼働日数)を取得する。なお、合計稼働日数の値は、稼働日順位を示す数値の最大値と同一であるので、容易に取得可能である。
【0088】
[ステップSB9:日別増減数取得]
日割り処理部102aは、「@増減数÷@合計稼働日数」の値(@日別増減数)を取得する。この値は、例えば、小数点以下4桁目を四捨五入することにより得られる小数点以下3桁の数値である。
【0089】
[ステップSB10:計画在庫数を更新]
日割り処理部102aは、翌年月の1日〜末日のレコードに対して、下記条件に合致する稼働日について
図17に示すように在庫計画数を設定する。
図17に示す例では、各レコードに対して、稼働日順位に応じた値を用いることによって増産分の積み増し(漸増)又は減産分の調整(漸減)が行うことが可能となっている。
<条件>
ワーク04.クライアントNo=クライアント名
ワーク04.品目コード=カーソルA.品目コード
ワーク04.日付(年月)=@翌年月
ワーク04.稼動区分=1(稼動)
【0090】
さらに、日割り処理部102aは、下記の条件に合致するレコードのうち、ワーク04.日付が最大のもの(すなわち、該当月のうち稼働日の最終日に対応するレコード)の在庫計画数の値を取得して、月末日付レコードにおける在庫計画数の値として、@基準月末在庫計画数と同じ値を設定する(
図18参照)。これにより、月末日付レコードに@基準月末在庫計画数が設定されることとなる。
<条件>
ワーク04.クライアントNo=クライアント名
ワーク04.品目コード=カーソルA.品目コード
ワーク04.稼動区分=1
ワーク04.日付(年月)=@翌年月
【0091】
一方、日割り処理部102aは、下記の条件に合致する“非稼働日(稼働休止日)分の”レコードについて、
図19に示すように、在庫計画数を設定する。これにより、翌年月の1日〜末日のレコードが更新される。
<条件>
ワーク04.クライアントNo=クライアント名
ワーク04.品目コード=カーソルA.品目コード
ワーク04.日付(年月)=@翌年月
ワーク04.稼動区分=0(休止)
なお、
図19に示す非稼働日に設定される在庫計画数(
図19に示す※1)に関し、「ワーク04.日付−1日」が前月日付(すなわち前月の末日)に該当する場合は、@基準月末在庫計画数の値を在庫計画数の値として設定する。
【0092】
そして、引き続いてさらに翌月分等についての処理を行う場合には、ステップSB4の処理に戻り、次の行Noについての処理を行う場合には、ステップSB1の処理に戻り、全ての行Noについての処理が終わったら、本処理を完了する。
【0093】
ところで、日割り処理部102aは、所定のタイミング又は任意のタイミングにおいて日別在庫計画マスタの更新処理を行う場合、下記に示す条件に合致する日別在庫計画Mのレコードを削除して、ワークテーブル04の「クライアントNo」が一致するレコードの安全在庫数を、日別在庫計画Mへ追加(登録)する(
図20参照)。これにより、日別在庫計画マスタにおけるレコードが更新されることとなる。なお、該当マスタにおいて、レコードがインバリッド時は、安全在庫数として、NULLをセットする。
<条件>
日別在庫計画M.品目コード=ワーク04.品目コード
日別在庫計画M.日付(年月)=ワーク04.日付(年月)
ワーク04.クライアントNo=クライアント名
【0094】
以上で、[4−2.月末在庫計画数データ取込処理及び日割り処理の詳細]の説明を終了する。
【0095】
[4−3.生産計画自動立案処理の詳細]
本具体例で実行される、生産計画自動立案処理について、
図21から
図41までを参照して詳細に説明する。
図21は、
図5のステップSA2において実行される生産計画自動立案処理の処理手順を示すフローチャートである。
【0096】
図21に示す処理を実行するに先立って、得意先CD(得意先コード)、品目CD(品目コード)、品目諸口区分、製造拠点コード、受注納期、製造納期及び計画日等の必要な情報については、所定のデータ入力画面を介して予め入力がなされているものとする。なお、以下の説明においては、「受注データマスタ106e」を「受注F」と、「品目マスタ106c」を「品目M」と、「内示データマスタ106f」を「内示F」と、「手配条件マスタ106b」を「手配条件M」とも表記する場合がある。
【0097】
[ステップSC1:受注ファイル、内示ファイル抽出]
立案部102bは、以下に示す(10)〜(11)の処理を行う。
【0098】
(10)立案部102bは、以下に示す(10a)〜(10c)の処理を行うことにより、計画立案対象のレコードを受注Fから抽出して、ワークテーブルA(ワークA)に出力する。
【0099】
(10a)立案部102bは、受注Fから、下記の条件に合致するレコードとして、最終確注日が定まっている品目についてのレコード(すなわち出荷予定日を示す数値の最大値のレコード)を抽出して、それらの品目コード及び出荷予定日に関する情報をワークテーブルD(ワークD)に出力する(
図22参照)。
<条件>
受注F.得意先コード=画面.得意先コード(画面.得意先CD=NULLの時は条件に含めない)
受注F.品目コード=画面.品目コードの範囲内(画面.品目CDMin,Max=NULLの時は条件に含めない)
画面.品目CDMin=NULLの時、受注F.品目コード≦画面.品目コードMax
画面.品目CDMax=NULLの時、受注F.品目コード≧画面.品目コードMin
【0100】
(10b)立案部102bは、受注Fから、下記の条件に合致する計画立案対象のレコードを抽出する。
<条件>
受注F「品目諸口区分」=0(一般)
&品目M「製造拠点コード」=画面「製造拠点CD」
&受注F「生産計画必要区分」≠0
&品目M「品目区分」≠99
&受注F「完納区分」≠1 or {受注F「完納区分」=1&同「在庫管理出荷数」>同「在庫引当数」+同「製造完成数」}
&受注F「納期」≦画面「受注納期」(画面「受注納期」=NULLの時は条件に含めない)
&受注F「製造出荷日」≦画面「製造納期」(画面「製造納期」=NULLの時は条件に含めない)
&受注区分≠2(内示受注) or {受注区分=2(内示受注)&品目M「内示受注計画区分」≠0(計画立案しない)}
&受注F.得意先コード=画面.得意先コード(画面.得意先CD=NULLの時は条件に含めない)
&受注F.品目コード=画面.品目コードの範囲内(画面.品目CDMin,Max=NULLの時は条件に含めない)
画面.品目CDMin=NULLの時、受注F.品目コード≦画面.品目コードMax
画面.品目CDMax=NULLの時、受注F.品目コード≧画面.品目コードMin
【0101】
(10c)立案部102bは、(10b)で抽出した計画立案対象のレコードを、ワークAに出力する(
図23参照)。なお、
図23に示す安全在庫数、発注点、及び発注検討期間の値(
図23における注1)については、以下に示すi)〜iii)の処理をこの順で行うことによって、求められる。
i)初期値として0を設定する。
ii)手配条件Mを、製造拠点コード+品目コード+工順[999]+パターン[1]にてリードする。ただし、各項目がNULLの場合及び手配条件Mインバリット時は0とする。一方、バリット時には、リードの結果として取得した値を用いて、以下のように各項目を設定(セット)する。
ワークA.安全在庫数(上限)←手配条件M.安全在庫数(上限)
ワークA.安全在庫数(下限)←手配条件M.安全在庫数(下限)
ワークA.発注点 ←手配条件M.発注点
ワークA.発注検討期間 ←手配条件M.発注検討期間
iii)日別在庫計画Mを、品目コード+出荷予定日にてリードし、バリット時には、安全在庫数の上限及び発注点について、リードの結果として取得した値を用いて、以下のように上書きを行う。
ワークA.安全在庫数(上限)←日別在庫計画M.在庫計画数
ワークA.発注点 ←日別在庫計画M.在庫計画数
なお、安全在庫数の下限については手配条件Mからのセットのみである。
【0102】
(11)立案部102bは、以下に示す(11a)〜(11c)の処理を行うことにより、計画立案対象の内示Fからレコードを抽出して、ワークAに追加出力する。
【0103】
(11a)立案部102bは、受注Fから、下記の条件に合致する計画立案対象のレコードを抽出する。これにより、内示受注に関するレコードが抽出される。
<条件>
品目M.製造拠点コード=画面.製造拠点コード
&内示F.得意先コード=画面.得意先コード(画面.得意先CD=NULLの時は条件に含めない)
&内示F.品目コード=画面.品目コードの範囲内(画面.品目CDMin,Max=NULLの時は条件に含めない)
画面.品目CDMin=NULLの時、内示F.品目コード≦画面.品目コードMax
画面.品目CDMax=NULLの時、内示F.品目コード≧画面.品目コードMin
&内示F.内示日≦画面.受注納期(画面.受注納期=NULLの時は条件に含めない)
&内示F.内示日≦画面.製造納期(画面.製造納期=NULLの時は条件に含めない)
&内示F.内示日≧画面.計画日
ただし、下記条件にマッチしたレコードについては、この(11a)で抽出されたとしても、以下の(11b)では出力されないか、又は、出力されたとしても、既にデータがあれば上書きしないように設定されている。
<条件>
内示F.品目コード=ワークA.品目コード
&内示F.出荷予定日=ワークA.出荷予定日
&ワークA.完納区分≠11
【0104】
(11b)立案部102bは、(11a)で抽出したレコードをワークAに出力する(
図24参照)。
ここで、
図24に示す製造出荷日の値(
図24における注1)は、以下に示すように求めて設定される。なお、用いる用語等は、共通仕様である稼働日算出処理で用いた用語に準ずる。すなわち、製造出荷日(基準日)は、出荷予定日に倉入リードタイムを考慮して決定される。
基準日:出荷予定日−倉入LT
LT:0
拠点コード:製造拠点コード
増減区分:2(過去)
なお、上記の倉入LTの値としては、倉入LTM(マスタ)において、出荷場所コード+製造拠点コードをKEYとして読み出した「倉入LT」の値を用いる。ただし、INV(引当)時には、基本情報Mにおける「倉入LT」の値を用いる。
【0105】
また、
図24に示す安全在庫数、発注点、及び発注検討期間の値(
図24における注2)については、以下に示すi)〜iii)の処理をこの順で行うことによって、求められる。
i)初期値として0を設定する。
ii)手配条件Mを、製造拠点コード+品目コード+工順[999]+パターン[1]にてリードする。ただし、各項目がNULLの場合及び手配条件Mインバリット時は0とする。一方、バリット時には、リードの結果として取得した値を用いて、以下のように各項目を設定(セット)する。
ワークA.安全在庫数(上限)←手配条件M.安全在庫数(上限)
ワークA.安全在庫数(下限)←手配条件M.安全在庫数(下限)
ワークA.発注点 ←手配条件M.発注点
ワークA.発注検討期間 ←手配条件M.発注検討期間
iii)日別在庫計画Mを、品目コード+出荷予定日にてリードし、バリット時には、安全在庫数の上限及び発注点について、リードの結果として取得した値を用いて、以下のように上書きを行う。
ワークA.安全在庫数(上限)←日別在庫計画M.在庫計画数
ワークA.発注点 ←日別在庫計画M.在庫計画数
なお、安全在庫数の下限については手配条件Mからのセットのみである。
【0106】
(11c)立案部102bは、(11b)でワークAに出力したレコードを対象として、受注引当ファイル(以下、「受注引当F」,「受注引当在庫F」ともいう)の再生成を行う。この受注引当F再生成処理においては、現在の在庫数に対する受注残分の在庫引当が行われ、これにより、受注の対象となっていない在庫数がより明らかとなる。なお、受注引当ファイルは、在庫引当数について新規設定及び変動の旨の入力があった場合に更新される。
【0107】
ここで、
図25等を参照して、受注引当F再生成処理について説明する。立案部102bは、受注引当F再生成処理を、以下の手順(1)〜(5)で行う。
【0108】
(1)立案部102bは、ワークAにおける複数のレコードについて、「品目コード」>「出荷拠点コード」>「出荷場所コード」>「出荷予定日」>「受注番号」の順でソートする。これにより、以下に示す(2)〜(4)の処理が完了するたびにソート順で次のレコードがリードされる。ただし、完納区分=11(キャンセル)の条件に合致するレコードは読み飛ばされる。
【0109】
(2)品目コード+“999”+出荷拠点コード+出荷場所コードで現在在庫Fをリードして、現在庫数を「ワーク現在庫数」として取得する。ただし、資産区分=1(自社資産)、状態区分=0(通常) or 1(未検査)のレコードのみについて、現在庫数の取得が行われる。
【0110】
(3)品目コード+“999”+出荷拠点コード+出荷場所コードで受注引当在庫Fをリードし、
図25に示されるような更新(INV時には追加)を行う。
【0111】
(4)ワークA.受注番号にて受注Fをリードして、ワーク現在庫数に応じて、以下に示す(4−1)又は(4−2)の更新を行う。
(4−1)「ワーク現在庫数」≧(ワークA.在庫管理受注数−ワークA.在庫管理出荷数)の場合
・内示データ区分=0(受注)のときのみ
受注F.在庫引当数←受注F.在庫管理受注数
受注F.製造指示数←0
・受注引当在庫F.受注引当数←受注F.在庫管理受注数を加算
・ワークA.計画立案必要数←0
・「ワーク現在庫数」←(ワークA.在庫管理受注数−ワークA.在庫管理出荷数)を減算
(4−2)「ワーク現在庫数」<(ワークA.在庫管理受注数−ワークA.在庫管理出荷数)の場合
・内示データ区分=0(受注)のときのみ
受注F.在庫引当数←受注F.在庫管理出荷数+「ワーク現在庫数」
受注F.製造指示数←(ワークA.在庫管理受注数−ワークA.在庫管理出荷数)−「ワーク現在庫数」
・受注引当在庫F.受注引当数←「ワーク現在庫数」を加算
・ワークA.計画立案必要数←上記計算後.製造指示数
・「ワーク現在庫数」←0
【0112】
(5)上記(4)の更新処理は、ワークA.品目コード+出荷拠点コード+出荷場所コードがブレークするまで繰り返し行われる。ブレークした場合、上記(1)に戻って、他のレコードについても上述した処理を行う。
【0113】
[ステップSC2:初期化、削除処理]
立案部102bは、以下に示す(20)〜(24)の処理を行う。
【0114】
(20)立案部102bは、ワークAに出力したレコードを対象として、受注Fの初期化処理を行う。この処理の詳細は、
図26に示されている。これにより、受注ファイルが更新される。
【0115】
(21)立案部102bは、下記の条件に合致するレコードを対象として、生産計画Fの初期化処理を行う。この処理の詳細は、
図27に示されている。これにより、生産計画ファイルが更新される。
<条件>
生産計画F「製造拠点コード」=画面「製造拠点CD」
&品目M.メーカーコード=画面.得意先コード(画面.得意先CD=NULLの時は条件に含めない)
&計画引当F.品目コード=画面.品目コードの範囲内(画面.品目CDMin,Max=NULLの時は条件に含めない)
画面.品目CDMin=NULLの時、計画引当F.品目コード≦画面.品目コードMax
画面.品目CDMax=NULLの時、計画引当F.品目コード≧画面.品目コードMin
【0116】
(22)立案部102bは、下記の条件に合致するレコードを不要データとして、計画引当Fから削除する。さらに、計画引当ファイルから削除対象としたレコードに紐づいている生産計画ファイルであって、生産計画F「所要量計算日」=NULLの条件に合致する生産計画ファイルも削除される。
<条件>
生産計画F「製造拠点コード」=画面「製造拠点CD」
&品目M.メーカーコード=画面.得意先コード(画面.得意先CD=NULLの時は条件に含めない)
&計画引当F.品目コード=画面.品目コードの範囲内(画面.品目CDMin,Max=NULLの時は条件に含めない)
画面.品目CDMin=NULLの時、計画引当F.品目コード≦画面.品目コードMax
画面.品目CDMax=NULLの時、計画引当F.品目コード≧画面.品目コードMin
&計画引当F「受入番号」=0
&計画引当F「振替計画番号」=0
&計画引当F「生産計画区分」≠11(自動立案計画)
or計画引当F「生産計画区分」=11(自動立案計画)&計画引当F「計画引当区分」=1(分割引当する)
or計画引当F「生産計画区分」=11(自動立案計画)&計画引当F「計画まとめ区分」=1(まとめる)
or計画引当F「生産計画区分」=11(自動立案計画)&品目M「計画引当区分」=1(分割引当する)
or計画引当F「生産計画区分」=11(自動立案計画)&品目M「計画まとめ区分」=1(まとめる)
ただし、受注番号、生産計画番号、及び受入番号がいずれも“0”でないレコードについては、受注F、生産計画F、及び受入実績Fにおいて該当するレコードが存在するかどうかのチェックを行い、すべてがバリッドでないレコードも削除対象とする。
【0117】
(23)立案部102bは、下記の条件に合致するレコードを不要データとして、生産計画Fから削除する。
<条件>
生産計画F「製造拠点コード」=画面「製造拠点CD」&生産計画F「生産計画区分」=12(内示自動立案計画)
&品目M.メーカーコード=画面.得意先コード(画面.得意先CD=NULLの時は条件に含めない)
&生産計画F.品目コード=画面.品目コードの範囲内(画面.品目CDMin,Max=NULLの時は条件に含めない)
画面.品目CDMin=NULLの時、生産計画F.品目コード≦画面.品目コードMax
画面.品目CDMax=NULLの時、生産計画F.品目コード≧画面.品目コードMin
【0118】
(24)立案部102bは、下記の条件に合致するレコードを対象として、計画引当Fの初期化処理を行う。この処理の詳細は、
図28に示されている。これにより、計画引当ファイルが更新される。
<条件>
生産計画F「製造拠点コード」=画面「製造拠点CD」
&計画引当F「受入番号」=0
&品目M.メーカーコード=画面.得意先コード(画面.得意先CD=NULLの時は条件に含めない)
&生産計画F.品目コード=画面.品目コードの範囲内(画面.品目CDMin,Max=NULLの時は条件に含めない)
画面.品目CDMin=NULLの時、生産計画F.品目コード≦画面.品目コードMax
画面.品目CDMax=NULLの時、生産計画F.品目コード≧画面.品目コードMin
【0119】
[ステップSC3:新規計画作成準備]
立案部102bは、ワークAの全てのレコードを対象として、生産計画Fに、新規の生産計画レコード(以下、単に「新規計画」ともいう)を作成するための準備として、ワークAにあるレコードの各々を、計画まとめ区分の値に応じて、所定の出力先(ワーク)へ出力する。具体的には、ワークA.計画まとめ区分=0(しない)の場合には、該当レコードを、後述する製番的計画F作成処理を行うための作業領域であるワークCへ出力する。また、ワークA.計画まとめ区分=1(する)の場合、該当レコードを、後述するMRP的計画F作成処理を行うための作業領域であるワークDへ出力する。なお、計画まとめ区分とは、資材所要量計画(MRP)等を目的として、複数の生産計画レコードのとりまとめ(集計)を行う予定があるかどうかを示す識別フラグであり、各レコードに設定されている。
【0120】
[ステップSC4:計画ファイル作成処理]
立案部102bは、ワークCにレコードがあるかワークDにレコードがあるかを判別し、判別結果に応じて、計画ファイル作成処理を変更する。具体的には、ワークCにレコードがある場合には、計画ファイル作成処理として、製番的計画F作成処理を行い(ステップSC4a)、一方、ワークDにレコードがある場合には、計画ファイル作成処理として、MRP的計画F作成処理を行う(ステップSC4b)。
【0121】
[ステップSC4a:製番的計画F作成処理]
まず、製番的計画F作成処理について説明する。
【0122】
立案部102bは、ワークCにレコードがある場合、以下に示す手順(1)〜(4)で、製番的計画F作成処理を行う。
【0123】
(1)ワークCにおける複数のレコードについて下記ソートキーによりソート処理を行う。
ソートキー:品目コード>出荷予定日>内示データ区分>受注番号
【0124】
(2)ワークCの複数のレコードのうち、未処理のレコードであって上記(1)のソート順の最上位のレコードをリードして、以下のように、プログラム内「計画立案必要数」を設定する。
プログラム内「計画立案必要数」←ワークC.計画立案必要数
【0125】
(3)計画引当ファイルをリードし、以下の条件に合致するレコードを抽出する。
<条件>
計画引当F「受注番号」=ワークC「受注番号」
&計画引当F「受入番号」=0
&計画引当F「振替計画番号」=0
ここで、バリット時には、生産計画ファイルにおいて再引当処理を実行するとともに、計画引当ファイルにおいて第1の更新処理を実行し、上記(2)に戻って、ワークCにおける次のレコードに対して製番的計画F作成処理を行う。生産計画ファイルにおける再引当処理の詳細は、
図29に示されており、また、計画引当ファイルにおける第1の更新処理の詳細は、
図30に示されている。これらにより、生産計画ファイル及び計画引当ファイルが更新される。
【0126】
(4)ワークCから生産計画Fのレコードをリードして、ワークC内「計画引当区分」の値を判別し、判別結果に応じて以下の処理(4−1)又は(4−2)を行う。
【0127】
(4−1)ワークC内「計画引当区分」=0(分割引当しない)の場合には、まず、下記の条件に合致するレコードを生産計画Fから抽出する。
<条件>
ワークC「製造出荷日」≧生産計画F「納期」
&生産計画F「製造拠点コード」=画面「製造拠点CD」
&生産計画F「品目コード」=ワークC「品目CD」
&生産計画F「計画数」−同「計画引当数」−同「完成数」≧プログラム内「計画立案必要数」
&生産計画F「生産計画区分」=1、11
&生産計画F「完納区分」=0
なお、上記の抽出の結果、複数のレコードで納期が同じ場合は、生産計画F「生産計画区分」の優先度が高い方(1→11の順に優先度が下がる)のレコードを使用する。
【0128】
続いて、抽出したレコードに対して、以下の手順A)〜E)で、処理を行う。
A)プログラム内「計画立案必要数」を、プログラム内「ワーク計画立案数」、プログラム内「ワーク計画数」、プログラム内「ワーク計画引当数」とする。
B)受注ファイルにおいて再引当処理を行う。この受注ファイルにおける再引当処理の詳細は、
図31に示されている。これにより、受注ファイルが更新される。
C)生産計画ファイルにおいて、
図29に示した再引当処理を行う。これにより、生産計画ファイルが更新される。
D)ワークC「完納区分」≠11(キャンセル)の場合、計画引当ファイルにおいて、
図30に示した第1の更新処理を行う。これにより、計画引当ファイルが更新される。
E)ワークCにおける次のレコードに対して上述した処理を行う。
【0129】
なお、上記(4−1)の抽出処理の結果、上記条件に合致するレコードがなかった場合には、以下の手順A)〜F)で、処理を行う。
A)プログラム内「計画立案必要数」を、プログラム内「ワーク計画立案数」、プログラム内「ワーク計画数」、プログラム内「ワーク計画引当数」とする。
B)ワークC「計画立案区分」≠1(自動立案)の場合、ワークCにおける次のレコードに対して上述した処理を行う。
C)受注ファイルにおいて、
図31に示した再引当処理を行う。これにより、受注ファイルが更新される。
D)生産計画ファイルにおいて第1の追加処理を行う。この際に行われる生産計画ファイルにおける第1の追加処理の詳細は、
図32に示されている。これにより、生産計画ファイルが更新される。
E)計画引当ファイルにおいて第1の追加処理を行う。この際に行われる計画引当ファイルにおける第1の追加処理の詳細は、
図33に示されている。これにより、計画引当ファイルが更新される。
F)ワークCにおける次のレコードに対して上述した処理を行う。
【0130】
(4−2)ワークC内「計画引当区分」=1(分割引当する)の場合には、まず、下記の条件に合致するレコードを生産計画Fから抽出する。
<条件>
ワークC「製造出荷日」≧生産計画F「納期」
&生産計画F「製造拠点コード」=画面「製造拠点CD」
&生産計画F「品目コード」=ワークC「品目CD」
&生産計画F「計画数」−同「計画引当数」−同「完成数」>0
&生産計画F「生産計画区分」=1or11
&生産計画F「完納区分」=0
なお、上記の抽出の結果、複数のレコードで納期が同じ場合は、生産計画F「生産計画区分」の優先度が高い方(1→11の順に優先度が下がる)のレコードを使用する。
【0131】
続いて、抽出したレコードにおいて、生産計画F「計画数」−同「計画引当数」−同「完成数」の演算結果を取得し、取得した演算結果に応じて、以下の処理(A)又は処理(B)を行う。
(A)生産計画F「計画数」−同「計画引当数」−同「完成数」≧プログラム内「計画立案必要数」の場合には、以下の手順a)〜e)で処理を行う。
a)プログラム内「計画立案必要数」を、プログラム内「ワーク計画立案数」、プログラム内「ワーク計画数」、プログラム内「ワーク計画引当数」とする。
b)受注ファイルにおいて、
図31に示した再引当処理を行う。これにより、受注ファイルが更新される。
c)生産計画ファイルにおいて第2の再引当処理を行う。この生産計画ファイルにおける第2の再引当処理の詳細は、
図34に示されている。これにより、生産計画のファイルが更新される。
d)受注F「完納区分」≠11(キャンセル)の場合、計画引当ファイルにおいて、
図30に示した第1の更新処理を行う。これにより、計画引当ファイルが更新される。
e)ワークCにおける次のレコードに対して上述した処理を行う。
(B)生産計画F「計画数」−同「計画引当数」−同「完成数」<プログラム内「計画立案必要数」の場合には、以下の手順a)〜f)で処理を行う。
a)生産計画F「計画数」−同「計画引当数」−同「完成数」を、プログラム内「ワーク計画立案数」、プログラム内「ワーク計画数」、プログラム内「ワーク計画引当数」とする。
b)受注ファイルにおいて、
図31に示した再引当処理を行う。これにより、受注ファイルが更新される。
c)生産計画ファイルにおいて
図34に示した第2の再引当処理を行う。これにより、生産計画のファイルが更新される。
d)受注F「完納区分」≠11(キャンセル)の場合、計画引当ファイルにおいて、
図30に示した第1の更新処理を行う。これにより、計画引当ファイルが更新される。
e)プログラム内「計画立案必要数」−(生産計画F「計画数」−同「計画引当数」−同「完成数」)を、プログラム内「計画立案必要数」とする。
f)次の生産計画データに対して上述した処理を行う。
【0132】
なお、上記(4−2)の抽出処理の結果、生産計画データを全て読み終わっても、プログラム内「計画立案必要数」>0の場合、並びに、上記(4−2)の抽出処理の結果、上記条件に合致するレコードがなかった場合には、以下の手順A)〜F)で、処理を行う。
A)プログラム内「計画立案必要数」を、プログラム内「ワーク計画立案数」、プログラム内「ワーク計画数」、プログラム内「ワーク計画引当数」とする。
B)ワークC「計画立案区分」≠1(自動立案)の場合、ワークCにおける次のレコードに対して上述した処理を行う。
C)受注ファイルにおいて、
図31に示した再引当処理を行う。これにより、受注ファイルが更新される。
D)生産計画ファイルにおいて、
図32に示した第1の追加処理を行う。これにより、生産計画のファイルが更新される。
E)計画引当ファイルにおいて、第2の追加処理を行う。この計画引当ファイルにおける第2の追加処理の詳細は、
図35に示されている。さらに、計画引当ファイルにおいて、
図30に示した第1の更新処理を行う。これらにより、計画引当ファイルが更新される。
F)ワークCにおける次のレコードに対して上述した処理を行う。
【0133】
上述したようにして、ステップSC4aの製番的計画F作成処理が行われる。
【0134】
[ステップSC4b:MRP的計画F作成処理]
次に、MRP的計画F作成処理について説明する。
【0135】
立案部102bは、ワークDにレコードがある場合、以下に示す手順(1)〜(6)で、MRP的計画F作成処理を行う。
【0136】
(1)ワークDにおける複数のレコードについて下記ソートキーによりソート処理を行う。
ソートキー:品目コード>出荷予定日>内示データ区分>受注番号
【0137】
(2)ワークFを作成し、初期化して空ファイルにする。このワークFは、MRP用予定在庫ワークとして機能することとなる。
【0138】
(3)ワークDにおける複数のレコードをリードし、ワークD「製造拠点コード」・「品目コード」がブレークする毎の初回に、以下の処理(3−1)〜(3−5)を行う。
【0139】
(3−1)ワークF(MRP用予定在庫ワークF)をクリア(初期化)して、1レコード追加する。
図36には、ワークFに1レコードを追加する処理が示されている。
(3−2)プログラム内「W計画必要数」に“0”をセットする。
【0140】
(3−3)プログラム内「現在在庫数」の値を、以下の手順(A)〜(C)にしたがって算出する。
(A)現在在庫ファイルから、下記の抽出条件にマッチするレコードを抽出し、抽出したすべてのレコードから取得される「現在庫数」の値を集計して、集計結果を「ワーク現在庫数」として取得する。
<抽出条件>
現在在庫F「品目コード」=ワークD.品目コード
&現在在庫F「工順」=“999”
&現在在庫F「拠点コード」=画面.拠点コード
&現在在庫F「資産区分」=“1”(自社資産)
&現在在庫F「在庫状態区分」=“0”(通常)or“1”(未検査)
&現在在庫F「現在庫数」≠“0”
【0141】
(B)受注引当在庫ファイルから、下記の抽出条件にマッチするレコードを抽出し、抽出したすべてのレコードから取得される「受注引当数」を集計して、集計結果を「ワーク受注引当数」として取得する。
<抽出条件>
受注引当在庫F「品目コード」=ワークD.品目コード
&受注引当在庫F「工順」=“999”
&受注引当在庫F「拠点コード」=画面.拠点コード
&受注引当在庫F「受注引当数」≠“0”
【0142】
(C)「ワーク現在庫数」−「ワーク受注引当数」の値を、プログラム内「現在庫数」とする。
(3−4)まず、手配ファイルから、下記の抽出条件にマッチするレコードを抽出する。
<抽出条件>
手配F「手配発生区分」≠“4”(直送受注)、“12”(計画外追加)、“13”(計画外分割)
&手配F「製造拠点コード」=ワークD「製造拠点コード」
&手配F「品目コード」=ワークD「品目コード」
&手配F「工順」=“999”
&手配F「完納区分」=“0”
&手配F(「手配数」−「受入数」)>“0”
&(手配F「内示区分」≠1 or 手配F「手配方式区分」≠1)
続いて、抽出した手配Fのレコードから、「手配納期」でワークFをリードし、バリッド時には、手配F「手配数」−「受入数」の値を、「手配数」に加算して更新する。なお、インバリッド時には、
図37に示すような項目をセットして、追加出力する。
【0143】
(3−5)まず、生産計画ファイルから、下記の抽出条件にマッチするレコードを抽出する。
<抽出条件>
計画F「生産計画区分」≠“1”(見込計画)、“11”(自動立案計画)
&計画F「製造拠点コード」=ワークD「製造拠点コード」
&計画F「品目コード」=ワークD「品目コード」
&計画F「工順」=“999”
&計画F「完納区分」=“0”
&計画F(「計画数」−「完成数」)>“0”
&計画F「所要量計算日」=NULL
続いて、抽出した生産計画Fのレコードから、「納期」でワークFをリードし、バリッド時には、計画F「計画数」−「完成数」の値を、「手配数」に加算して更新する。なお、インバリッド時には、
図38に示すような項目をセットして、追加出力する。
【0144】
(4)上記(3)の処理の結果、ワークD「製造拠点コード」・「品目コード」・「工順」が同一のレコードが複数存在する場合には、まず、ワークD「出荷予定日」でワークFのレコードをリードし、バリッド時には、ワークD「計画立案必要数」の値を「必要数」に加算して更新する。なお、インバリッド時には、
図39に示すような項目をセットして、追加出力する。続いて、ワークDのレコード内容をプログラム内項目(以下、「退避ワークD」ともいう)に退避する。ただし、「最小計画数」が“0”の時、及び、「増分計画数」が“0”の時は、在庫単位コードの小数有効桁数で最小値を求める。これらの処理が完了したら、上記(3)の処理に戻って、ワークDにおける次のレコードに対して処理を行う。
【0145】
(5)ワークDにおける複数のレコードをリードし、ワークD「製造拠点コード」・「品目コード」・「工順」がブレークするたびに、以下の処理(5−1)〜(5−2)を行う。
【0146】
(5−1)プログラム内「現在在庫数」の値を、プログラム内「予定在庫数」にセットする。このとき、プログラム内「現在在庫数」には、受注引当F再生成処理について説明したとおり、在庫引当後の現在庫数が記録されている。
【0147】
(5−2)ワークFのレコードをリードして、以下の処理(A)〜(E)を行う。
【0148】
(A)プログラム内「予定在庫数」−ワークF「必要数」+ワークF「手配数」の値を、プログラム内「予定在庫数」にセットする。
【0149】
(B)プログラム内「予定在庫数」≧退避ワークD「発注点」の時、プログラム内「予定在庫数」を、ワークF「予定在庫数」にセットし、(A)の処理へ戻って、次のレコードに対する処理を行う。
【0150】
(C)リードしたレコードの「年月日」から、範囲内で最大の「予定在庫数」を取得する。この際、発注検討期間が考慮される。具体的には、まず、リードしたレコードの「年月日」に対して、退避ワークD「発注検討期間」に該当する日数分(稼働日ベースでの日数分)をプラスした日付(年月日)を算出し(GetLeadDay)、続いて、算出した日付の範囲内で最大値をとる「予定在庫数」を取得する。
【0151】
(D)取得した「予定在庫数」の値に応じて、以下のようにして、手配必要数を求める。「予定在庫数」≧退避ワークD「発注点」の場合には、まず、プログラム内「予定在庫数」の値をチェックし、プログラム内「予定在庫数」≧退避ワークD「安全在庫数(下限)」のときは、プログラム内「予定在庫数」の値を、ワークF「予定在庫数」にセットし、(A)の処理へ戻って、次のレコードに対する処理を行い、一方、プログラム内「予定在庫数」<退避ワークD「安全在庫数(下限)」のときは、退避ワークD「安全在庫数(上限)」−プログラム内「予定在庫数」の値を、プログラム内「手配必要数」とする。他方で、「予定在庫数」<退避ワークD「発注点」の場合には、退避ワークD「安全在庫数(上限)」−プログラム内「予定在庫数」の値を、プログラム内「手配必要数」とする。
【0152】
(E)以下の処理(E−1)〜(E−3)で、数量まとめを行う。この処理により、ロット数を考慮した手配必要数を設定することが可能となる。
【0153】
(E−1)プログラム内「手配必要数」≦退避ワークD「最小ロット数」の時、以下の処理(a)〜(e)を行う。
(a)退避ワークD「最小ロット数」の値を、プログラム内「W手配数」にセットする。
(b)生産計画ファイルにおいて、第2の追加処理を行う。この際に行われる生産計画ファイルにおける第2の追加処理の詳細は、
図40に示されている。さらに、計画引当ファイルにおいて、第2の追加処理を行う。この際に行われる計画引当ファイルにおける第2の追加処理の詳細は、
図41に示されている。これらにより、生産計画ファイル及び計画引当ファイルが更新される。
(c)プログラム内「W手配数」の値を、プログラム内「予定在庫数」に加算する。
(d)プログラム内「予定在庫数」の値を、ワークF「予定在庫数」にセットし、更新をする。
(e)(A)の処理へ戻って、次のレコードに対する処理を行う。
【0154】
(E−2)退避ワークD「最大ロット数」=“0”の時、以下の処理(a)〜(f)を行う。
(a)(プログラム内「手配必要数」−退避ワークD「最小ロット数」)÷退避ワークD「増分ロット数」の演算結果(切上げ)を、「WKA」とする。<「WKA」:9(9)>
(b)「WKA」×退避ワークD「増分ロット数」+退避ワークD「最小ロット数」の値を、プログラム内「W手配数」にセットする。
(c)生産計画ファイルにおいて、
図40に示した第2の追加処理を行う。さらに、計画引当ファイルにおいて、
図41に示した第2の追加処理を行う。これらにより、生産計画ファイル及び計画引当ファイルが更新される。
(d)プログラム内「W手配数」の値を、プログラム内「予定在庫数」に加算する。
(e)プログラム内「予定在庫数」の値を、ワークF「予定在庫数」にセットし、更新をする。
(f)(A)の処理へ戻って、次のレコードに対する処理を行う。
【0155】
(E−3)退避ワークD「最大ロット数」≠“0”の時、以下の処理(a)〜(d)を行う。
【0156】
(a)プログラム内「手配必要数」÷退避ワークD「最大ロット数」の演算結果を、「WKN」余り「WKM」とする。
【0157】
(b)以下の処理(b−1)〜(b−3)を「WKN」の値分繰り返し行う。
(b−1)退避ワークD「最大ロット数」の値を、プログラム内「W手配数」にセットする。
(b−2)生産計画ファイルにおいて、
図40に示した第2の追加処理を行う。さらに、計画引当ファイルにおいて、
図41に示した第2の追加処理を行う。これらにより、生産計画ファイル及び計画引当ファイルが更新される。
(b−3)プログラム内「W手配数」の値を、プログラム内「予定在庫数」に加算する。
(b−4)プログラム内「予定在庫数」の値を、ワークF「予定在庫数」にセットし、更新をする。
【0158】
(c)「WKM」≦退避ワークD「最小ロット数」の時、以下の処理(c−1)〜(c−4)を行う。
(c−1)退避ワークD「最小ロット数」の値を、プログラム内「W手配数」にセットする。
(c−2)生産計画ファイルにおいて、
図40に示した第2の追加処理を行う。さらに、計画引当ファイルにおいて、
図41に示した第2の追加処理を行う。これらにより、生産計画ファイル及び計画引当ファイルが更新される。
(c−3)プログラム内「W手配数」の値を、プログラム内「予定在庫数」に加算する。
(c−4)プログラム内「予定在庫数」の値を、ワークF「予定在庫数」にセットし、更新をする。
【0159】
(d)「WKM」>退避ワークD「最小ロット数」の時、以下の処理(d−1)〜(d−5)を行う。
(d−1){(「WKM」−退避ワークD「最小ロット数」)÷退避ワークD「増分ロット数」}の演算結果(切上げ)を、「WKA」とする。<「WKA」:9(9)>
(d−2)退避ワークD「最小ロット数」+退避ワークD「増分ロット数」×「WKA」の値を、プログラム内「W手配数」にセットする。
(d−3)生産計画ファイルにおいて、
図40に示した第2の追加処理を行う。さらに、計画引当ファイルにおいて、
図41に示した第2の追加処理を行う。これらにより、生産計画ファイル及び計画引当ファイルが更新される。
(d−4)プログラム内「W手配数」の値を、プログラム内「予定在庫数」に加算する。
(d−5)プログラム内「予定在庫数」の値を、ワークF「予定在庫数」にセットし、更新をする。
【0160】
(F)上述した(A)の処理へ戻って、次のレコードに対する処理を行う。
【0161】
(6)上述した(3)の処理へ戻って、ワークDにおける次のレコードに対する処理を行う。全てのレコードに対する処理が終了したら、本処理を完了する。
【0162】
上述したようにして、ステップSC4bのMRP的計画F作成処理が行われる。
【0163】
なお、上述したステップSC4aの製番的計画F作成処理及びステップSC4bのMRP的計画F作成処理において、決定した計画数について所定の出力及び必要な更新処理が行われる。
【0164】
以上で、[4−3.生産計画自動立案処理の詳細の詳細]の説明を終了する。
【0165】
[5.第2の実施形態]
次に、本発明の第2の実施形態について説明する。
【0166】
上述した第1の実施形態においては、生産計画自動立案方法を用いて、在庫管理方法に係る処理と、生産管理方法に係る処理とを実行して、製品を生産すべき計画数を決定したが、本実施形態においては、製品を生産すべき計画数を決定せずに、物品の在庫管理のみに着目して在庫の計画数を決定するものである。
【0167】
本実施形態に係る在庫管理方法は、上述した第1の実施形態に係る生産計画自動立案方法に含まれる在庫管理方法と同様にして実行することができる。ただし、本実施形態においては、生産管理の目的で、稼働日を考慮する必要はないので、これらに係る処理を省略又はスキップすればよい。このため、第1の実施形態において説明した生産計画自動立案装置100は、在庫管理装置としても機能させることができる。
【0168】
本実施形態においては、物品の在庫の入庫及び出庫の数に関する増減数を増減数データとして用いればよい。ここで、在庫の増減としては、受注に応じた物品の入荷及び出荷の数が考慮され、より好ましくは、物品のイレギュラーな移動分(例えば、他の拠点への貸し借り分、返品若しくはキャンセルの受け入れ分、及び直送分)をも考慮することが好ましい。そして、本実施形態では、これらの増減数データを用いて第1の実施形態で説明したような処理を実行することにより、在庫の計画数が決定される。
【0169】
また、本実施形態において、より好ましくは、決定した在庫の計画数に応じて、物品の不足分(必要数)を生産現場又は卸業者へ発注するように装置を構成してもよく(発注手段)、この場合、より好ましくは、生産現場又は卸業者の稼働日や納期を考慮して発注する。同様に、物品の必要数(過剰分)については、得意先へ卸すか若しくは販売の申し出をしたり、買取業者へ買取依頼を出したり、他の拠点へ保管依頼を出したりするように構成してもよい。
【0170】
[6.第3の実施形態]
次に、本発明の第3の実施形態について説明する。
【0171】
上述した第2の実施形態においては、物品の在庫管理について説明したが、本実施形態においては、第2の実施形態において決定された物品の必要数に関する情報を受け取り、受け取った情報に基づいて、生産に必要な必要数を計画数として決定する。これを実現するためには、第1の実施形態において説明した生産計画自動立案装置100を用いればよい。具体的には、第1の実施形態に係る生産計画自動立案方法に含まれる生産管理方法に係る処理を実行すればよい。
【0172】
[7.第4の実施形態]
次に、本発明の第4の実施形態について説明する。
【0173】
上述した第1〜第3の実施形態では、物品の在庫管理や製品の生産管理に関して、必要数を計画数として決定しているが、これらに相応するプログラムを、本実施形態においては、過去の在庫実績や製品の生産実績の検証又はシミュレーションに用いる。具体的には、適用日(基準日付)と適用期間を変更することにより複数の演算結果が得られるので、過去の在庫実績が適切であったかどうか、又は、過去のどの時点から在庫数を調整するのが適切であったのか等についての検証材料を得ることができ、それにより、在庫スペースの広さの検討又は生産設備の生産能力の検討若しくは生産体制(生産設備の稼働時間や増員等)の検討に生かすことも可能となる。
【0174】
[8.他の実施形態]
本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【0175】
例えば、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0176】
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【0177】
また、生産計画自動立案装置100及び生産計画自動立案システムに関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【0178】
例えば、生産計画自動立案装置100が備える処理機能、特に制御部102にて行われる各処理機能については、その全部または任意の一部を、CPU及び当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じて生産計画自動立案装置100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部などには、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
【0179】
また、このコンピュータプログラムは、生産計画自動立案装置100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバ(例えば、ネットワーク300を介して接続されたサーバ200)に記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【0180】
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、フレキシブルディスク、光磁気ディスク、ROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable and Programmable Read Only Memory)、CD−ROM(Compact Disk Read Only Memory)、MO(Magneto−Optical disk)、DVD(Digital Versatile Disk)、及び、Blu−ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。したがって、本明細書で説明したような処理を実行するためのプログラムを格納した記録媒体もまた本発明を構成することとなる。
【0181】
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成及び読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【0182】
記憶部106に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、及び、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、及び、ウェブページ用ファイル等を格納する。
【0183】
また、生産計画自動立案装置100は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、生産計画自動立案装置100は、当該装置に本実施形態で説明した処理を実現させるソフトウェア(プログラムまたはデータ等を含む)を実装することにより実現してもよい。
【0184】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。