(57)【要約】【課題】完成在庫が不足し、かつ緊急で手配しても入荷が間に合わない場合は、顧客に対して納期調整をお願いするか、欠品のまま出荷し後送で不足製品を届けるしかない。【解決手段】既入庫製品を分解してソフトウエア部品を取り出し、不足製品を再構成する。このために、まず不足製品の部品構成を取得し、次に当該部品を製品の構成としてもつ別の製品を一覧にして、順に在庫を引き当てる。引き当たる在庫がない場合は、ほかの手配で予約済みの在庫に対して、あらかじめ問題ないことを検証したうえで、予約変更して引き当てる。こうして必要部品を揃え、不足製品を組み立てて顧客に出荷する。【選択図】図１
2007164464.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウエアの生産システムにおいて、受注手配情報を格納する手配情報データベースと、完成品在庫情報を格納する製品在庫管理データベースと、完成品を購入する購買先や納入の標準リードタイムを格納する製品購買情報データベースと、完成品を構成するソフトウエア部品の在庫情報を格納する部品在庫管理データベースと、完成品を構成するソフトウエア部品を定義する製品構成情報データベースとを備え、前記手配情報データベースから受注手配情報を取得し、前記製品在庫管理データベースを参照して完成品を引当て、受注手配に対して引き当てるべき完成品が揃わない場合に、製品購買情報データベースから当該不足完成品のリードタイムを調べ、正規の発注では納期に間に合わない場合に、前記製品構成情報データベースから当該不足完成品を構成するソフトウエア部品の情報を取得し、前記部品在庫管理データベースを参照して当該ソフトウエア部品を引当てた結果、当該不足完成品を生産するために必要なソフトウエア部品が不足する場合に、前記製品構成情報データベースから不足しているソフトウエア部品を含む完成品の情報を取得し、前記製品在庫管理データベースを参照し前記取得した完成品の在庫がある場合に、前記取得した完成品を分解したソフトウエア部品情報と、前記引き当てられたソフトウエア部品情報により、前記不足完成品を再構成するよう指示することを特徴とするソフトウエア生産システム。
【請求項２】
請求項１のソフトウエア生産システムにおいて、不足しているソフトウエア部品を含む完成品がすでに他の顧客への出荷用に予約されていた場合、完成品在庫の予約情報を当該顧客用に付け替え、前記付け替えた完成品を分解したソフトウエア部品情報と、前記引き当てられたソフトウエア部品情報により、前記不足完成品を再構成するよう指示することを特徴とするソフトウエア生産システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウエア製品の生産に関するものである。
【背景技術】
【０００２】
ソフトウエア製品は、通常複数のソフトウエア部品から構成される。例えば、ひとつのソフトウエア製品は、ソフトウエア本体を格納したＣＤ−Ｒ媒体、マニュアル、リリースノート、使用許諾契約書などから構成されている。これらの構成要素を、ソフトウエア部品という。ソフトウエア部品の中には、いくつかの製品で共通に使用できる部品がある。例えば、マニュアルはいくつかの製品の記述をまとめて１冊にしておけば、製品間で共通部品として使用できる。マニュアルは、イニシャルコストとして版下代に相当金額がかかるが、版下ができればあとは複写作業にかかる印刷代である。したがって、印刷部数が増えればそれだけ１冊あたりの単価は低くおさえることができる。このように、共通部品化して量をさばくことにより、単価をおさえ、原価低減につなげることができる。
【０００３】
出荷部署では、営業からの手配にもとづき、製品の完成在庫から必要な製品を必要な数量だけ出庫し、取り揃えて出荷する。通常は在庫が不足しないように需要予測をたて、必要量を確保するが、需要予測をはずし、在庫が不足する場合がおきる。このとき、まず製造メーカに発注することになるが、顧客指定の納期まで日にちがないと短納期の手配となり、製造メーカの対応は期待できない。このため、ほかの手配に引当てていた製品在庫をまわすことになるが、この場合、まわしたがためにほかの手配の出荷が遅れたり、欠品になったりしてはならない。このため、在庫が不足した場合は、顧客にお願いして欠品のまま納入させてもらうか、納期を延長してもらうしかなかった。
【０００４】
従来の技術では、欠品をおこさないような在庫の適正化を目的にした在庫調整システムが主であり、欠品がおきた場合の対応、特に製品の完成在庫を分解して出荷物を作る、といった発想はなかった。例えば、特開２００２−２８８２９５号公報参照。
【０００５】
また、中間製品や部品の余剰品を再利用して最終製品を構成し直す技術があるが、これは生産の過程で発生した余剰部品の有効活用を狙った技術であり、例えば、特許第３１９６２４０号参照。
【０００６】
【特許文献１】特開２００２−２８８２９５号公報
【特許文献２】特許３１９６２４０号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記特許文献１、２ともに、顧客納期の納入リードタイムを考慮して、不足完成品を構成するソフトウエア部品の情報を取得して対応するといった処理については示唆されていない。
【０００８】
欠品をおこさず、かつ過剰な在庫をかかえないように適正な在庫量をコントロールする技術は重要ではあるが、それでも欠品がおきた場合は、大至急、製品を手に入れるしかない。自社製造品でない場合は、製造元である製造メーカに頼み込んでなんとか短納期で入荷してもらうしかない。しかし、翌日納入といった短納期の手配の場合には製造メーカ側の対応にも時間的な限界があり、期待できない。通常は、欠品のまま出荷するのではなく、製品がフルセットそろう時期に納期をずらせてもらうように納期調整を行う。しかしそれでも、当初の顧客要求を満足しているわけではなく、顧客に迷惑をかけることになる。
【０００９】
本発明の目的は、欠品や納期遅延を未然に防ぐために、完成在庫として在庫管理しているほかのソフトウエア製品を分解してソフトウエア部品を取り出し、組み合わせて、在庫が不足している製品を作ってしまうことである。
【課題を解決するための手段】
【００１０】
欠品になった製品がどういうソフトウエア部品から構成されているか、ソフトウエア部品を一覧にする。このソフトウエア部品を、既存の製品在庫を分解して取り出し、組み立てて構成し直すことで、欠品になった製品を作る。
【００１１】
まず、部品在庫を検索する。使用予定のない部品があれば出庫する。
【００１２】
部品在庫でソフトウエア部品が揃わなければ、不足しているソフトウエア部品を含む製品を一覧にする。この一覧をもとに、製品在庫を検索し、予約のない製品があれば出庫する。
【００１３】
予約済みの製品ばかりの場合は、予約の付け替えを行う。まず予約済みの製品在庫が引き当てられている手配の手配納期を取得する。手配納期と、今から発注した場合の納入予定日を比較し、出荷に間に合うかどうかを検証する。間に合えば、引当てられていた手配を、欠品が発生している手配に切替える。
【００１４】
これで欠品を起こした製品のソフトウエア部品は調達できたことになる。あとは製品を分解してソフトウエア部品を取り出し、欠品を起こした製品を組み立てればよい。なお、分解の結果余剰になったソフトウエア部品は、部品在庫として保管する。
【発明の効果】
【００１５】
本発明によれば、ソフトウエア部品が手にはいれば不足製品の再構成が可能であり、欠品や納期遅延を未然に防ぐことができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施例を図面に基いて詳細に説明する。
【００１７】
図１は、本発明の一実施例の全体構成を示したシステム構成図である。
【００１８】
営業手配端末１０１は、営業担当者の受注手配入力を受け取るコンピュータであり、ネットワーク１０２を介して手配受信部１０３に接続されている。
【００１９】
製造部１０５は、全体制御部１０６と、製品在庫、部品在庫を管理する在庫管理部１０７と、製品の部品構成を管理する部品構成管理部１０９と、部品再構成を指示する構成変更指示部１０８から構成されている。製造部１０５はコンピュータシステムであり、各処理部は同じコンピュータの中にあっても良いし、分散されていても良い。
【００２０】
手配情報データベース１０４は、営業担当者が入力した手配データを保管するデータベースである。製品在庫管理データベース１１０は、ソフトウエア製品の完成在庫を管理するデータベースである。部品在庫管理データベース１１１は、ソフトウエア部品の在庫を管理するデータベースである。製品購買情報データベースは１１２、製品の購買に関する情報を管理するデータベースである。製品構成情報データベース１１３は、ソフトウエア製品がどのようなソフトウエア部品から構成されているかを管理するデータベースである。
【００２１】
手配受信部１０３は、ネットワーク１０２を介して、営業手配端末１０１から入力された手配データを受信し、手配情報データベース１０４に格納する。
【００２２】
全体制御部１０６は、手配情報データベースから手配情報を読み取り、不足製品があったときの製造部１０５全体の動きを制御する。
【００２３】
在庫管理部１０７は、製品在庫管理データベース１１０、部品在庫管理データベース１１１を参照して在庫情報を取得し、在庫予約や予約の付け替えを管理する。また、製品購買情報データベース１１２を参照して、製品の購買に必要な情報を提供する。
【００２４】
部品構成管理部１０９は、製品構成管理データベース１１３を参照してソフトウエア製品を構成するソフトウエア部品の一覧を管理する。
【００２５】
構成変更指示部１０８は、ソフトウエア部品が揃うことを確認して、欠品となった製品を作成するためにソフトウエア部品の再構成を指示する。
【００２６】
図２、図３を使用して、ソフトウエア部品を集めてソフトウエア製品を再構成する考え方を説明する。
【００２７】
図２は、ソフトウエア製品の部品構成の例を示した図である。
【００２８】
ソフトウエア製品は、通常ソフトウエア本体、操作マニュアル、リリースノート等の補足資料、使用許諾契約書等の契約書から構成されている。ただし、製品によってはリリースノートがなかったり、ライセンス製品でソフトウエア本体がなかったり、と構成はソフトウエア製品によって多様である。例えば、製品Ａ（２０１）はソフトウエア部品＃Ａ、＃Ｂ、＃Ｃから構成されている。製品Ｃ（２０３）は、ソフトウエア部品＃Ｄ、＃Ｅから構成されている。製品Ｄ（２０４）は、ソフトウエア部品＃Ａ、＃Ｃ、＃Ｄから構成されている。
【００２９】
ソフトウエア製品を構成する部品の中には、各製品間で使いまわしができる共通のソフトウエア部品がある。例えば、マニュアルはいくつかの製品の記述をまとめて１冊にしておけば、製品間で共通部品として使用できる。
【００３０】
図２の例では、例えばソフトウエア部品＃Ａは製品Ａ（２０１）、製品Ｂ（２０２）、製品Ｄ（２０４）、製品Ｅ（２０５）で使用されている。この＃Ａは共通部品なので、製品Ａの＃Ａは、製品Ｂ、製品Ｄ、製品Ｅの＃Ａと共通である。
【００３１】
図３は、ソフトウエア製品の再構成を示す図である。
【００３２】
（ケース１）は、ソフトウエア部品の組み合わせだけで別製品を再構成する場合である。製品Ａ（３０１）からソフトウエア部品＃Ａ（３０３）、＃Ｃ（３０４）を抜き取り、製品Ｃ（３０５）からソフトウエア部品＃Ｄ（３０６）を抜き取り、製品Ｄ（３０２）を再構成している。
【００３３】
（ケース２）は、出荷の都度生産すべき部品が別に必要な場合である。製品Ａ（３０７）からソフトウエア部品＃Ａ（３０９）、＃Ｂ（３１０）を抜き取り、製品Ｅ（３０８）を再構成する。ただし、製品Ｅには、製品Ｅを使用するのに必要なパスワ−ドが出荷のときに必要であり、これは製品Ｅ専用に出荷の都度作成する必要がある（３１１）。
【００３４】
（ケース３）は、再構成に必要な部品がない場合である。製品Ｆ（３１３）は、ほかの製品のソフトウエア部品を使いまわしすることができない。この場合、ほかの製品を分解して部品を取り出し、製品を再構成する手段は使用できないことになる。
【００３５】
図４は、製品在庫管理データベース１１０の例である。
【００３６】
製品在庫管理データベース（４０１）は、完成品を在庫管理する。製品在庫管理データベースでは、製品名（４０２）、バージョン（４０３）ごとに管理番号を追番でふり（４０４）、管理番号ごとに、在庫の有無を示す在庫状況（４０５）、製品の予約状況（４０６）、製品を発注した日（４０７）、入荷した日（４０８）を管理する。
【００３７】
図４の例では、製品Ａの管理番号００１の製品は、手配番号「ＴＥ−１」によって在庫状況は「予約済み」になっている（４０９）。また、製品Ａの管理番号００３の製品は、在庫状況が「○」であり、手配予約が空白である。これは、予約のない在庫があることを示しており、いつでも在庫を引き当てることができる（４１０）。一方、製品Ｄは在庫状況が空白なので、在庫がない状態になっている（４１１）。
【００３８】
図５は、部品在庫管理データベース１１１の例である。
【００３９】
部品在庫管理データベース（５０１）は、ソフトウエア部品を在庫管理する。部品在庫管理データベースでは、部品名（５０２）ごとに管理番号を追番でふり（５０３）、管理番号ごとに在庫の有無を示す在庫状況（５０４）、部品の予約状況（５０５）を管理する。
【００４０】
図５の例では、部品＃Ｃの管理番号００１の部品は、在庫状況が「○」であり、手配予約が空白である。これは予約のない在庫があることを示しており、いつでも在庫を引き当てることができる（５０６）。
【００４１】
図６は、製品購買情報データベース１１２の例である。
【００４２】
製品購買情報データベース（６０１）は、製品名（６０２）とバージョン（６０３）ごとに、購買先（６０４）と、購買先へ発注してから入荷までのリードタイム（６０５）を管理する。
【００４３】
図６の例では、製品Ａのバージョン０１００の製品は、Ａ社より購買し、そのリードタイムは３日かかることがわかる（６０６）。
【００４４】
図７は、製品構成情報データベース１１３の例である。
【００４５】
製品構成情報データべース（７０１）は、ソフトウエア製品がどのソフトウエア部品から構成されているかを管理する。製品名（７０２）、バージョン（７０３）ごとに、構成部品（７０４）を定義する。
【００４６】
図７の例では、製品Ａのバージョン０１００の製品は、ソフトウエア部品＃Ａ、＃Ｂ、＃Ｃの３つの部品から構成されていることがわかる（７０５）。
【００４７】
図８は手配情報データベース１０４の例である。
【００４８】
手配情報データベース（８０１）は、手配受信部１０３で受けた、営業手配端末１０１から入力した手配データを管理する。
【００４９】
手配情報データベースで管理するデータは、手配ごとに手配ＩＤ（８０２）をふり、この番号で管理する。手配ＩＤごとに管理する情報は、手配日、顧客名、送付先住所、電話番号、手配構成、手配納期である（８０１）。
【００５０】
図８の例では、手配ＩＤ「ＴＥ−１」の手配があり（８０２）、２００５年７月１５日に手配され（８０３）、手配納期は２００５年８月３１日である（８０５）。手配構成は、製品Ａのバージョン０１００、製品Ｃのバージョン０１００をそれぞれ１式である（８０４）。
【００５１】
図９は、手配票の例である。
【００５２】
手配情報データベース１０４へのインプットになる。手配票の記載項目は手配情報データベースで管理する項目に含まれる。手配票に記載するデータは、手配日、顧客名、送付先住所、電話番号、手配構成、手配納期である（９０１）。
【００５３】
手配票のデータは、手配情報データベース１０４で管理する。管理番号（９０５）は、手配情報データベース１０４に手配票（９０１）を格納するときにふられる。
【００５４】
図９の例では、手配日２００５年８月１日の顧客名ＺＺ（株）向けの手配は、手配ＩＤ「ＴＥ−５」で管理されることを示す（９０５）。
【００５５】
図１０は手配構成情報テーブルの例である。
【００５６】
手配構成情報テーブル１００１は、手配ごとのソフトウエア製品の一覧と、それぞれの在庫状況を管理するテーブルである。全体制御部１０６で作成し、在庫状況を確認するときに在庫管理部１０７に渡される。
【００５７】
手配情報管理テーブルは、手配ＩＤ（１００２）ごとに、製品名（１００３）、バージョン（１００４）、数量（１００５）、在庫状況（１００６）、引き当てた在庫の管理番号（１００７）を管理する。
【００５８】
図１０の例では、手配ＩＤ「ＴＥ−５」の手配について、製品Ａ、製品Ｂ、製品Ｃはそれぞれ在庫状況「○」なので、未予約の在庫を引き当てられるが、製品Ｄについては、未予約の在庫がない（１００１）。
【００５９】
図１１は、不足製品の部品構成テーブルの例である。
【００６０】
部品構成テーブルは、出荷にあたり製品在庫の不足が決定的になったときに、既在庫製品を分解し、不足した製品を再構成するために、既在庫製品やソフトウエア部品が使用できないか検討するために使用する。これは全体制御部１０６が、手配構成情報テーブル１００１から不足製品を読み取って部品構成管理部１０９にデータを渡し、これに基いて部品構成管理部１０９で作成する。作成した部品構成テーブル１１０１は、全体制御部１０６を経由して在庫管理部１０７に渡される。
【００６１】
部品構成テーブル１１０１は、手配ＩＤ（１１０２）ごとに、不足した製品名（１１０３）、バージョン（１１０４）、数量（１１０５）、その製品を構成するソフトウエア部品（１１０６）と部品の在庫（１１０７）、部品の在庫の予約状況（１１０８）、その部品を取得するために分解すべき製品名（１１０９）、バージョン（１１１０）、在庫を引当てる製品の管理番号（１１１１）と部品が最終的に確保できたかどうかの判定（１１１５）を管理する。
【００６２】
図１１の例では、手配ＩＤ「ＴＥ−５」（１１０２）の手配に対して製品Ｄが不足している（１１０３、１１０４）。この製品Ｄを構成する部品は＃Ａ、＃Ｃ、＃Ｄであり（１１０６）、＃Ｃは部品在庫があったが、＃Ａ、＃Ｄは部品在庫がなかった（１１１２）。このため、既存の製品在庫から分解できる製品を探すと、＃Ａ、＃Ｄともに製品の在庫を引き当てることができた（１１１３、１１１４）。したがって、判定はすべての部品で「○」であり（１１１５）、製品Ｄを再構成するソフトウエア部品が揃ったことを示す。
【００６３】
図１２は、部品構成逆展開テーブルの例である。
【００６４】
図１１の事例で、ソフトウエア部品＃Ａ、＃Ｄが不足したため、既存の製品在庫から＃Ａ、＃Ｄを含む製品の在庫を検索する必要が生じている。この部品構成逆展開テーブルは、製品構成情報データベース１１３を参照し、ソフトウエア部品名をキーに、ソフトウエア部品を含むソフトウエア製品を一覧にしたものである。ソフトウエア部品を含む製品在庫を検索する必要が生じた場合に、在庫管理部１０７から全体制御部１０６を介して部品構成管理部１０９に制御がわたり、部品構成管理部１０９で作成する。
【００６５】
部品構成逆展開テーブル（１２０１）は、ソフトウエア部品名（１２０２）、ソフトウエア部品を含む製品名（１２０３）、バージョン（１２０４）の一覧である。
【００６６】
図１２の例では、ソフトウエア部品＃Ａを含む製品は、製品Ａのバージョン０１００と製品Ｂの０１００であることを示す（１２０１）。
【００６７】
部品構成逆展開テーブルは、製品構成情報データベース（７０１）の構成部品（７０４）から、検索対象となるソフトウエア部品＃Ａを探し、＃Ａを含む製品を逆引きして探し出す（７０５、７０６，７０７）。ただし、製品Ｄはソフトウエア部品＃Ａを含むが、もともと不足している製品であり再構成の対象製品なので、結果からははずす。この結果、ソフトウエア部品＃Ａを含む製品として製品在庫を検索すべき対象製品は、製品Ａの０１００（１２０５）と製品Ｂの０１００（１２０６）になる。
【００６８】
図１３は、構成変更指示書の例である。
【００６９】
構成変更指示書では、大きく出庫、分解、組み立て、入庫の４つの作業を指示する。構成変更指示書は、在庫管理部１０７の在庫検索の結果、不足製品を構成するソフトウエア部品がすべて揃うことを確認できたとき、全体制御部１０５から構成変更指示部１０８に制御を渡し、構成変更指示部１０８で作成する。
【００７０】
出庫作業指示は、作業日の指定（１３０３）、出庫対象、数量、在庫から出荷するかを示す出庫元、出庫対象製品の管理番号を記載する。
【００７１】
図１３の例では、製品Ｂのバージョン０１００のうち、製品在庫から管理番号００２を出庫するように指示している（１３０４）。
【００７２】
分解作業指示では、作業日の指定（１３０５）、分解対象、数量、対象製品の管理番号、分解して取り出すソフトウエア部品と、余剰として保管すべきソフトウエア部品を記載する。
【００７３】
図１３の例では、分解対象の製品は、製品Ｂのバージョン０１００の管理番号００２を１個で、これを分解して取り出すソフトウエア部品は＃Ａ、余剰になるソフトウエア部品は＃Ｂであることを示す（１３０６）。
【００７４】
組み立て作業指示は、作業日の指示（１３０７）、組み立て対象、数量、組み立て部品を記載する。
【００７５】
図１３の例では、ソフトウエア部品＃Ａ、＃Ｃ、＃Ｄを使用して製品Ｄのバージョン０１００を１個再構成することを示す（１３０８）。
【００７６】
入庫作業指示は、作業日の指定（１３０９）、入庫対象、入庫先、数量を記載する。
【００７７】
図１３の例では、組み立てた製品Ｄのバージョン０１００を、製品在庫に１個入庫することを指示している（１３１０）。同時に、余剰部品＃Ｂ、＃Ｅを部品在庫に入庫するように指示している（１３１１、１３１２）。
【００７８】
図１４、図１５、図１６、図１７を利用して、製品在庫管理データベース、部品在庫管理データベース、手配構成情報テーブル、部品構成テーブルをどう書き換えて、最終的に部品構成テーブルの判定欄（１１１５）にたどりつくのかを説明する。
【００７９】
まず、手配票（９０１）から手配構成情報テーブル（１００１）を作成する。手配された製品とバージョンの一覧に対して、製品在庫管理データベース（４０１）を検索する。製品Ａのバージョン０１００、製品Ｂのバージョン０１００、製品Ｃのバージョン０１００については、在庫があり（４０５）、未予約なので（４０６）、この在庫を引き当てる。引き当てた結果を製品在庫管理データベースと手配構成情報テーブルに格納する。
【００８０】
図１４で、製品在庫管理データベースの書き換えを説明する。
【００８１】
製品Ａのバージョン０１００の管理番号００３、製品Ｂのバージョン０１００の管理番号００１、製品Ｃのバージョン０１００の管理番号００２がそれぞれ引き当たったので、在庫状況は「予約済み」、手配予約は「ＴＥ−５」を記載する（１４０２、１４０３、１４０７）。
【００８２】
同時に、手配構成情報テーブルに引当て状況を記載する。
【００８３】
図１６で、手配構成情報テーブルの書き換えを説明する。
【００８４】
製品Ａのバージョン０１００の在庫状況に「○」、引当番号に管理番号００３を記載する。製品Ｂのバージョン０１００の在庫状況に「○」、引当番号に管理番号００１を記載する。製品Ｃのバージョン０１００の在庫状況に「○」、引当番号に管理番号００２を記載する。製品Ｄのバージョン０１００は在庫がないので（４１１）、在庫状況に「×」を記載する（１６０１）。
【００８５】
製品Ｄについては、不足製品の再構成を行う必要がある。このために部品構成テーブル１１０１を作成し、製品Ｄのバージョン０１００を構成するソフトウエア部品の在庫を部品在庫情報データベース５０１から検索する。ソフトウエア部品＃Ａ、＃Ｃ、＃Ｄを順に部品在庫管理データベース５０１を検索すると、＃Ｃの在庫があった（５０６）ので、これを引き当てる。ほかの＃Ａ、＃Ｄの部品在庫はなかった。
【００８６】
図１５で、部品在庫管理データベースの書き換えを説明する。
【００８７】
ソフトウエア部品＃Ｃ（１５０２）の管理番号００１（１５０３）が引き当たったので、在庫状況は「予約済み」（１５０４）、手配予約は「ＴＥ−５」（１５０５）を記載する。
【００８８】
図１７で、部品構成テーブルの書き換えを説明する。
【００８９】
部品構成テーブル１７０１の部品在庫１７０７の欄に、＃Ａ、＃Ｄは在庫無しを示す「×」、＃Ｃは在庫有りを示す「○」を記載する（１７１２）。予約状況１７０８には、＃Ｃについて、管理番号００１を記載する。＃Ｃの判定は「○」とする（１７１５）。
【００９０】
次に、製品在庫を検索する。部品構成逆展開テーブル１２０１を参照して、まだ不足しているソフトウエア部品＃Ａ、＃Ｄを含む製品を検索する。
【００９１】
まずソフトウエア部品＃Ａを含む製品Ａのバージョン０１００（１２０５）について、製品在庫管理データベース４０１を検索する。この結果、製品Ａのバージョン０１００には未予約はなかった（４０６）。次に、＃Ａを含むもうひとつの製品、製品Ｂのバージョン０１００（１２０６）について、製品在庫管理データベース４０１を検索する。すると製品Ｂのバージョン０１００の管理番号００２が未予約（４１２）なので、これを引き当てる。
【００９２】
図１４で、製品在庫管理データベースの書き換えを説明する。
【００９３】
引き当てた結果、製品在庫管理データベース１４０１の製品Ｂのバージョン０１００の管理番号００２は、在庫状況「予約済み」、手配予約「ＴＥ−５」を記載する（１４０４）。
【００９４】
図１７で、部品構成テーブルの書き換えを説明する。
【００９５】
部品構成テーブル１７０１のソフトウエア部品＃Ａの行には、在庫製品名に「製品Ｂ」、バージョンに「０１００」、引当番号に管理番号「００２」を記載し、判定は「○」とする（１７１５）。
【００９６】
次に、ソフトウエア部品＃Ｄの検索を行う。部品構成逆展開テーブル１２０１から、ソフトウエア製品＃Ｄを含む製品は、製品Ｃのバージョン０１００である（１２０７）。製品在庫管理データベース４０１を検索すると、製品Ｃは未予約の在庫がない（４０５、４０６）。このときは、在庫予約の付け替えができないか、検証する。
【００９７】
製品Ｃのバージョン０１００の管理番号００１は、手配番号「ＴＥ−１」で予約済みである（４１３）。この手配番号「ＴＥ−１」の手配納期を、手配情報データベース８０１で検索すると、２００５年８月３１日である（８０５）。また、製品購買情報データベースで発注から納入までの標準リードタイムを検索すると、製品Ｃのバージョン０１００は標準３日である。手配日が２００５年８月１日であるから、本日発注すれば３日後の８月４日には納入されるので、いまある製品Ｃの０１００の管理番号００１を、手配ＩＤ「ＴＥ−１」（８０２）から手配ＩＤ「ＴＥ−５」（９０５）に変えても、手配ＩＤ「ＴＥ−１」の手配納期までには製品Ｃが入荷されるので問題ないと判断できる。したがって、在庫予約の付け替えが可能である。
【００９８】
図１７で、部品構成テーブルの書き換えを説明する。
【００９９】
部品構成テーブル１７０１の＃Ｄの在庫製品名には「製品Ｃ」（１７１４）、バージョン「０１００」、引当番号には「００１」を記載し、判定を「○」にする。
【０１００】
図１４で、製品在庫管理データベースの書き換えを説明する。
【０１０１】
製品在庫管理データベース１４０１は、製品Ｃのバージョン０１００の管理番号００１の部品を、手配予約「ＴＥ−１」から「ＴＥ−５」に変更する（１４０８）。同時に、製品Ｃのバージョン０１００を補充するために、発注を行う。発注すると、製品在庫管理データベースに対して、在庫状況「手配中」、手配予約「ＴＥ−１」、発注日と納入日を記載される（１４０６）。
【０１０２】
以上で部品構成テーブル１７０１の全部品（１７０５）の検索は終了し、判定結果（１７１５）はすべての部品で「○」なので、製品Ｄのバージョン０１００を構成する部品はすべて揃ったことになる。
【０１０３】
次に、図１８、図１９、図２０、図２１で、在庫引当てのフローを説明する。
【０１０４】
図１８は、在庫引当てのメインになるフローである。
【０１０５】
まず手配情報データベース１０４から手配票９０１を読み込み、手配構成情報テーブル１００１を作成する（１８０２）。
【０１０６】
次に、手配構成情報テーブル１００１記載の製品に対して、製品在庫管理データベース１１０を参照して製品在庫を引き当てる（１８０３）。
【０１０７】
当該手配を構成する製品に対して不足製品がなければ、処理を終了する。不足製品があれば、発注して手配納期に間に合うか、間に合わなければ予約付け替えができないか、検証する（１８０４）。
【０１０８】
まず、手配票９０１から手配日９０２と手配納期９０４を取得する。次に、製品購買情報データベース１１２から当該製品の標準リードタイムを読み込む。手配日に標準リードタイムを加えた日程と手配納期を比較する（１８０５、１８０６）。
【０１０９】
手配納期までに入荷が不可能であれば、在庫予約の付け替えを行う。これはすでに在庫予約済みの製品に対して、予約を一度解消し、当該手配に予約が付け替えられないか検証するものである。この結果を手配構成情報テーブル１００１の在庫状況、および製品在庫管理データベース１１０の在庫状況に記載する（１８０７）。
【０１１０】
手配納期までに不足製品の入荷が可能であれば、当該製品を発注する。この結果を手配構成情報テーブル１００１の在庫状況、および製品在庫管理データベース１１０の在庫状況に記載する。（１００８）。
【０１１１】
手配構成情報テーブル１００１に読み込んだ手配製品について、ほかに不足製品があれば、繰り返す（１８０９）。
【０１１２】
以上の結果、手配構成情報テーブル１００１に読み込んだすべての製品について検証が終われば、在庫状況１００６を参照して、在庫引当てがすべて完了しているかどうか、確認する。完了であれば、処理を終了する。まだ在庫引当てが完了していない場合は、製品再構成を行う（１８１０）。
【０１１３】
製品再構成は、図１９で説明する（１８１１）。
【０１１４】
図１９は、製品再構成のフローである。
【０１１５】
手配構成情報テーブル１００１を参照し、不足部品の部品構成テーブル１１０１を作成する（１９０２）。
【０１１６】
まず、部品在庫管理データベース１１１を検索する（１９０３）。
【０１１７】
検索の結果、未予約の部品があれば、部品在庫の予約を行い（１９０４、１９０５）、次の部品にポインタを移す（１９０６）。これを対象の部品がなくなるまで繰り返す（１９０７）。
【０１１８】
部品構成テーブルの判定１１１５の結果、まだ不足部品がある場合は、部品再構成を行う（１９０８、１９０９）。部品再構成は図２０で説明する。
【０１１９】
以上の結果、製品再構成に必要な部品を予約できたことになるので、製品の構成変更を行う。構成変更では、ソフトウエア部品を部品在庫から、製品を製品在庫からそれぞれ出庫し、分解、組み立てを行う、出来上がった製品は製品在庫管理データベース１１０に登録のうえ製品在庫へ入庫する。余剰部品は、部品在庫管理データベース１１１に登録後、部品在庫に入庫する（１９１０）。
【０１２０】
図２０は、部品再構成のフローである。
【０１２１】
部品展開テーブル１１０１を参照し、まだソフトウエア部品を予約できない部品について、部品構成逆展開テーブル１２０１を参照して、当該部品を含む製品の一覧を入手する（２００２）。
【０１２２】
逆展開した結果得られた製品一覧について、製品在庫管理データベース１１０を検索する（２００３）。
【０１２３】
検索の結果、未予約があれば製品在庫の予約を行う（２００４、２００５）。
【０１２４】
次の製品にポインタを移し（２００６）、次の製品があれば以上の処理を繰り返す（２００７）。
【０１２５】
すべての検索を終了した結果、部品展開テーブル１１０１の判定１１１５を参照し、まだ不足部品があれば、予約の付け替えを行う（２００８、２００９）。予約の付け替えについては図２１で説明する。
【０１２６】
図２１は、予約の付け替えのフローである。
【０１２７】
まず、部品展開テーブル１１０１の判定１１１５が「○」になっていないソフトウエア部品をもつ製品について、製品構成逆展開テーブル１２０１を参照して当該部品を含む製品を取得する。製品購買情報データベース１１２を参照して、当該製品の標準リードタイムを読み込む（２１０２）。
【０１２８】
手配日に標準リードタイムを加えた日程と手配納期を比較する（２１０３）。
【０１２９】
手配納期よりも入荷が早く、いまから発注しても手配納期に間に合う場合は、分解用の製品を発注する（２１０４）。
【０１３０】
製品の構成変更は、発注した製品が入荷してからになるので、作業保留とする。保留は部品構成テーブルの判定１１１５を「△」にする（２１０５）。
【０１３１】
手配納期よりも入荷が遅く、手配納期に間に合わない場合は、予約の付け替えが必要になる。まず製品在庫管理データベース１１０の手配予約４０６を参照して、当該製品を含む手配番号を取得する。
【０１３２】
つぎに、手配番号をキーに、手配情報データベース１０４を検索し、該当する手配ＩＤの手配納期を取得する（２１０７）。
【０１３３】
手配日に標準リードタイムを加えた日程と、２１０７で所得した手配納期を比較する（２１０８）。
【０１３４】
手配納期よりも入荷が早く、間に合う場合は、分解用に製品を発注する（２１０９）。
【０１３５】
製品在庫管理データベース１１０には、予約の付け替えと、手配中であることを示す情報を記載する（２１１０）。
【０１３６】
当該手配ＩＤの手配票では、手配納期よりも入荷が遅く、間に合わない場合は、次の手配票を検索する（２１１１）。
【０１３７】
次の手配票があれば以上を繰り返す。次の手配がなければ、製品を再構成する部品が取得できないということであるから、部品構成テーブル１１０１の判定１１１５は、「○」にはならないということである（２１１２）。
【０１３８】
次に、次の製品にポインタを移す（２１１３）。
【０１３９】
次の製品があれば以上の処理を繰り返す。なければ終了する（２１１４）。
【図面の簡単な説明】
【０１４０】
【図１】本発明の一実施例の全体構成を示したシステム構成図である。
【図２】ソフトウエア製品の部品構成の例を示した図である。
【図３】ソフトウエア製品の部品入れ替えの例を示した図である。
【図４】製品在庫管理データベースである。
【図５】部品在庫管理データベースである。
【図６】製品購買情報データベースである。
【図７】製品構成情報データベースである。
【図８】手配情報データベースである。
【図９】手配表である。
【図１０】手配構成情報テーブルである。
【図１１】不足製品の部品構成テーブルである。
【図１２】部品構成逆展開テーブルである。
【図１３】構成変更指示書である。
【図１４】製品再構成後の製品在庫管理データベースである。
【図１５】製品再構成後の部品在庫管理データベースである。
【図１６】製品再構成後の手配構成情報テーブルである。
【図１７】製品再構成後の不足製品の部品構成テーブルである。
【図１８】在庫引当てのフローチャートである。
【図１９】製品再構成のフローチャートである。
【図２０】部品再構成のフローチャートである。
【図２１】予約の付け替えのフローチャートである。
【符号の説明】
【０１４１】
１０１…営業手配端末、１０２…ネットワーク、１０３…手配受信部、１０４…手配情報データベース、１０５…製造部、１０６…全体制御部、１０７…在庫管理部、１０８…構成変更指示部、１０９…部品構成管理部、１１０…製品在庫管理データベース、１１１…部品在庫管理データベース、１１２…製品購買情報データベース、１１３…製品構成情報データベース。
【図１】
2007164464.tif 000003
【図２】
2007164464.tif 000004
【図３】
2007164464.tif 000005
【図４】
2007164464.tif 000006
【図５】
2007164464.tif 000007
【図６】
2007164464.tif 000008
【図７】
2007164464.tif 000009
【図８】
2007164464.tif 000010
【図９】
2007164464.tif 000011
【図１０】
2007164464.tif 000012
【図１１】
2007164464.tif 000013
【図１２】
2007164464.tif 000014
【図１３】
2007164464.tif 000015
【図１４】
2007164464.tif 000016
【図１５】
2007164464.tif 000017
【図１６】
2007164464.tif 000018
【図１７】
2007164464.tif 000019
【図１８】
2007164464.tif 000020
【図１９】
2007164464.tif 000021
【図２０】
2007164464.tif 000022
【図２１】
2007164464.tif 000023