(57)【特許請求の範囲】
【請求項１】
システム設計図面からシステムを構築するための作業指示書を作成する作業指示書作成装置であって，
所定の複数の部品から構成される標準構成品の構成情報と，その標準構成品に属する部品の中で基幹となる一つの部品を示す基幹部品を識別する情報とを記憶する標準構成品データ記憶手段と，
各部品ごとに，少なくとも他の部品との接続点が内部接続であるか外部接続であるかを識別する接続関係情報のプロパティが付与された，部品の情報を記憶する部品データ記憶手段と，
システム設計図面から前記部品データ記憶手段に記憶された部品の情報を用いてシステムを構成する部品を抽出し，抽出した部品の中で前記基幹部品ごとに，前記接続関係情報が内部接続である接続点で接続される部品群を抽出する部品群抽出手段と，
前記部品群抽出手段で抽出された部品群ごとに，その部品群に含まれる基幹部品と同じ基幹部品を持つ標準構成品を前記標準構成品データ記憶手段から検出し，システム設計図面中の前記部品群と検出された標準構成品との部品構成の差異を抽出し，抽出された差異を示す情報を前記各部品群についての作業指示書として作成し出力する作業指示書作成手段とを備える
ことを特徴とする作業指示書作成装置。
【請求項２】
請求項１に記載の作業指示書作成装置において，
前記部品データ記憶手段に記憶された部品のプロパティとして，さらにその部品が工場取り付け品であるか否かの区別を表すＢＴＯ情報が設定されており，
前記作業指示書作成手段は，前記標準構成品との差異が検出された各部品群の部品のＢＴＯ情報を確認し，部品のＢＴＯ情報が工場取り付け品であることを示していれば，前記作業指示書中にその旨の情報を記録，またはその部品については前記部品群と前記標準構成品との差異がなかったものとして記録する
ことを特徴とする作業指示書作成装置。
【請求項３】
請求項１または請求項２に記載の作業指示書作成装置において，
前記部品データ記憶手段に記憶された部品に設定されたプロパティの接続関係情報として，他の部品との物理的な接続関係を示す第１の接続関係情報と，他の部品との論理的な接続関係を示す第２の接続関係情報とがあり，それぞれの接続関係情報について独立に内部接続かまたは外部接続かが設定されており，
前記部品群抽出手段は，前記第１の接続関係情報を用いてシステム設計図面から前記作業指示書を作成するための部品群を抽出する手段および前記第２の接続関係情報を用いてシステム設計図面から前記作業指示書を作成するための部品群を抽出する手段を備える
ことを特徴とする作業指示書作成装置。
【請求項４】
所定の複数の部品から構成される標準構成品の構成情報とその標準構成品に属する部品の中で基幹となる一つの部品を示す基幹部品を識別する情報とを記憶する標準構成品データ記憶手段と，各部品ごとに少なくとも他の部品との接続点が内部接続であるか外部接続であるかを識別する接続関係情報のプロパティが付与された部品の情報を記憶する部品データ記憶手段とを備える作業指示書作成装置が，システム設計図面からシステムを構築するための作業指示書を作成する作業指示書作成方法であって，
システム設計図面から前記部品データ記憶手段に記憶された部品の情報を用いてシステムを構成する部品を抽出し，抽出した部品の中で前記基幹部品ごとに，前記接続関係情報が内部接続である接続点で接続される部品群を抽出する部品群抽出過程と，
前記部品群抽出過程で抽出された部品群ごとに，その部品群に含まれる基幹部品と同じ基幹部品を持つ標準構成品を前記標準構成品データ記憶手段から検出し，システム設計図面中の前記部品群と検出された標準構成品との部品構成の差異を抽出し，抽出された差異を示す情報を前記各部品群についての作業指示書として作成し出力する作業指示書作成過程とを有する
ことを特徴とする作業指示書作成方法。
【請求項５】
システム設計図面からシステムを構築するための作業指示書を作成する作業指示書作成装置のコンピュータに実行させるための作業指示書作成用のプログラムであって，
前記コンピュータを，
所定の複数の部品から構成される標準構成品の構成情報と，その標準構成品に属する部品の中で基幹となる一つの部品を示す基幹部品を識別する情報とを記憶する標準構成品データ記憶手段と，
各部品ごとに，少なくとも他の部品との接続点が内部接続であるか外部接続であるかを識別する接続関係情報のプロパティが付与された，部品の情報を記憶する部品データ記憶手段と，
システム設計図面から前記部品データ記憶手段に記憶された部品の情報を用いてシステムを構成する部品を抽出し，抽出した部品の中で前記基幹部品ごとに，前記接続関係情報が内部接続である接続点で接続される部品群を抽出する部品群抽出手段と，
前記部品群抽出手段で抽出された部品群ごとに，その部品群に含まれる基幹部品と同じ基幹部品を持つ標準構成品を前記標準構成品データ記憶手段から検出し，システム設計図面中の前記部品群と検出された標準構成品との部品構成の差異を抽出し，抽出された差異を示す情報を前記各部品群についての作業指示書として作成し出力する作業指示書作成手段として
機能させるための作業指示書作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，コンピュータシステムの設置作業等に必要となる作業指示書の作成技術に関するものであり，特に，コンピュータシステムの構築および現地作業に役立てるための作業指示書を，ＣＡＤ（Computer Aided Design ）のデータを利用して自動的に作成する作業指示書作成装置，作業指示書作成方法および作業指示書作成プログラムに関するものである。
【背景技術】
【０００２】
コンピュータシステムを導入するユーザの要望に応じてコンピュータシステムを設計する場合には，ＣＰＵやメモリなど複数の部品の集合体である標準的な構成の情報機器（以下，標準構成品または製品という）に対して，例えば標準構成品には含まれない外部記憶装置，ネットワーク機器，デバイスアダプタその他の部品の追加／交換（換装ともいう）／削除などの変更を行うことにより，ユーザの要望に合ったシステム構成にすることが一般に行われる。【０００３】
このようにして設計されたコンピュータシステムを，ユーザの設置先に設置する場合には，システムの提供者が，コンピュータシステムを構成する標準構成品や部品を手配し，納品をチェックし，設置先で組み立てることになる。納品のチェックや設置先での組み立ては，ＣＥ（Customer Engineer ）等の設置作業者が現地で行うことになるが，このとき設置作業者は，システム設計図面や構成品の一覧表，また，場合によってはシステム設計者が書いた作業手順のメモ書きなどを見て作業する。【０００４】
このような作業を支援する情報として，特に設置作業者にとって有用な情報は，工場から出荷される標準構成品の構成部品と，システム設計図面に記載されているシステムで実際に用いられる構成部品との間に，どのような違いがあるかという情報である。設計されたシステムが標準構成品の組み合わせだけで構成される場合には，単にそれらの標準構成品を接続するだけでシステムの設置は完了する。【０００５】
しかし，一般にシステム設計では，各標準構成品に対して，例えば標準構成品には含まれない入出力機器の追加，低速のＣＰＵから高速のＣＰＵへの交換，不要なメモリの削除といったような，各種の部品の追加，換装，削除などの構成変更が行われることが多い。この場合，設置作業者は，標準構成品に対してどの部品が追加，換装または削除されたかを一つ一つ確認し，それらを追加，換装または削除する作業を行うことになる。したがって，システム設計図面中の構成部品と，標準構成品の部品構成との差異が明瞭にわかれば，設置作業者は，作業を誤りなく容易に行うことができるようになると考えられる。すなわち，設置作業者は，システム設計図面中の構成部品と，標準構成品の部品構成との差異を示す情報を記録したものがあれば，それを作業指示書として有効に利用することができると考えられる。【０００６】
設計変更前の構成と設計変更後の構成とを比較して変更作業用の指示情報を出力する従来技術として，例えば下記の特許文献１に記載されている技術がある。この特許文献１には，各種器具を収納している制御盤における図面を改定（設計変更）する場合に，設計者の手間を省き，工作作業者にとって変更内容が分かり易い作業指示図面を作成するため，設計変更前と設計変更後との，器具情報，配置情報，接続や結線に関する情報等を比較し，結線変更を指示する作業指示図面を作成する技術が記載されている。
【特許文献１】特開２００３−２８４２１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
例えば，上述の特許文献１に示されている技術の考え方を用いて，設計変更前のシステムの構成と設計変更後のシステムの構成とを全体として比較し，その差異を抽出して作業指示書を作成した場合，次のような問題がある。一般にコンピュータシステムは，サーバ装置などの標準構成品の構成を一部変更したものを複数組み合わせて構成されることが多い。しかし，上述の特許文献１の技術では，システムの設計の一部を切り出し，その切り出された部分ごとに設計変更前の構成と設計変更後の構成とを比較して差異を抽出することにより，切り出された部分ごとの作業指示書を自動作成することはできない。すなわち，特許文献１に記載された技術の考え方では，標準構成品の組み合わせ全体と，システム設計図面に記載された構成部品の全体との差異を抽出することができたとしても，各標準構成品ごとにどの部品がどのように変更されているかの情報を抽出することができない。【０００８】
図４６および図４７は，コンピュータシステムの設計の例を説明する図である。図４６は，設計変更前の標準的な製品から構成されたシステムの例を示し，図４７は，図４６のシステムを設計変更した例を示す。【０００９】
コンピュータシステムは，複数の情報機器から構築されることが一般的である。それぞれの情報機器ごとに，それぞれ異なった設計変更がなされることも多い。図４６，図４７の例でも，それぞれの情報機器に対して異なった設計変更が行われている。【００１０】
この例において上述の特許文献１に示されている技術の考え方を用いれば，図４６と図４７に示されるシステム構成の全体の差異を抽出して作業指示書を作成することが可能である。すなわち，上述の特許文献１の手法を利用することにより，                        ＞メモリ２の追加
＞外部記憶装置の追加
＞ＣＰＵ１からＣＰＵ２への換装
というように，図面全体としての構成の違いを抽出することができると考えられる。【００１１】
しかし，上述の特許文献１の技術には，全体から部分を切り出す手段がないため，図４７のシステムの１台のサーバについての作業指示書を作成するといったことなどはできない。例えば，サーバＢのみに着目すると，メモリ２と外部記憶装置の追加が行われているが，上述の手法では，このような部分部分での差異の検出ができない。【００１２】
システムの設置現場では各情報機器を１台ずつ設置していくので，情報機器ごとに設計変更点がわかる作業指示書があれば便利である。特に，複雑なコンピュータシステムを構築する場合には，システムの設置作業者に大きな負担がかかるため，部分ごとの設計変更点が簡単にわかる作業指示書などのより細かな情報が必要となる。【００１３】
本発明は，上記の問題点の解決を図り，システムの設置作業者等にとってより有益な作業指示書および製品関連情報を出力するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は，上記の課題を解決するため，複数の部品の集合体である標準構成品（製品）のデータを製品データベース（以下，データベースをＤＢと表す）に登録して保持するとともに，各部品のデータについても部品ＤＢに登録して保持する。部品ＤＢに登録される各部品には，部品間の接続点に内部接続／外部接続の区別を表すプロパティを設け，該プロパティが内部接続である部品同士の一まとまりを同一の製品とみなし，この製品の単位で，製品と設計作業後の状態（製品に対し部品を変更している状態）の構成とを比較し，相違点を作業指示書として出力する。【００１５】
これによって，物理的な製品という一まとまりに近い形で相違点，すなわち部品の変更箇所が出力されることになるので，現場の作業担当者にとって理解しやすい作業指示書としての出力内容を得ることが可能になる。【００１６】
また，本発明は，さらに各部品につき，工場取り付け品であるか現地取り付け品であるかの区別を表すプロパティ（ＢＴＯフラグと呼ぶ）を設け，作業指示書の作成において工場取り付け品については標準的な製品に含まれる部品と同様に扱い，現地取り付け品を納品対象及び現地作業対象品として扱う。これにより，現場の作業担当者にとって，より理解しやすい作業指示書を提供することが可能になる。【００１７】
またさらに，本発明は，製品同士の関係につき，論理的な関係を持つかどうか（内部／外部）を表すプロパティを設ける。例えば，サーバ装置とディスク装置のように，物理的な製品としては別個であるが，論理的には１台（ディスク装置はサーバ装置の一部）である製品同士を，作業指示書において一まとまりの製品として表すことが可能になり，作業指示書を，カスタマエンジニアだけでなく，システムエンジニアなども利用することができるようになる。【００１８】
具体的には，本発明は，システム設計図面からシステムを構築するための作業指示書を作成する作業指示書作成装置であって，所定の複数の部品から構成される標準構成品の構成情報と，その標準構成品に属する部品の中で基幹となる一つの部品を示す基幹部品を識別する情報とを記憶する標準構成品データ記憶手段と，各部品ごとに，少なくとも他の部品との接続点が内部接続であるか外部接続であるかを識別する接続関係情報のプロパティが付与された，部品の情報を記憶する部品データ記憶手段と，システム設計図面から部品データ記憶手段に記憶された部品の情報を用いてシステムを構成する部品を抽出し，抽出した部品の中で基幹部品ごとに，接続関係情報が内部接続である接続点で接続される部品群を抽出する部品群抽出手段と，部品群抽出手段で抽出された部品群ごとに，その部品群に含まれる基幹部品と同じ基幹部品を持つ標準構成品を標準構成品データ記憶手段から検出し，システム設計図面中の部品群と検出された標準構成品との部品構成の差異を抽出し，抽出された差異を示す情報を各部品群についての作業指示書として作成し出力する作業指示書作成手段とを備えることを特徴とする作業指示書作成装置。【００１９】
また，本発明は，上記の作業指示書作成装置において，部品データ記憶手段に記憶された部品のプロパティとして，さらにその部品が工場取り付け品であるか否かの区別を表すＢＴＯ情報が設定されており，作業指示書作成手段は，標準構成品との差異が検出された各部品群の部品のＢＴＯ情報を確認し，部品のＢＴＯ情報が工場取り付け品であることを示していれば，作業指示書中にその旨の情報を記録，またはその部品については部品群と標準構成品との差異がなかったものとして記録することを特徴とする。【００２０】
また，本発明は，上記の作業指示書作成装置において，部品データ記憶手段に記憶された部品に設定されたプロパティの接続関係情報として，他の部品との物理的な接続関係を示す第１の接続関係情報と，他の部品との論理的な接続関係を示す第２の接続関係情報とがあり，それぞれの接続関係情報について独立に内部接続かまたは外部接続かが設定されており，部品群抽出手段は，第１の接続関係情報を用いてシステム設計図面から作業指示書を作成するための部品群を抽出する手段および第２の接続関係情報を用いてシステム設計図面から作業指示書を作成するための部品群を抽出する手段を備えることを特徴とする。【００２１】
以上の作業指示書作成装置が行う処理は，コンピュータとソフトウェアプログラムとによって実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも，ネットワークを通して提供することも可能である。
【発明の効果】
【００２２】
本発明によって，物理的な製品という一まとまりに近い形で部品構成の相違点を作業指示書として出力できるので，現場の設置作業者にとってより理解しやすい内容の作業指示書を作成することが可能になる。また，ＢＴＯの対象となっている部品を作業指示書の作業指示として記載しないことにより，現場に納品された各機器の検収が容易となり，現場の設置作業に対してより的確となる作業指示書を自動生成することができる。また，空間的接続と電気的接続とを使い分けることにより，例えばサーバと外付けハードディスクのように，物理的には別個であるが論理的には１台である製品同士を一まとまりの製品として表すことが可能になる。
【図面の簡単な説明】
【００２３】
【図１】本発明の原理を説明する図である。
【図２】本発明の実施の形態による作業指示書作成装置の構成例を示す図である。
【図３】部品ＤＢへの部品登録の例を示す構成図である。
【図４】部品エディタ画面の例を示す図である。
【図５】部品ＤＢの部品データの例を示す図である。
【図６】製品ＤＢへの製品登録の例を示す構成図である。
【図７】ＣＡＤ画面（製品作成モード）の例を示す図である。
【図８】ＣＡＤ画面（製品作成モード）の例を示す図である。
【図９】製品の部品配列の例を示す図である。
【図１０】製品の接続関係配列の例を示す図である。
【図１１】製品の基幹部品リストの例を示す図である。
【図１２】ＣＡＤ画面の例を示す図である。
【図１３】コンピュータシステムの設計図の例を示す図である。
【図１４】設計図の部品配列の例を示す図である。
【図１５】設計図の接続関係配列の例を示す図である。
【図１６】設計図の基幹部品リストの例を示す図である。
【図１７】作業指示書の例を示す図である。
【図１８】設計図の部品配列の例を示す図である。
【図１９】設計図の基幹部品リストの例を示す図である。
【図２０】作業指示書の例を示す図である。
【図２１】コンピュータシステムの設計図の例を示す図である。
【図２２】設計図の部品配列の例を示す図である。
【図２３】設計図の接続関係配列の例を示す図である。
【図２４】設計図の基幹部品リストの例を示す図である。
【図２５】作業指示書の例を示す図である。
【図２６】ディスクパーティション設計用テンプレートの例を示す図である。
【図２７】作業指示書の例を示す図である。
【図２８】作業指示書作成処理フローチャートである。
【図２９】部品配列作成処理フローチャートである。
【図３０】接続関係配列作成処理フローチャートである。
【図３１】基幹部品リスト作成処理フローチャートである。
【図３２】アンカー付部品収集処理フローチャートである。
【図３３】内部部品取得処理フローチャートである。
【図３４】内部接続点収集処理フローチャートである。
【図３５】接続部品取得処理フローチャートである。
【図３６】全作業指示書作成処理フローチャートである。
【図３７】製品取得処理フローチャートである。
【図３８】指示書作成処理フローチャートである。
【図３９】指示書作成処理フローチャートである。
【図４０】接続部品取得処理フローチャートである。
【図４１】指示書一行作成処理フローチャートである。
【図４２】作業指示書出力処理フローチャートである。
【図４３】一作業指示書作成処理フローチャートである。
【図４４】部品ＤＢの部品データの例を示す図である。
【図４５】部品の接続をツリー表現した例を示す図である。
【図４６】コンピュータシステムの設計の例を説明する図である。
【図４７】コンピュータシステムの設計の例を説明する図である。
【符号の説明】
【００２４】
１  部品ＤＢ
２  製品ＤＢ
３  図面作成手段
４  部品群抽出手段
５  作業指示書作成手段
１０  作業指示書作成装置
１１  図面作成処理部
１２  部品ＤＢ
１３  製品ＤＢ
１４  設計図データ記憶部
１５  部品配列作成部
１６  接続関係配列作成部
１７  基幹部品リスト作成部
１８  作業指示書作成部
２０  入出力装置
【発明を実施するための最良の形態】
【００２５】
以下，本発明の実施の形態について，図を用いて説明する。【００２６】
〔本発明の原理〕
図１は，本発明の原理を説明する図である。以下，この図１に従って，本発明の原理を説明する。【００２７】
部品ＤＢ１に登録された部品には，他の部品と接続するための接続点が設定されている。本発明では，部品同士の接続を内部接続と外部接続の２種類に分けて考える。内部接続は，部品同士の接続が密であることを示し，接続された部品同士が同じ部品群に所属することを示す。例えば，サーバは，マザーボード，ＣＰＵ，メモリなどが互いに内部接続された１つの部品群であると考えることができる。外部接続は，部品同士の接続が疎であることを示し，接続された部品同士がそれぞれ他の部品群に所属することを示す。例えば，サーバに内部接続されたＬＡＮカードと，そのＬＡＮカードからＬＡＮケーブルで接続されたＨＵＢとは，それぞれサーバ，ＨＵＢという別々の部品群に所属すると考えることができる。本発明では，各部品の各接続点に対して，その接続点による部品同士の接続が内部接続になるのか，外部接続になるのかを示す接続関係情報が，部品のプロパティとして設定される。【００２８】
また，本発明では，所定の複数の部品から構成された標準構成品（製品）を，部品ＤＢ１の部品を用いて作成する。作成された標準構成品の情報は製品ＤＢ２に保存される。各標準構成品を構成する部品群には，その標準構成品を代表する一つの基幹部品が定義される。部品ＤＢ１に登録される部品が基幹部品である場合には，その基幹部品を一意に識別する識別情報であるアンカーＩＤが，部品のプロパティとして設定され，その情報が部品ＤＢ１または製品ＤＢ２に登録される。【００２９】
図面作成手段３によってシステムの設計図を作成する場合には，部品ＤＢ１の部品と製品ＤＢ２の標準構成品とを用いる。基本的には，設計図上に標準構成品を配置し，その配置された標準構成品に対して部品の追加／換装／削除などの設計変更を行ったり，部品同士を結線することにより設計図の作成を行う。このとき，部品の追加／換装／削除などの変更を受けた標準構成品のアンカーＩＤは変更しない。【００３０】
次に，部品群抽出手段４によって，作成された設計図上の各部品を，複数の部品群に分ける。このとき，アンカーＩＤが設定された基幹部品ごとに，接続された部品同士の接続点の接続関係情報を参照し，接続が内部接続である部品同士が同じ部品群に所属するように，また接続が外部接続である部品同士が異なる部品群に所属するように，部品群を分ける。各部品群に対して，１つのアンカーＩＤが設定された状態となる。【００３１】
最後に，作業指示書作成手段５によって，設計図上の部品群ごとに，同じアンカーＩＤをもつ製品ＤＢ２の標準構成品との差異を抽出し，抽出された差異を変更点として示す作業指示書を作成する。【００３２】
通常のＣＡＤシステムにおいては図形要素にプロパティとして属性情報を定義することが行われているが，これと同様に，設計図における図形要素である部品に対して，接続関係情報とアンカーＩＤとのプロパティを定義し設定することにより，設計図内の一部の部品群を切り出すことが可能となる。また，その部品群ごとに標準構成品との差異を抽出する処理を行うことにより，部品群ごとの作業指示書を自動作成することが可能となる。この部品群を，サーバ等の情報機器単位とすることにより，現場で各情報機器を構築するために必要な組み立て／解体作業指示書を自動作成することができる。【００３３】
図４６および図４７の例において，サーバＡ，サーバＢ，サーバＣが製品であるとすると，図４６に示す標準構成品のデータおよび図４７に示す設計図面情報から，各製品ごとに，例えば次のような出力内容を持つ作業指示書が得られることになる。
・サーバＡ［マザーボード，ＣＰＵ１，メモリ］（部品変更なし）
・サーバＢ［マザーボード，ＣＰＵ１，メモリ，メモリ２（追加），外部記憶装置（追加）］
・サーバＣ［マザーボード，ＣＰＵ２（ＣＰＵ１から変更），メモリ］
・ＨＵＢ（部品変更なし）
また，本発明では，部品ＤＢ１に登録された部品にＢＴＯ（Built To Order）フラグを設定することができる。ＢＴＯフラグは，あらかじめ工場でその部品を標準構成品に組み込むことが可能であるか否かを示す情報である。作業指示書作成手段５において，標準構成品に追加された部品や標準構成品の部品と換装された部品のＢＴＯフラグがあらかじめ工場で標準構成品に組み込むことが可能である旨を示していれば，その部品をあらかじめ標準構成品の構成部品であるかのように扱う。すなわち，設計図上の部品群の部品のうち，ＢＴＯによってあらかじめ工場で標準構成品に組み込むことが可能である部品については，作業指示書に作業指示を記載しない。または，作業指示書にその部品が工場取り付け品であることを表示する。【００３４】
ＢＴＯフラグを導入することにより，現場での作業が必要ない部品に関する作業指示は記載しないようにすることができるため，現場に納品された各機器の検収を容易にすることや，現場作業に対してより的確な作業指示書を自動生成することができるようになる。【００３５】
さらに，本発明では，接続関係情報を空間的な接続関係情報と電気的な接続関係情報とに分けて設定することができる。空間的な接続関係情報とは，部品同士の物理的な接続に関する接続関係情報である。電気的な接続関係情報とは，部品同士の論理的な接続に関する接続関係情報である。本発明では，作業指示書の用途ごとに空間的な接続関係情報と電気的な接続関係情報とを使い分けて，作業指示書の作成を行う。【００３６】
このように，空間的接続と電気的接続とのそれぞれについて接続関係情報を分けることにより，システム設置作業指示書等の設置作業者向けの指示文書や，ディスク装置のパーティション設定用情報，ＩＰアドレス設定用一覧表等の運用作業者向けの指示文書など，それぞれの作業者の視点において正しい境界が用いられた作業指示書を作成することができる。【００３７】
〔作業指示書作成装置の構成〕
図２は，本発明の実施の形態による作業指示書作成装置の構成例を示す図である。作業指示書作成装置１０は，図面作成処理部１１，部品ＤＢ１２，製品ＤＢ１３，設計図データ記憶部１４，部品配列作成部１５，接続関係配列作成部１６，基幹部品リスト作成部１７，作業指示書作成部１８を備える。これらは，ＣＰＵおよびメモリ等からなるハードウェアと，ソフトウェアプログラムとからなるコンピュータ・システムによって実現される。部品配列作成部１５，接続関係配列作成部１６および基幹部品リスト作成部１７が，図１に示す部品群抽出手段４に相当する。作業指示書作成装置１０には，入出力装置２０が接続されている。【００３８】
図面作成処理部１１は，例えばＣＡＤなどの図形処理ソフトウェアの処理機能をもつ。設計者は，入出力装置２０で図面作成処理部１１を操作することにより，部品ＤＢ１２に登録された部品や製品ＤＢ１３に登録された標準構成品である製品を用いて，コンピュータシステムの設計図を作成する。作成されたコンピュータシステムの設計図データは，設計図データ記憶部１４に保存される。【００３９】
ここで，部品とは，情報機器を構成する部分要素である。例えばサーバを構成するマザーボード，ＣＰＵ，メモリなどが部品である。また，製品とは，規定の部品が規定の配置で接続された部品群である。例えば，規定のマザーボード，ＣＰＵ，メモリ同士が規定の位置に接続されたサーバなどが製品である。【００４０】
本発明に係る作業指示書作成装置１０が行うことは，設計図データ記憶部１４に保存された設計図データから，部品ＤＢ１２および製品ＤＢ１３を用いて，コンピュータシステムの設置先での現場作業担当者が誤りなく容易に作業を行うことを支援するための情報が記録された作業指示書を自動作成することである。この作業指示書には，製品ＤＢ１３に登録された標準構成品である製品と，設計図データから切り出された実構成品の部品群との差異に関する部品情報が，製品ごとにまとめて記録されるようになっている。【００４１】
以上の作業指示書の作成のため，まず部品配列作成部１５は，設計図データ記憶部１４に保存された設計図データと，部品ＤＢ１２に登録された各部品のデータから，作成された設計図に使用されたすべての部品についてのデータ配列（以下，部品配列という）を作成する。【００４２】
接続関係配列作成部１６は，設計図データ記憶部１４に保存された設計図データから，作成された設計図上でのすべての部品同士の接続関係についてのデータ配列（以下，接続関係配列という）を作成する。【００４３】
基幹部品リスト作成部１７は，部品配列作成部１５で作成された設計図の部品配列と，接続関係配列作成部１６で作成された設計図の接続関係配列とから，設計図の基幹部品リストを作成する。基幹部品リストとは，基幹となる部品を中心とした部品群データのリストである。すなわち，基幹部品リストは，製品を代表する基幹部品ごとに，その基幹部品に対し接続関係情報のプロパティが内部接続である接続点で連鎖的に接続される部品群の各部品のデータが格納されたものである。【００４４】
作業指示書作成部１８は，基幹部品リスト作成部１７で作成された設計図の基幹部品リストの基幹部品を中心とした部品群ごとに，部品群と製品との差異を抽出し，実際のシステムの設置時において，各製品に対して行う部品の追加，削除，換装などの作業についての作業指示書を作成する。製品との差異の抽出は，あらかじめ製品ＤＢ１３に登録された製品との部品構成の比較により行われる。【００４５】
〔部品登録〕
以上の作業指示書を作成する前提として，部品ＤＢ１２への部品の登録が必要になる。この部品ＤＢ１２への部品登録の例について説明する。この部品登録の処理は，基本的には従来の一般的なＣＡＤシステムにおける図形要素の登録と同様であるが，特に本実施の形態では，図形要素である部品のプロパティとして，以下に説明する接続関係情報のプロパティと，基幹部品を識別するアンカーＩＤのプロパティとが登録されるようになっている。【００４６】
図３は，部品ＤＢへの部品登録の例を示す構成図である。ＣＡＤによって製品やコンピュータシステムの設計を行う場合には，その設計図面に用いる部品をあらかじめ部品ＤＢ１２に登録しておく必要がある。本実施の形態では，図面作成処理部（ＣＡＤ）１１に付属する部品エディタ１１０を用いて，部品ＤＢ１２に登録する部品の作成を行う。【００４７】
図４は，部品エディタ画面の例を示す図である。部品エディタ１１０を起動すると，入出力装置２０のディスプレイ上には，図４に示すような部品エディタ画面５０が表示される。部品エディタ画面５０では，まず，部品の作図用図形の設計を行う。図４では，部品型名“ＲＸ−２００Ｍ”のマザーボードの作図用図形が設計されている。【００４８】
作成された部品には，例えば作動電圧や動作速度などのプロパティが定義される。また，各部品には，他の部品と接続するための接続点が設定される。図４の例では，マザーボードに接続点“Ｃ１”，“Ｃ２”，“Ｍ１”，“Ｍ２”，“Ｐ１”，“Ｌ１”が設定されている。設定された各接続点にも，例えば接続インタフェースの種類や形状，供給電圧などのプロパティが定義される。本実施の形態では，上記の既存のプロパティのほかに，さらにコンピュータシステムを構成する情報機器ごとの作業指示書を作成するためのプロパティが必要となる。以下では，上記の既存のプロパティについての説明は省略し，コンピュータシステムを構成する情報機器ごとの作業指示書を作成するために必要となるプロパティを中心に説明する。【００４９】
部品エディタ１１０では，部品の作図用図形を作成するとともに，各種プロパティの設定を行う。プロパティは，例えば部品エディタ１１０のメニューで“部品プロパティ設定”を選択するなどにより，部品プロパティ設定ウィンドウ５１を開いて入力する。図４では，部品プロパティ設定ウィンドウ５１において，接続点Ｌ１の空間接続プロパティ（図中，空間Ｐ欄）をコンボボックス方式で設定している様子を示す。【００５０】
部品エディタ１１０は，作成された部品の作図用図形やプロパティなどのデータを，部品ごとのレコードデータとして部品ＤＢ１２に登録する。部品ＤＢ１２に登録された部品の作業用図形やプロパティなどのデータは，ＣＡＤ図面上で使用されたときに図面にコピーされ，変更されることのない永続的な性質を示す。【００５１】
図５は，部品ＤＢの部品データの例を示す図である。図５では，部品ＤＢ１２に登録された部品についての部品データ６０を，テーブル形式で表現している。なお，図５の部品データ６０では，作業指示書の作成に必要なプロパティなどのデータを中心に記載しており，作業指示書の作成に必要ないデータについては省略している。【００５２】
部品データ６０は，部品型名，部品種別，部品名称，ＢＴＯフラグ，その他のプロパティ等の情報，接続点情報などから構成される。部品型名は，その部品に設定された固有の名称である。部品種別は，マザーボード，ＣＰＵ，メモリなど，その部品の種類を示す。部品名称は，その部品の一般的な名称である。ＢＴＯフラグについては，後述の実施の形態２で詳細を説明する。その他の部品プロパティ等の情報としては，例えば作動電圧や動作速度などの既存のプロパティがある。【００５３】
接続点情報は，その部品に設定された接続点の情報である。接続点情報は，接続点名，接続プロパティ，その他のプロパティ等の情報などから構成される。接続点名は，その接続点に設定された名称である。接続プロパティは，その接続点に部品が接続された場合に，その接続が内部接続であるか外部接続であるかを示す。内部接続であれば接続された部品を，製品に相当するある部品群に属する部品（一体化された情報機器の一部）として扱い，外部接続であれば接続された部品を別の部品群に属する部品として扱う。接続プロパティには，空間接続プロパティと電気接続プロパティがあるが，その詳細については後述の実施の形態３で説明する。その他のプロパティ等の情報としては，例えば接続インタフェースの種類や形状，供給電圧などの既存のプロパティがある。【００５４】
さらに部品のプロパティとして，部品が標準的な製品を代表する一つの基幹部品である場合にその基幹部品を一意に識別する識別情報であるアンカーＩＤのプロパティがあり，部品の登録時にこのアンカーＩＤのプロパティを登録することもできる。ただし，本実施の形態では，アンカーＩＤのプロパティの登録は，以下に説明する製品登録時に行うようにしている。アンカーＩＤを部品登録時に行うか製品登録時に基幹部品に対して行うかは，本発明を実施する場合にどちらでもよいが，後述するＲＸ２００Ｓ２，ＲＸ２００Ｓ２Ａのように同一基幹部品を用いる異なる製品が存在する場合が多いので，通常は製品登録時にアンカーＩＤを登録する。基幹部品の部品登録時に，その基準部品を用いる製品が一つしかないことが分かっていれば，部品登録時に行ってもよい。
〔製品登録〕
製品ＤＢ１３への製品登録の例について説明する。【００５５】
図６は，製品ＤＢへの製品登録の例を示す構成図である。コンピュータシステムの設計に用いる製品を，部品ＤＢ１２に登録された部品を用いて作成し，あらかじめ製品ＤＢ１３に登録しておく。本実施の形態では，図面作成処理部（ＣＡＤ）１１を製品作成モード１１１で起動することにより，製品ＤＢ１３に登録する製品の設計を行う。【００５６】
製品作成モード１１１では，部品ＤＢ１２に登録された部品のプロパティの他に，製品図面内で有効となる部品のプロパティを追加することが可能となっている。この部品のプロパティとして，製品図面内での部品の一意性を保持するための部品ＩＤや，製品としての部品群を特定するための部品群を代表する一つの基幹部品に対して一意に付与されるアンカーＩＤなどのプロパティがある。【００５７】
図７，図８は，ＣＡＤ画面（製品作成モード）の例を示す図である。図面作成処理部（ＣＡＤ）１１を製品作成モード１１１で起動すると，入出力装置２０のディスプレイ上には，ＣＡＤ画面（製品作成モード）５２が表示される。ここでは，ＣＡＤ画面（製品作成モード）５２において，部品型名“ＲＸ−２００Ｍ”のマザーボードを用いた製品の設計の例について説明する。【００５８】
製品設計は，部品ＤＢ１２に登録された部品をＣＡＤ画面（製品作成モード）５２上に配置することにより行われる。部品の配置は，例えば図７に示すように，ＣＡＤ画面（製品作成モード）５２上で部品ステンシルウィンドウ５３から行うようにしてもよい。部品ステンシルウィンドウ５３には部品ＤＢ１２に登録された部品の作図用図形が並べられており，そこから製品図面に必要な部品の作図用図形をドラッグ＆ドロップによってＣＡＤ画面（製品作成モード）５２上に貼り付けることにより，部品の配置を行う。このとき，部品のプロパティも同時にコピーされる。【００５９】
図７では，部品型名“ＲＸ−２００Ｍ”，“ＣＰＵ−１２３４”，“ＭＥＭ−９８７６”の３つの部品で，製品型名“ＲＸ２００Ｓ２”の製品が設計されている。各部品には，それぞれ部品ＩＤ“ＭＴ１”，“ＣＰＵ１”，“ＭＥＭ１”が設定されている。部品ＩＤ“ＭＴ１”の部品には，アンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”が設定されている。この部品ＩＤ“ＭＴ１”の部品がこの製品の基幹部品となる。基幹部品とは，その製品を構成する部品群の中の一つの代表部品であり，特に中心となる部品をいう。なお，本実施の形態では，基幹部品に設定されたアンカーＩＤから“Ａ＿”を取り除いたものを，その製品の製品型名とする。【００６０】
図７の製品図面の例は，別の見方をすると製品型名“ＲＸ２００Ｓ２”という製品の部品構成を示していると言える。したがって，例えばこの製品型名“ＲＸ２００Ｓ２”の製品の接続点“Ｐ１”にＳＣＳＩアレイカードを追加すると，製品の部品構成が変わり，別製品となる。ここでは，製品型名“ＲＸ２００Ｓ２”の製品の接続点“Ｐ１”にＳＣＳＩアレイカードを追加した製品の製品型名を“ＲＸ２００Ｓ２Ａ”とする。【００６１】
図８では，製品型名“ＲＸ２００Ｓ２”の他に，製品型名“ＲＸ２００Ｓ２Ａ”の製品が設計されている。このように，１図面で複数の製品の設計を行ってもよい。製品型名“ＲＸ２００Ｓ２Ａ”の製品は，製品型名“ＲＸ２００Ｓ２”の製品の接続点Ｐ１に，部品型名“ＳＡＣ−３３３３”のＳＣＳＩアレイカードが追加接続された構成をしている。各部品には，それぞれ部品ＩＤ“ＭＴ２”，“ＣＰＵ２”，“ＭＥＭ２”，“ＰＣＩ１”が設定されている。【００６２】
図８では，部品ＩＤ“ＭＴ２”の部品の部品プロパティ設定ウィンドウ５４を開いてプロパティ設定を行っている。部品ＩＤ“ＭＴ２”を基幹部品とするため，部品プロパティ設定ウィンドウ５４において，アンカーを“あり”とし，アンカーＩＤを“Ａ＿ＲＸ２００Ｓ２Ａ”と設定している。【００６３】
このような設計作業を繰り返して製品図面を必要なだけ作成し，それを記憶装置に記憶しておく。製品の設計終了後，入出力装置２０から製品ＤＢ作成コマンドを入力することにより，製品図面によって定義された製品について製品ＤＢ１３への登録を行う。【００６４】
製品ＤＢ作成コマンドが入力されると，部品配列作成部１５および接続関係配列作成部１６は，システムの設計図面から部品配列の作成および接続関係配列の作成を行う場合と同様の処理を実行し，製品ＤＢ１３に製品ごとにそれらの情報を登録する処理を行う。すなわち，部品配列作成部１５は，図面作成処理部１１で作成された製品図面のデータと部品ＤＢ１２に登録された各部品のデータから，製品図面に使用されたすべての部品の部品配列を作成する。また，接続関係配列作成部１６は，図面作成処理部１１で作成された製品図面のデータから，製品図面上でのすべての部品同士の接続関係の接続関係配列を作成する。部品配列作成部１５で作成された製品の部品配列と，接続関係配列作成部１６で作成された製品の接続関係配列とを，製品ＤＢ１３に保存する。【００６５】
図９は，製品の部品配列の例を示す図である。図９では，製品の部品配列６１を，テーブル形式で表現している。図９の製品の部品配列６１は，図７，図８で設計された製品型名“ＲＸ２００Ｓ２”，製品型名“ＲＸ２００Ｓ２Ａ”の製品と，さらに製品型名“ＨＵＢ２５１８”のスイッチングハブ，製品型名“ＳＸ１０”のＳＣＳＩディスク用筐体の製品についての部品情報である。なお，図９の製品の部品配列６１では，作業指示書の作成に必要なプロパティなどのデータを中心に記載しており，作業指示書の作成に必要ないデータについては省略している。また，図９の製品の部品配列６１では，どの製品がどの部品から構成されているかをわかりやすくするため，製品型名ごとに部品をまとめている。【００６６】
製品の部品配列６１は，部品ＩＤ，部品型名，アンカーＩＤ，アンカー空間プロパティ，アンカー電気プロパティ，その他のプロパティ等の情報，接続点情報などから構成される。部品型名，接続点情報は，部品ＤＢ１２からコピーされたデータである。部品ＩＤ，アンカーＩＤ，アンカー空間プロパティ，アンカー電気プロパティは，製品図面の作成時に設定されたデータである。アンカー空間プロパティ，アンカー電気プロパティについては，後述の実施の形態３で詳細を説明する。その他のプロパティ等の情報は，部品ＤＢ１２からコピーされたその他の部品プロパティ等の情報などのデータや，製品の設計時に設定された上記以外のプロパティなどのデータである。【００６７】
図１０は，製品の接続関係配列の例を示す図である。図１０では，製品の接続関係配列６２を，テーブル形式で表現している。図１０の製品の接続関係配列６２は，図７，図８で設計された製品型名“ＲＸ２００Ｓ２”，製品型名“ＲＸ２００Ｓ２Ａ”の製品と，さらに製品型名“ＨＵＢ２５１８”のスイッチングハブ，製品型名“ＳＸ１０”のＳＣＳＩディスク用筐体の製品についての接続関係情報である。ただし，製品型名“ＨＵＢ２５１８”と製品型名“ＳＸ１０”の製品には部品同士の接続関係がないため（図９の製品の部品配列６１参照），図１０の製品の接続関係配列６２は，実質的に図７，図８で設計された製品型名“ＲＸ２００Ｓ２”，製品型名“ＲＸ２００Ｓ２Ａ”の製品についての接続関係情報である。なお，図１０の製品の接続関係配列６２では，作業指示書の作成に必要なプロパティなどのデータを中心に記載しており，作業指示書の作成に必要ないデータについては省略している。【００６８】
製品の接続関係配列６２は，始点部品ＩＤ，始点接続点名，終点部品ＩＤ，終点接続点名，その他のプロパティ等の情報などから構成される。始点部品ＩＤは，その接続関係の始点となる部品の部品ＩＤを示し，始点接続点名は，その接続関係の始点となる部品における接続点名を示す。終点部品ＩＤは，その接続関係の終点となる部品の部品ＩＤを示し，終点接続点名は，その接続関係の終点となる部品における接続点名を示す。その他のプロパティ等の情報としては，例えば接続種別などのプロパティがある。【００６９】
基幹部品リスト作成部１７は，部品配列作成部１５で作成された製品図面の部品配列と，接続関係配列作成部１６で作成された製品図面の接続関係配列とから，製品の基幹部品リストを作成する。製品の部品配列，接続関係配列の作成から製品の基幹部品リストの作成までの手順は，設計図の基幹部品リストの作成手順と同じである。作成された製品の基幹部品リストは，製品ＤＢ１３に保存され，後の作業指示書の作成時に使用する。【００７０】
図１１は，製品の基幹部品リストの例を示す図である。図１１では，製品の基幹部品リスト６３を，テーブル形式で表現している。図１１の製品の基幹部品リスト６３は，図９の製品の部品配列６１と，図１０の製品の接続関係配列６２とから作成されたものである。なお，図１１の製品の基幹部品リスト６３では，作業指示書の作成に必要なプロパティなどのデータを中心に記載しており，作業指示書の作成に必要ないデータについては省略している。【００７１】
製品の基幹部品リスト６３は，基幹部品情報と付随部品情報から構成される。基幹部品情報は，アンカーＩＤが設定された基幹部品の情報であり，製品の部品配列６１から得られたその基幹部品に関する情報である。付随部品情報のエリアは，その基幹部品と同じ部品群に属する部品の情報が記録されるエリアであり，直接接続部品情報と直接接続点名から構成される。なお，図１１において，接続点情報は，接続プロパティが“内部”であるものについてのみ記載されている。【００７２】
直接接続部品情報は，基幹部品に直接接続された部品（ここでは子部品という）の情報であり，製品の部品配列６１から得られたその子部品に関する情報である。実際には，子部品にも付随部品情報があり，その子部品にさらに直接接続された部品（ここでは孫部品という）が存在する場合には，その孫部品の情報がさらに記録される。直接接続点名は，子部品が直接接続された基幹部品の接続点の接続点名である。【００７３】
〔コンピュータシステムの設計〕
コンピュータシステムの設計の例について説明する。【００７４】
図１２は，ＣＡＤ画面の例を示す図である。図面作成処理部（ＣＡＤ）１１を普通に起動すると，入出力装置２０のディスプレイ上には，ＣＡＤ画面５５が表示される。コンピュータシステムの設計図の作成は，部品ＤＢ１２に登録された部品と製品ＤＢ１３に登録された製品をＣＡＤ画面５５上に配置することにより行われる。このとき，部品や製品のプロパティも，同時に部品ＤＢ１２や製品ＤＢ１３から設計図にコピーされる。【００７５】
図１２の例では，製品型名“ＲＸ２００Ｓ２”の製品が，製品ＤＢ１３から配置されている。また，部品型名“ＰＬ−２２３４５”の部品が，“ＲＸ２００Ｓ２”の接続点Ｐ１と“ＰＬ−２２３４５”の接続点Ｐとが接続されるように，部品ＤＢ１２から配置されている。さらに，製品型名“ＨＵＢ２５１８”の製品が，製品ＤＢ１３から配置され，“ＰＬ−２２３４５”の接続点Ｌと“ＨＵＢ２５１８”の接続点Ｌ４が結線されている。このような作業を繰り返すことにより，コンピュータシステムの設計図が作成される。【００７６】
なお，図７の部品ステンシルウィンドウ５３のように製品ＤＢ１３に登録された製品の作図用図形が並べられた製品ステンシルウィンドウを用意し，製品の作図用図形をドラッグ＆ドロップによってＣＡＤ画面５５上に貼り付けるようにしてもよい。【００７７】
〔実施の形態１〕
本実施の形態１では，コンピュータシステムの設計図から部品群を抽出し，抽出された部品群と製品ＤＢ１３に登録された製品とを比較してその差異を抽出することにより，作業指示書の作成を行う例を説明する。【００７８】
本実施の形態１では，部品ＤＢ１２に，図５に示す部品データ６０がすでに格納されているものとする。また，製品ＤＢ１３に，図９に示す製品の部品配列６１，図１０に示す製品の接続関係配列６２，図１１に示す製品の基幹部品リスト６３がすでに格納されているものとする。なお，本実施の形態１では，ＢＴＯフラグ，電気接続プロパティ，アンカー空間プロパティ，アンカー電気プロパティは使用しない。【００７９】
図１３は，コンピュータシステムの設計図の例を示す図である。図１３の設計図９０において，各部品に付いている“ＱＭＴ１”，“ＱＣＰＵ１”，... は，設計図９０の各部品を一意に識別するために設計時に設定された部品ＩＤである。設計図９０は，製品型名“ＲＸ２００Ｓ２”，“ＲＸ２００Ｓ２Ａ”，“ＨＵＢ２５１８”の製品を基本として，一部部品の交換，部品の追加，部品同士の結線によって作成されている。そのため，部品ＩＤ“ＱＭＴ１”，“ＱＭＴ２”，“ＱＨＵＢ１”の部品には，それぞれアンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”，“Ａ＿ＲＸ２００Ｓ２Ａ”，“Ａ＿ＨＵＢ２５１８”が付いている。なお，図１３の設計図９０は，２台のサーバが１台のＨＵＢに接続されたコンピュータシステムを想定している。【００８０】
図１４は，設計図の部品配列の例を示す図である。図１４に示す設計図の部品配列６４は，設計図９０や部品ＤＢ１２の部品データ６０をもとに，部品配列作成部１５によって作成されたものである。なお，図１４の設計図の部品配列６４では，本実施の形態１による作業指示書の作成に必要なプロパティなどのデータを中心に記載しており，本実施の形態１による作業指示書の作成に必要ないデータについては省略している。【００８１】
図１５は，設計図の接続関係配列の例を示す図である。図１５に示す設計図の接続関係配列６５は，設計図９０をもとに，接続関係配列作成部１６によって作成されたものである。なお，図１５の設計図の接続関係配列６５では，本実施の形態１による作業指示書の作成に必要なプロパティなどのデータを中心に記載しており，本実施の形態１による作業指示書の作成に必要ないデータについては省略している。【００８２】
ここで，作成された設計図の部品配列６４と設計図の接続関係配列６５をもとに，アンカーＩＤが付与された部品から接続プロパティが“内部”となる接続関係のみを辿って部品を集める。例えば，アンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”が付与された部品ＩＤ“ＱＭＴ１”の部品について，図１４の設計図の部品配列６４を見ると，接続プロパティは，“Ｌ１”以外の接続点がすべて“内部”であることがわかる。すなわち，設計図９０において，部品ＩＤ“ＱＭＴ１”の部品の接続点“Ｃ１”に接続された部品ＩＤ“ＱＣＰＵ１”の部品，接続点“Ｍ１”に接続された部品ＩＤ“ＱＭＥＭ１”の部品，接続点“Ｐ１”に接続された部品ＩＤ“ＱＰＣＩ１”の部品は，すべて同じ部品群に所属することがわかる。部品ＩＤ“ＱＣＰＵ１”，“ＱＭＥＭ１”の部品は部品ＩＤ“ＱＭＴ１”の部品以外との接続がなく，部品ＩＤ“ＱＰＣＩ１”の部品において部品ＩＤ“ＱＭＴ１”の部品以外の部品と接続された接続点“Ｌ”の接続プロパティは“外部”であるので，他に同じ部品群に所属する部品がないことがわかる。よって，部品ＩＤ“ＱＭＴ１”，“ＱＣＰＵ１”，“ＱＭＥＭ１”，“ＱＰＣＩ１”が１つの部品群となる。【００８３】
このような作業を設計図９０のすべての部品に対して行うと，設計図９０は，
（ａ）ＱＭＴ１（アンカーＩＤ：Ａ＿ＲＸ２００Ｓ２），ＱＣＰＵ１，ＱＭＥＭ１，ＱＰＣＩ１
（ｂ）ＱＭＴ２（アンカーＩＤ：Ａ＿ＲＸ２００Ｓ２Ａ），ＱＣＰＵ２，ＱＣＰＵ３，ＱＭＥＭ２，ＱＭＥＭ３，ＱＡＲＹ１
（ｃ）ＱＨＵＢ１（アンカーＩＤ：Ａ＿ＨＵＢ２５１８）
の３つの部品群で構成されていることがわかる。このように，接続プロパティの概念を導入することによって，設計図９０から，アンカーＩＤが付与された基幹部品に内部接続の接続プロパティで接続される部品群を抽出することが可能となる。すなわち，コンピュータシステムの設計図９０から，そのコンピュータシステムを構成するサーバ，ＨＵＢなどの情報機器を簡単に抽出することが可能となる。【００８４】
図１６は，設計図の基幹部品リストの例を示す図である。図１６に示す設計図の基幹部品リスト６６は，設計図の部品配列６４と設計図の接続関係配列６５とをもとに，基幹部品リスト作成部１７によって作成されたものである。図１６に示すように，設計図の期間部品リスト６６は，アンカーＩＤが付与された基幹部品を中心とした部品群のリストとなる。なお，図１６の設計図の基幹部品リスト６６では，本実施の形態１による作業指示書の作成に必要なプロパティなどのデータを中心に記載しており，本実施の形態１による作業指示書の作成に必要ないデータについては省略している。【００８５】
部品群ごとの作業指示書の作成は，設計図９０から抽出された部品群と製品ＤＢ１３に登録された製品とのマッチングにより行われる。このとき，部品群とのマッチングに用いられる製品は，その部品群とアンカーＩＤが一致する製品である。アンカーＩＤが一致する部品群の部品構成と製品の部品構成とを比較してその差異を検出することにより，部品群ごとの作業指示書が作成できる。【００８６】
設計図９０におけるアンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”が付与された部品を基幹部品とする部品群を例として，作業指示書作成部１８による作業指示書の作成手順を説明する。まず，アンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”で製品ＤＢ１３を検索し，製品の基幹部品リスト６３からアンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”の部品を基幹部品とする製品のデータを取得する。次に，取得されたアンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”の製品のデータと，設計図の基幹部品リスト６６におけるアンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”の部品群のデータとから，双方の部品構成の差異を抽出する。最後に，設計図９０におけるアンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”の部品群の作業指示書として，アンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”の製品からの設計の変更点をまとめた作業指示書を作成する。【００８７】
このような作業を，設計図９０のすべての部品群について行うことにより，設計図９０の部品群ごとの作業指示書を作成することができる。すなわち，設計図９０に記載されたサーバ，ＨＵＢなどの情報機器ごとの作業指示書が作成されることとなり，システムの設置作業者による現場でのシステム設置作業が容易となる。【００８８】
図１７は，作業指示書の例を示す図である。作業指示書６７は，設計図９０におけるアンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”の部品群についての作業指示書であり，作業指示書６８は，設計図９０におけるアンカーＩＤ“Ａ＿ＲＸ２００Ｓ２Ａ”の部品群についての作業指示書である。なお，設計図９０におけるアンカーＩＤ“Ａ＿ＨＵＢ２５１８”が付与された部品には接続プロパティが“内部”の接続点がないので，特に作業指示書については省略する。【００８９】
各作業指示書（６７，６８）では，基幹部品を外枠として表現しており，基幹部品の各接続点（ただし，接続プロパティが“内部”の接続点のみ）ごとに，その接続点に接続された部品の部品名称と部品型名とが，製品，実構成品のそれぞれについて記載されている。ここで実構成品とは，設計図９０における部品群の構成である。各接続点ごとの差異を取ることにより，作業指示が生成される。【００９０】
作業指示書６７を見ると，実構成品では，製品型名“ＲＸ２００Ｓ２”の製品に，部品型名“ＰＬ−２２３４５”のＬＡＮカードを追加した構成となっていることがわかる。また，作業指示書６８を見ると，実構成品では，製品型名“ＲＸ２００Ｓ２Ａ”の製品に，部品型名“ＣＰＵ−３４５６”のＣＰＵと，部品型名“ＭＥＭ−２２２２”のメモリとを追加した構成となっていることがわかる。また，製品型名“ＲＸ２００Ｓ２Ａ”の製品の接続点Ｃ１のＣＰＵが，部品型名“ＣＰＵ−１２３４”のものから部品型名“ＣＰＵ−３４５６”のものに換装されていることがわかる。【００９１】
現場でコンピュータシステムの設置を行う設置作業者は，各情報機器ごとにそれぞれ作業指示書（６７，６８）に従って製品への部品の追加，削除，換装等の作業を行い，さらに設計図９０に従ってそれぞれの情報機器の設置，接続等の作業を行う。情報機器ごとに変更点が明確であるため，作業は容易となる。【００９２】
〔実施の形態２〕
本実施の形態２では，前述の実施の形態１においてＢＴＯ（Built To Order）が実施されている場合の例について説明する。ＢＴＯとは，一般的に，顧客がパーツの組合せを指定してオリジナルの製品を注文し，メーカーがその注文に従って製品を生産する方式である。前述の実施の形態１では，すべての部品の変更作業を設置現場で行うことを前提に作業指示書を作成しているが，本実施の形態２では，ＢＴＯの対象となっている部品について，あらかじめ工場などで部品の変更を行った状態で製品が設置現場に送られることを前提に作業指示書を作成する。【００９３】
本実施の形態２では，前述の実施の形態１と同様に，部品ＤＢ１２に，図５に示す部品データ６０がすでに格納されているものとする。また，製品ＤＢ１３に，図９に示す製品の部品配列６１，図１０に示す製品の接続関係配列６２，図１１に示す製品の基幹部品リスト６３がすでに格納されているものとする。なお，本実施の形態２では，電気接続プロパティ，アンカー空間プロパティ，アンカー電気プロパティは使用しない。【００９４】
図５の部品データ６０に示すように，各部品にはＢＴＯフラグが設定されている。ＢＴＯフラグは，“可”／“不可”／“対象外”の三値をもつ。“可”のＢＴＯフラグは，その部品が設計図で製品に追加，換装されている場合などに，工場で製品にすでに装着された状態で納品される部品であることを示す。“不可”のＢＴＯフラグは，その部品が設計図で製品に追加，換装されている場合などに，まだ製品に装着されていない部品の状態で納品され，現場で製品に装着する必要がある部品であることを示す。“対象外”のＢＴＯフラグは，製品に標準的に装着されている部品であることを示す。なお，ＢＴＯフラグが“対象外”である部品が個別に設計図に追加された場合には，有休品等を使ってシステムを構築したことになり，動作的にはＢＴＯフラグ“不可”と同等である。【００９５】
なお，本実施の形態２では，同じ部品でも，ＢＴＯフラグの設定が異なる部品については，異なる部品型名が設定されている。例えば，図５の部品データ６０において，部品名称が“Ｐ  ＩＶ（３ＧＨｚ）”のＣＰＵには，ＢＴＯフラグが“可”に設定されたものと，ＢＴＯフラグが“不可”に設定されたものとが存在する。図５の部品データ６０を見ると，それぞれ“ＣＰＵ−３４５６”，“ＣＰＵ−３４５７”というように，同じＣＰＵに別々の部品型名が設定されていることがわかる。【００９６】
本実施の形態２では，前述の実施の形態１と同様に，図１３の設計図９０が設計されたものとする。【００９７】
図１８は，設計図の部品配列の例を示す図である。図１８に示す設計図の部品配列６９は，設計図９０や部品ＤＢ１２の部品データ６０をもとに，部品配列作成部１５によって作成されたものである。なお，図１８の設計図の部品配列６９では，本実施の形態２による作業指示書の作成に必要なプロパティなどのデータを中心に記載しており，本実施の形態２による作業指示書の作成に必要ないデータについては省略している。本実施の形態２の設計図の部品配列６９は，図１４の設計図の部品配列６４にＢＴＯフラグが追加されたデータとなる。【００９８】
本実施の形態２の設計図の接続関係配列は，前述の実施の形態１と同じである。すなわち，図１５に示す設計図の接続関係配列６５の通りとなる。【００９９】
図１９は，設計図の基幹部品リストの例を示す図である。図１９に示す設計図の基幹部品リスト７０は，図１８の設計図の部品配列６９と図１５の設計図の接続関係配列６５とをもとに，基幹部品リスト作成部１７によって作成されたものである。なお，図１９の設計図の基幹部品リスト７０では，本実施の形態２による作業指示書の作成に必要なプロパティなどのデータを中心に記載しており，本実施の形態２による作業指示書の作成に必要ないデータについては省略している。【０１００】
ここで，製品ＤＢ１３に登録されたアンカーＩＤ“ＲＸ２００Ｓ２Ａ”の製品と，設計図９０のアンカーＩＤ“ＲＸ２００Ｓ２Ａ”の部品群とを比較してみる。製品には，部品型名“ＣＰＵ−１２３４”のＣＰＵが１つだけ装着されているが，設計図９０では，部品型名“ＣＰＵ−３４５６”のＣＰＵが２つ装着されている。これは，部品型名“ＣＰＵ−１２３４”のＣＰＵが部品型名“ＣＰＵ−３４５６”のＣＰＵに換装され，さらに部品型名“ＣＰＵ−３４５６”のＣＰＵが追加されていることを示す。また，設計図９０では，部品型名“ＭＥＭ−２２２２”のメモリが追加されている。前述の実施の形態１では，システム設置の現場でこれらすべての部品の換装／追加の作業を行っていた。【０１０１】
図５の部品データ６０を見ると，部品型名“ＣＰＵ−３４５６”の部品は，ＢＴＯフラグが“可”となっているのがわかる。すなわち，部品ＩＤ“ＣＰＵ−３４５６”の部品は，工場での換装／追加が可能なオプション品であることがわかる。本実施の形態２では，これらの部品の換装／追加の作業は工場で行われ，システム設置の現場では行われない。なお，部品型名“ＭＥＭ−２２２２”の部品は，ＢＴＯフラグが“不可”であるので，工場での換装／追加はできない。【０１０２】
図２０は，作業指示書の例を示す図である。図２０は，設計図９０におけるアンカーＩＤ“ＲＸ２００Ｓ２Ａ”の部品群についての作業指示書７１である。その他の部品群については，ＢＴＯフラグ“可”の部品が存在しないため，説明を省略する。ＢＴＯフラグが“可”の部品は，工場で製品に装着された状態で納品される。そのため，作業指示書７１では，ＢＴＯフラグが“可”である部品型名“ＣＰＵ−３４５６”の部品については，あらかじめ製品側の構成に組み込まれている。【０１０３】
本実施の形態２では，作業指示書７１の製品側の構成が，「標準的な製品＋ＢＴＯ可能なオプション品の構成」となっており，すなわち工場から納品されたときの構成となっている。したがって，システムの設置現場で納品物を検収する際には，作業指示書７１の製品側のリストをチェックすればよく，検収作業が容易となる。また，作業指示書７１の作業指示が，標準的な製品の構成からの差分ではなく，納品された製品の構成からの差分になっているため，システム設置の現場で必要な作業のみが明らかに示されたものとなる。このように，接続プロパティやアンカーＩＤを用いることにより，各情報機器ごとの作業指示書が作成でき，かつ，ＢＴＯフラグを用いることにより，検収やシステム設置の現場での実際の構築に即した作業指示書を自動生成することができる。【０１０４】
なお，ＢＴＯフラグが“可”である部品について，製品に組み込まれた部品として扱うのではなく，工場取り付け品である旨の情報を作業指示書内に記録するようにしてもよい。【０１０５】
〔実施の形態３〕
本実施の形態３では，前述の実施の形態１において，接続プロパティとして空間接続プロパティと電気接続プロパティとがある場合の例について説明する。空間接続プロパティは，その接続が空間的に内部接続であるか，外部接続であるかを示す接続プロパティである。すなわち，１台の情報機器内での接続であるか，情報機器間での接続であるかを示す。また，電気接続プロパティは，その接続が電気的に内部接続であるか，外部接続であるかを示すプロパティである。すなわち，システム運用上の１つの情報機器群内での接続であるか，システム運用上の情報機器群同士の接続であるかを示す。【０１０６】
本実施の形態３では，前述の実施の形態１と同様に，部品ＤＢ１２に，図５に示す部品データ６０がすでに格納されているものとする。また，製品ＤＢ１３に，図９に示す製品の部品配列６１，図１０に示す製品の接続関係配列６２，図１１に示す製品の基幹部品リスト６３がすでに格納されているものとする。【０１０７】
図２１は，コンピュータシステムの設計図の例を示す図である。設計図９１は，製品型名“ＲＸ２００Ｓ２”，“ＳＸ１０”の製品を基本として，部品の追加，部品同士の結線によって作成されている。そのため，部品ＩＤ“ＲＭＴ１”，“ＲＳＤＳＫ１”の部品には，それぞれアンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”，“Ａ＿ＳＸ１０”が付いている。なお，図２１の設計図９１は，サーバに外付けのＳＣＳＩディスク装置が接続されたコンピュータシステムを想定している。【０１０８】
図２２は，設計図の部品配列の例を示す図である。図２２に示す設計図の部品配列７２は，設計図９１や部品ＤＢ１２の部品データ６０をもとに，部品配列作成部１５によって作成されたものである。なお，図２２の設計図の部品配列７２では，本実施の形態３による作業指示書の作成に必要なプロパティなどのデータを中心に記載しており，本実施の形態３による作業指示書の作成に必要ないデータについては省略している。【０１０９】
設計図の部品配列７２において，アンカー空間プロパティは，その部品に付与されたアンカーＩＤが空間的に機能するか否かを示すプロパティである。アンカー電気プロパティは，その部品に付与されたアンカーＩＤが電気的に機能するか否かを示すプロパティである。“ＴＲＵＥ”が機能することを示し，“ＦＡＬＳＥ”が機能しないことを示す。例えば，部品ＩＤ“ＲＳＤＳＫ１”に付与されたアンカーＩＤ“Ａ＿ＳＸ１０”は，図２２の設計図の部品配列７２から，空間的には機能するが，電気的には機能しないことがわかる。すなわち，部品ＩＤ“ＲＳＤＳＫ１”の部品は，空間的には基幹部品となるが，電気的には基幹部品とはならず，他の基幹部品の部品群に所属することになる。【０１１０】
図２３は，設計図の接続関係配列の例を示す図である。図２３に示す設計図の接続関係配列７３は，設計図９１をもとに，接続関係配列作成部１６によって作成されたものである。なお，図２３の設計図の接続関係配列７３では，本実施の形態３による作業指示書の作成に必要なプロパティなどのデータを中心に記載しており，本実施の形態３による作業指示書の作成に必要ないデータについては省略している。【０１１１】
システム設置の作業指示書を作成する場合には，空間接続プロパティ，アンカー空間プロパティを参照して行う。設計図の部品配列７２において，アンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”，“Ａ＿ＳＸ１０”は，ともにアンカー空間プロパティが“ＴＲＵＥ”であるので，アンカーＩＤとして機能する。設計図の部品配列７２と設計図の接続関係配列７３をもとに，アンカーＩＤが付与された部品から空間接続プロパティが“内部”となる接続関係のみを辿って部品を集めると，設計図９１は，
（ａ）ＲＭＴ１（アンカーＩＤ：Ａ＿ＲＸ２００Ｓ２），ＲＣＰＵ１，ＲＭＥＭ１，ＲＰＣＩ１
（ｂ）ＲＳＤＳＫ１（アンカーＩＤ：Ａ＿ＳＸ１０），ＲＨＤＤ１，ＲＨＤＤ２，ＲＨＤＤ３
の２つの部品群で構成されていることがわかる。【０１１２】
図２４は，設計図の基幹部品リストの例を示す図である。図２４に示す設計図の基幹部品リスト７４は，設計図の部品配列７２と設計図の接続関係配列７３とをもとに，基幹部品リスト作成部１７によって作成されたものである。なお，図２４の設計図の基幹部品リスト７４では，本実施の形態３による作業指示書の作成に必要なプロパティなどのデータを中心に記載しており，本実施の形態３による作業指示書の作成に必要ないデータについては省略している。【０１１３】
図２５は，作業指示書の例を示す図である。作業指示書７５は，設計図９１におけるアンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”が付与された部品を基幹部品とする部品群についての作業指示書であり，作業指示書７６は，設計図９１におけるアンカーＩＤ“Ａ＿ＳＸ１０”が付与された部品を基幹部品とする部品群についての作業指示書である。【０１１４】
このように，設計図９１に示すようなコンピュータシステムの場合，アンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”のサーバと，アンカーＩＤ“Ａ＿ＳＸ１０”のＳＣＳＩディスク装置とは，別々の製品として納入されるため，システムの設置作業者にとっては，別々の作業指示書があった方が作業がやりやすい。【０１１５】
しかし，ＳＥ（System Engineer ）などの運用作業者にとっては，周辺機器などには管理上サーバに属して使用されるものもあるので，それらをサーバと別のものとして扱うと作業が不便になる場合がある。例えば，設計図９１のシステムでは，アンカーＩＤ“Ａ＿ＳＸ１０”のＳＣＳＩディスク装置は，管理／運営上，サーバが自由に使用できるように設定する必要があり，運用作業者にはその設定用文書などが必要となる。【０１１６】
このような場合には，電気接続プロパティを参照して部品をまとめるとよい。設計図の部品配列７２において，アンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”のアンカー電気プロパティは，“ＴＲＵＥ”であるが，アンカーＩＤ“Ａ＿ＳＸ１０”のアンカー電気プロパティは“ＦＡＬＳＥ”である。よって，アンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”はアンカーＩＤとして機能するが，アンカーＩＤ“Ａ＿ＳＸ１０”はアンカーＩＤとして機能しない。すなわち，部品ＩＤ“ＲＳＤＳＫ１”の部品は，アンカーＩＤが付与されていないという扱いになる。【０１１７】
設計図の部品配列７２と設計図の接続関係配列７３をもとに，アンカーＩＤが付与された部品から電気接続プロパティが“内部”となる接続関係のみを辿って部品を集めると，設計図９１は，
（ａ）ＲＭＴ１（アンカーＩＤ：Ａ＿ＲＸ２００Ｓ２），ＲＣＰＵ１，ＲＭＥＭ１，ＲＰＣＩ１，ＲＳＤＳＫ１，ＲＨＤＤ１，ＲＨＤＤ２，ＲＨＤＤ３
の１つの部品群で構成されていることがわかる。コンピュータシステムの運用のための設定用文書の作成には，このようにして集められた部品群をもとに作成するとよい。【０１１８】
図２６は，ディスクパーティション設計用テンプレートの例を示す図である。図２６のディスクパーティション設計用テンプレート７７は，設計図９１において電気接続プロパティが“内部”となる接続関係のみを辿って集めた部品群について探索を行い，部品種別が“ＳＣＳＩ  ＨＤＤ”であるもののみを収集して作成されたものである。【０１１９】
このように，接続プロパティを空間接続プロパティと電気接続プロパティに分けることにより，コンピュータシステムの設置のための作業指示書の作成と，コンピュータシステムの運用のための設定文書の作成とを使い分けることができる。【０１２０】
図２７は，作業指示書の例を示す図である。図２７は，設計図９１において，ＢＴＯフラグを用いて作成した場合の作業指示書の例である。図５の部品データ６０を見ると，部品型名“ＨＤＨ−３２１０”の部品のＢＴＯフラグは“可”となっている。すなわち，ＳＣＳＩディスク用筐体へのＨＤＤの搭載はＢＴＯが可能であることがわかる。よって，設計図９１におけるＢＴＯフラグを用いた場合のアンカーＩＤ“Ａ＿ＳＸ１０”が付与された部品を基幹部品とする部品群についての作業指示書は，図２７の作業指示書７８となる。なお，図５の部品データ６０から部品型名“ＳＣ−６６５４”の部品のＢＴＯフラグは“不可”となっているので，設計図９１におけるアンカーＩＤ“Ａ＿ＲＸ２００Ｓ２”が付与された部品を基幹部品とする部品群については，図２５の作業指示書７５と同じになる。【０１２１】
ＢＴＯフラグは空間的性質をもつので，空間的接続プロパティのみと組み合わせることになる。よって，本実施の形態３でも，ＢＴＯフラグを用いて作業指示書を検収書兼用とすることは，問題なく行える。【０１２２】
〔作業指示書作成処理フローチャート〕
図２８は，作業指示書作成処理フローチャートである。まず，図２８で，作業指示書作成処理の全体の流れを簡単に説明する。図２８の作業指示書作成処理では，製品図面データ，システムの設計図データを引数とする。【０１２３】
まず，製品の基幹部品リストを作成する。製品図面データをもとに，後述の部品配列作成処理（図２９参照）を行い，製品の部品配列（prodParts[] ）を作成する（ステップＳ１）。製品図面データをもとに，後述の接続関係配列作成処理（図３０参照）を行い，製品の接続関係配列（prodConn[]）を作成する（ステップＳ２）。製品の部品配列（prodParts ），製品の接続関係配列（prodConn）をもとに，後述の基幹部品リスト作成処理（図３１参照）を行い，製品の基幹部品リスト（prodAnchors[] ）を作成する（ステップＳ３）。【０１２４】
次に，設計図の基幹部品リストを作成する。設計図データをもとに，後述の部品配列作成処理（図２９参照）を行い，製品の部品配列（dsgnParts[] ）を作成する（ステップＳ４）。設計図データをもとに，後述の接続関係配列作成処理（図３０参照）を行い，設計図の接続関係配列（dsgnConn[]）を作成する（ステップＳ５）。設計図の部品配列（dsgnParts ），設計図の接続関係配列（dsgnConn）をもとに，後述の基幹部品リスト作成処理（図３１参照）を行い，設計図の接続関係リスト（dsgnAnchors[] ）を作成する（ステップＳ６）。【０１２５】
製品の基幹部品リスト（prodAnchors ），設計図の基幹部品リスト（dsgnAnchors ）をもとに，後述の全作業指示書作成処理（図３６参照）を行い，作業指示書を作成する（ステップＳ７）。【０１２６】
図２９は，部品配列作成処理フローチャートである。図２９の部品配列作成処理は，部品配列作成部１５による処理の例である。図２９の部品配列作成処理では，図面データ（製品図面データ，設計図データ）を引数とする。【０１２７】
なお，部品オブジェクト（parts ）は，例えば，
parts ｛
partsId:      部品ＩＤ
productId:    部品型名
name:         部品名称
anchorID:     アンカーＩＤ
anchSProp:    アンカー空間プロパティ
anchEProp:    アンカー電気プロパティ
bto:          ＢＴＯフラグ
その他の部品オブジェクトの配列
cn[]:         接続点オブジェクトの配列
＜ワーキングプロパティ＞
visited:      訪問済フラグ（true/false）
connParts[]:  直接接続部品オブジェクトの配列
connName[]:   直接接続点名（connParts の各要素が接続する接続点名）の配列
｝
のような構造をもち，また，接続点オブジェクト（conn）は，例えば，
conn｛
id:           接続点名
sProp:        空間接続プロパティ
eProp:        電気接続プロパティ
その他の接続点プロパティ
｝
のような構造をもつものとする。【０１２８】
変数ｓ１に図面内の部品数を代入し，変数ｉ１に０を代入する（ステップＳ１０）。ｓ１個の要素をもつ部品配列（partsList[s1] ）を作成する（ステップＳ１１）。【０１２９】
ｉ１≧ｓ１であれば（ステップＳ１２），部品配列（partsList[] ）を返し（ステップＳ２４），処理を終了する。【０１３０】
ｉ１≧ｓ１でなければ（ステップＳ１２），部品オブジェクト（parts ）を生成する（ステップＳ１３）。図面内の部品［i1］のプロパティ（partsId ，productId ，anchorID，anchSProp ，anchEProp 等）を，部品オブジェクト（parts ）のプロパティに記録する（ステップＳ１４）。部品オブジェクトの部品型名（parts.productId ）で部品ＤＢ１２を検索し，該当する部品のプロパティをpRecにコピーする（ステップＳ１５）。pRecにコピーされた接続点情報のプロパティ以外のプロパティ（name，bto 等）を，部品オブジェクト（parts ）に記録する（ステップＳ１６）。【０１３１】
変数ｓ２にpRecの接続点数を代入し，変数ｉ２に０を代入する（ステップＳ１７）。部品オブジェクト（parts ）にｓ２個の要素をもつ接続点オブジェクトの配列（parts.cn[s2]）を作成する（ステップＳ１８）。【０１３２】
ｉ２≧ｓ２でなければ（ステップＳ１９），pRecのｉ２番目の接続点情報のプロパティを，部品オブジェクトのｉ２番目の接続点オブジェクト（parts.cn[i2]）に格納する（ステップＳ２０）。ｉ２に１を加え（ステップＳ２１），ステップＳ１９に戻る。【０１３３】
ｉ２≧ｓ２であれば（ステップＳ１９），部品オブジェクト（parts ）をpartsList[i1] に格納する（ステップＳ２２）。ｉ１に１を加え（ステップＳ２３），ステップＳ１２に戻る。【０１３４】
図３０は，接続関係配列作成処理フローチャートである。図３０の接続関係配列作成処理は，接続関係配列作成部１６による処理の例である。図３０の接続関係配列作成処理では，図面データ（製品図面データ，設計図データ）を引数とする。【０１３５】
なお，接続関係オブジェクト（connRel ）は，例えば，
connRel ｛
sPart:        始点部品ＩＤ
sPoint:       始点接続点名
dPart:        終点部品ＩＤ
dPoint:       終点接続点名
その他のプロパティ
｝
のような構造をもつものとする。その他のプロパティとしては，例えば接続種別などがある。【０１３６】
変数ｓに図面内の接続関係数を代入し，変数ｉに０を代入する（ステップＳ３０）。ｓ個の要素をもつ接続関係配列（connList[s] ）を作成する（ステップＳ３１）。【０１３７】
ｉ≧ｓであれば（ステップＳ３２），接続関係配列（connList[]）を返し（ステップＳ３８）処理を終了する。【０１３８】
ｉ≧ｓでなければ（ステップＳ３２），図面内のｉ番目の接続関係のデータ（始点部品ＩＤ（接続の始点となる部品の部品ＩＤ），始点接続点名（接続の始点となる接続点の接続点名），終点部品ＩＤ（接続の終点となる部品の部品ＩＤ），終点接続点名（接続の終点となる接続点の接続点名）等）を取得し，その取得されたデータをdsConn[i] に記録する（ステップＳ３３）。接続関係オブジェクト（connRel ）を生成する（ステップＳ３４）。dsConn[i] の始点部品ＩＤ，dsConn[i] の始点接続点名，dsConn[i] の終点部品ＩＤ，dsConn[i] の終点接続点名を，それぞれ接続関係オブジェクトの始点部品ＩＤ（connRel.sPart ），始点接続点名（connRel.sPoint），終点部品ＩＤ（connRel.dPart ），終点接続点名（connRel.dPoint）に格納する（ステップＳ３５）。接続関係オブジェクト（connRel ）をconnList[i] に格納する（ステップＳ３６）。ｉに１を加え（ステップＳ３７），ステップＳ３２に戻る。【０１３９】
以下，図３１〜図３５を用いて，基幹部品リスト作成部１７による基幹部品リスト作成処理の例を説明する。【０１４０】
図３１は，基幹部品リスト作成処理フローチャートである。ここでは，空間的に部品をまとめるものとする。図３１の基幹部品リスト作成処理では，製品または設計図の部品配列（partsList ），接続関係配列（connList）を引数とする。【０１４１】
部品配列（partsList[] ）の各ワーキングプロパティ（visited ，connParts[] ，connName[]）を，すべてクリアする（ステップＳ４０）。部品配列（partsList ），接続関係配列（connList）のスコープをサブルーチンすべてにする（ステップＳ４１）。部品配列（partsList ）を引数として，後述のアンカー付部品収集処理（図３２参照）を行い，結果として基幹部品リスト（anchorParts[] ）を得る（ステップＳ４２）。変数ｓに基幹部品リスト（anchorParts[] ）の要素数を代入し，変数ｉに０を代入する（ステップＳ４３）。【０１４２】
ｉ≧ｓであれば（ステップＳ４４），基幹部品リスト（anchorParts[] ）を返し（ステップＳ４８），処理を終了する。【０１４３】
ｉ≧ｓでなければ（ステップＳ４４），ｐにanchorParts[i]を格納する（ステップＳ４５）。親部品（ｐ），子部品（ｐ），接続点名“”を引数として，後述の内部部品取得処理（図３３参照）を行う（ステップＳ４６）。ｉに１を加え（ステップＳ４７），ステップＳ４４に戻る。【０１４４】
図３２は，アンカー付部品収集処理フローチャートである。図３２のアンカー付部品収集処理では，部品配列（pAry）を引数とする。【０１４５】
変数ｓに部品配列（pAry[]）の要素数を代入し，ｉに０を代入する（ステップＳ５０）。要素数ｓの基幹部品リスト（anchorParts[s]）を生成する（ステップＳ５１）。【０１４６】
ｉ≧ｓであれば（ステップＳ５２），基幹部品リスト（anchorParts[] ）を返し（ステップＳ５８），処理を終了する。【０１４７】
ｉ≧ｓでなければ（ステップＳ５２），pAry[i] をｐに格納する（ステップＳ５３）。ｐのアンカーＩＤ（p.anchorId）が空ではなく（ステップＳ５４），かつアンカー空間プロパティ（p.anchSProp ）が“true”であれば（ステップＳ５５），ｐを基幹部品リスト（anchorParts[] ）に追加する（ステップＳ５６）。ｉに１を加え（ステップＳ５７），ステップＳ５２に戻る。【０１４８】
図３３は，内部部品取得処理フローチャートである。図３３の内部部品取得処理では，親部品（parent），子部品（child ），接続点名（cnName）を引数とする。【０１４９】
子部品（child ）が訪問済であれば，すなわち子部品の訪問済フラグ（child.visited ）が“true”であれば（ステップＳ６０），処理を終了する。【０１５０】
子部品（child ）が訪問済でなければ（ステップＳ６０），子部品（child ）を訪問済みに，すなわち子部品の訪問済フラグ（child.visited ）を“true”にする（ステップＳ６１）。【０１５１】
親部品（parent）と子部品（child ）とが同じでないときは（ステップＳ６２），子部品（child ）を親部品の直接接続部品オブジェクトの配列（parent.connParts[]）に追加し，接続点名（cnName）を親部品の直接接続点名の配列（parent.connName[] ）に追加する（ステップＳ６３）。部品（child ）を引数として，後述の内部接続点収集処理（図３４参照）を行い，結果として内部接続点配列（pnt[] ）を得る（ステップＳ６４）。変数ｓに内部接続点配列（pnt[] ）の要素数を代入し，ｉに０を代入する（ステップＳ６５）。【０１５２】
ｉ≧ｓであれば（ステップＳ６６），処理を終了する。【０１５３】
ｉ≧ｓでなければ（ステップＳ６６），部品ＩＤ（child.partsId ），接続点名（pnt[i].id ）を引数として，後述の接続部品取得処理（図３５参照）を行い，結果として部品（ｐ）を得る（ステップＳ６７）。部品（ｐ）が空でなければ（ステップＳ６８），親部品（child ），子部品（ｐ），接続点名（pnt[i].id ）を引数として，再帰的に内部部品取得処理を行う（ステップＳ６９）。ｉに１を加え（ステップＳ７０），ステップＳ６６に戻る。【０１５４】
図３４は，内部接続点収集処理フローチャートである。図３４の内部接続点収集処理では，部品（ｐ）を引数とする。【０１５５】
部品の接続点オブジェクトの配列（p.cn[]）をallPnts[] に格納する（ステップＳ８０）。変数ｓにallPnts[] の要素数を格納し，ｉに０を代入する（ステップＳ８１）。【０１５６】
ｉ≧ｓであれば（ステップＳ８２），内部接続点配列（point[] ）を返し（ステップＳ８６），処理を終了する。【０１５７】
ｉ≧ｓでなければ（ステップＳ８２），allPnts[i]の空間接続プロパティ（allPnts[i].sProp）が“内部”である場合に（ステップＳ８３），allPnts[i]を内部接続点配列（point[] ）に追加する（ステップＳ８４）。ｉに１を加え（ステップＳ８５），ステップＳ８２に戻る。【０１５８】
図３５は，接続部品取得処理フローチャートである。図３５の接続部品取得処理では，部品ＩＤ（nPart ），接続点名（nPoint）を引数とする。【０１５９】
変数ｓに接続関係配列（connList）のサイズを代入し，ｉに０を代入する（ステップＳ９０）。【０１６０】
ｉ≧ｓであれば（ステップＳ９１），空の部品（ｐ）を作成し（ステップＳ９２），部品（ｐ）を返し（ステップＳ１０１），処理を終了する。【０１６１】
ｉ≧ｓでなければ（ステップＳ９１），connList[i] の始点部品ＩＤ（connList[i].sPart ）をsrcPartNに記録し，connList[i] の始点接続点名（connList[i].sPoint）をsrcPntN に記録する（ステップＳ９３）。【０１６２】
部品ＩＤ（nPart ）がsrcPartNであり，かつ接続点名（nPoint）がsrcPntN であれば（ステップＳ９４），connList[i] の終点部品ＩＤ（connList[i].dPart ）をpartN とする（ステップＳ９５）。部品配列（partsList ）からpartN の部品ＩＤをもつ部品を検索して得られた部品を部品（ｐ）とし（ステップＳ９６），部品（ｐ）を返し（ステップＳ１０１），処理を終了する。【０１６３】
部品ＩＤ（nPart ）がsrcPartNでない，または接続点名（nPoint）がsrcPntN でない場合には（ステップＳ９４），connList[i] の終点部品ＩＤ（connList[i].dPart ）をdstPartNに記録し，connList[i] の終点接続点名（connList[i].dPoint）をdstPntN に記録する（ステップＳ９７）。【０１６４】
部品ＩＤ（nPart ）がdstPartNであり，かつ接続点名（nPoint）がdstPntN であれば（ステップＳ９８），connList[i] の始点部品ＩＤ（connList[i].sPart ）をpartN とする（ステップＳ９９）。部品配列（partsList ）からpartN の部品ＩＤをもつ部品を検索して得られた部品を部品（ｐ）とし（ステップＳ９６），部品（ｐ）を返し（ステップＳ１０１），処理を終了する。【０１６５】
部品ＩＤ（nPart ）がdstPartNでない，または接続点名（nPoint）がdstPntN でない場合には（ステップＳ９８），ｉに１を加え（ステップＳ１００），ステップＳ９１に戻る。【０１６６】
以上，図３１〜図３５のフローチャートでは，空間的に部品をまとめているが，電気的に部品をまとめるようにすることもできる。電気的に部品をまとめる場合には，図３１〜図３５のフローチャートにおいて，空間接続プロパティ（sProp ）を電気接続プロパティ（eProp ）に，アンカー空間プロパティ（anchSProp ）をアンカー電気プロパティ（anchEProp ）に置き換えればよい。【０１６７】
基幹部品リスト作成処理によって返される基幹部品リスト（anchorParts[] ）の各要素は，アンカーＩＤをもつ基幹部品であり，それぞれがコンピュータシステムを構成する情報機器（サーバ，ルータなど）になる。基幹部品リスト（anchorParts[] ）の各要素に直接接続される部品は，anchorParts[i].connParts[]として取得され，さらにその部品に直接接続される部品は，anchorParts[i].connParts[]のconnParts[] として取得される。それ以降に接続される部品についても同様である。【０１６８】
以下，図３６〜図４３を用いて，作業指示書作成部１８による全作業指示書作成処理の例を説明する。【０１６９】
なお，指示書オブジェクトonedocは，例えば，
onedoc｛
title:        アンカーＩＤから“Ａ＿”を取ったもの（すなわち製品型名）
lines[]:      一行オブジェクトの配列
｝
のような構造をもち，また，一行オブジェクトlineは，例えば，
line｛
title:        接続点名
pName:        該当接続点に接続された製品の部品名称
pProdId:      該当接続点に接続された製品の部品型名
dName:        該当接続点に接続された設計図（実構成）の部品名称
dProdId:      該当接続点に接続された設計図（実構成）の部品型名
order:        作業指示
bto:          ＢＴＯフラグ
（ワーク（孫接続出力のために使用））
pParts:       上記データ作成で使用した製品の部品オブジェクト
dparts:       上記データ作成で使用した設計図の部品オブジェクト
｝
のような構造をもつものとする。【０１７０】
図３６は，全作業指示書作成処理フローチャートである。図３６の全作業指示書作成処理では，製品の基幹部品リスト（prod），設計図の基幹部品リスト（dsgn）を引数とする。【０１７１】
変数ｓに設計図の基幹部品リスト（dsgn[]）の要素数を代入し，ｉに０を代入する（ステップＳ１１０）。要素数ｓの指示書配列（doc[s]）を生成する（ステップＳ１１１）。【０１７２】
ｉ≧ｓであれば（ステップＳ１１２），指示書配列（doc ）を引数として，後述の作業指示書出力処理（図４２参照）を行い（ステップＳ１１７），処理を終了する。【０１７３】
ｉ≧ｓでなければ（ステップＳ１１２），dsgn[i] をdPartsに格納する（ステップＳ１１３）。dPartsのアンカーＩＤ（dParts.anchorId ），製品の基幹部品リスト（prod）を引数として，後述の製品取得処理（図３７参照）を行う（ステップＳ１１４）。製品部品オブジェクト（pParts），設計図部品オブジェクト（dParts），先祖接続点名“”を引数として，後述の指示書作成処理（図３８，図３９参照）を行う（ステップＳ１１５）。ｉに１を加え（ステップＳ１１６），ステップＳ１１２に戻る。【０１７４】
図３７は，製品取得処理フローチャートである。図３７の製品取得処理では，アンカーＩＤ（anchorId），製品の基幹部品リスト（prod）を引数とする。【０１７５】
変数ｓに製品の基幹部品リスト（prod[]）の要素数を格納し，変数ｉに０を代入する（ステップＳ１２０）。【０１７６】
ｉ≧ｓであれば（ステップＳ１２１），空の部品（ｐ）を作成し（ステップＳ１２２），部品（ｐ）を返し（ステップＳ１２６），処理を終了する。【０１７７】
ｉ≧ｓでなければ（ステップＳ１２１），prod[i] を部品（ｐ）とする（ステップＳ１２３）。部品（ｐ）のアンカーＩＤ（p.anchorId）が引数のアンカーＩＤ（anchorId）と同じであれば（ステップＳ１２４），部品（ｐ）を返し（ステップＳ１２６），処理を終了する。【０１７８】
部品（ｐ）のアンカーＩＤ（p.anchorId）が引数のアンカーＩＤ（anchorId）と同じでなければ（ステップＳ１２４），ｉに１を加え（ステップＳ１２５），ステップＳ１２１に戻る。【０１７９】
図３８，図３９は，指示書作成処理フローチャートである。図３８，図３９の指示書作成処理では，製品部品オブジェクト（pParts），設計図部品オブジェクト（dParts），先祖接続点名（aName ）を引数とする。【０１８０】
設計図部品オブジェクト（dParts）が空でなければ（ステップＳ１３０），設計図部品オブジェクト（dParts）をsPartsに格納する（ステップＳ１３１）。【０１８１】
設計図部品オブジェクト（dParts）が空であり（ステップＳ１３０），かつ製品部品オブジェクト（pParts）が空でなければ（ステップＳ１３２），製品部品オブジェクト（pParts）をsPartsに格納する（ステップＳ１３３）。【０１８２】
設計図部品オブジェクト（dParts）が空であり（ステップＳ１３０），かつ製品部品オブジェクト（pParts）が空であれば（ステップＳ１３２），要素数０の一行オブジェクト配列（cLine[0]）を生成し，それを指示書オブジェクトの一行オブジェクトの配列（onedoc.lines[]）に記録する（ステップＳ１４８），指示書オブジェクト（onedoc）を返し（ステップＳ１６２），処理を終了する。【０１８３】
sPartsのアンカーＩＤ（sParts.anchorId ）から“A ＿”を除いたものを，指示書オブジェクトのonedoc.titleに格納する（ステップＳ１３４）。sPartsの接続点オブジェクトの配列（sParts.cn[] ）をdcn[] に格納する（ステップＳ１３５）。変数ｓにdcn[] の要素数を代入し，ｉに０を代入する（ステップＳ１３６）。要素数ｓの一行オブジェクトの配列（line[s] ）を生成する（ステップＳ１３７）。【０１８４】
ｉ≧ｓでなければ（ステップＳ１３８），dcn[i]の接続点名（dcn[i].id ）をcName に記録する（ステップＳ１３９）。接続点名（cName ），部品オブジェクト（dParts）を引数として，後述の接続部品取得処理（図４０参照）を行い，結果として部品（dp）を取得する（ステップＳ１４０）。接続点名（cName ），部品オブジェクト（pParts）を引数として，後述の接続部品取得処理（図４０参照）を行い，結果として部品（pp）を取得する（ステップＳ１４１）。【０１８５】
先祖接続点名（aName ）が空であれば（ステップＳ１４２），cName をtmpNに記録する（ステップＳ１４３）。【０１８６】
先祖接続点名（aName ）が空でなければ（ステップＳ１４２），先祖接続点名（aName ）＋“. ”＋cName （文字の結合）をtmpNに格納する（ステップＳ１４４）。【０１８７】
接続点名（tmpN），設計図部品オブジェクト（dp），製品部品オブジェクト（pp）を引数として，後述の指示書一行作成処理（図４１参照）を行い，結果として一行オブジェクト（line[i] ）を取得する（ステップＳ１４５）。ｉに１を加え（ステップＳ１４６），ステップＳ１３８に戻る。【０１８８】
ｉ≧ｓである場合に（ステップＳ１３８），一行オブジェクトの配列（line[]）が空であれば（ステップＳ１４７），要素数０の一行オブジェクトの配列（cLine[0]）を生成し，それを指示書オブジェクトの一行オブジェクトの配列（onedoc.lines[]）に記録する（ステップＳ１４８），指示書オブジェクト（onedoc）を返し（ステップＳ１６２），処理を終了する。【０１８９】
一行オブジェクトの配列（line[]）が空でなければ（ステップＳ１４７），ｉに０を代入する（ステップＳ１４９）。【０１９０】
ｉ≧ｓであれば（ステップＳ１５０），指示書オブジェクトの一行オブジェクトの配列（onedoc.lines[]）に一行オブジェクトの配列（line[]）を格納し（ステップＳ１５１），指示書オブジェクト（onedoc）を返し（ステップＳ１６２），処理を終了する。【０１９１】
ｉ≧ｓでなければ（ステップＳ１５０），pId ，dId ，部品（pp），部品（dp），cName に，それぞれ一行オブジェクトの製品の部品型名（line[i].pProdId ），設計図の部品型名（line[i].dProdId ），製品部品オブジェクト（line[i].pParts），設計図部品オブジェクト（line[i].dParts），接続点名（line[i].title ）を格納する（ステップＳ１５２）。【０１９２】
pId が空であり，かつdId が空であれば（ステップＳ１５３），ｉに１を加え（ステップＳ１５４），ステップＳ１５０に戻る。【０１９３】
pId が空でないか，またはdId が空でない場合に（ステップＳ１５３），pId とdId とが異なっていれば（ステップＳ１５５），空部品（emP ）を生成する（ステップＳ１５６）。製品部品オブジェクト（pp），設計図部品オブジェクト（emP ），先祖接続点名（cName ）を引数として，再帰的に指示書作成処理を行い，結果として指示書オブジェクト（cOnedoc1）を取得する（ステップＳ１５７）。製品部品オブジェクト（emP ），設計図部品オブジェクト（dp），先祖接続点名（cName ）を引数として，再帰的に指示書作成処理を行い，結果として指示書オブジェクト（cOnedoc2）を取得する（ステップＳ１５８）。指示書オブジェクト（cOnedoc1）の一行オブジェクトの配列（cOnedoc1.lines[]）と，指示書オブジェクト（cOnedoc2）の一行オブジェクトの配列（cOnedoc2.lines[]）とをマージし，その結果を指示書オブジェクト（cOnedoc ）の一行オブジェクトの配列（cOnedoc.lines[] ）とする（ステップＳ１５９）。【０１９４】
pId とdId とが異なっていなければ（ステップＳ１５５），製品部品オブジェクト（pp），設計図部品オブジェクト（dp），先祖接続点名（cName ）を引数として，再帰的に指示書作成処理を行い，結果として指示書オブジェクト（cOnedoc ）を取得する（ステップＳ１６０）。【０１９５】
一行オブジェクトの配列（line[]）と指示書オブジェクト（cOnedoc ）の一行オブジェクトの配列（cOnedoc.lines[] ）とをマージし，その結果を一行オブジェクトの配列（line[]）とする（ステップＳ１６１），ｉに１を加え（ステップＳ１５４），ステップＳ１５０に戻る。【０１９６】
図４０は，接続部品取得処理フローチャートである。図４０の接続部品取得処理では，接続点名（cName ），部品オブジェクト（ｐ）を引数とする。【０１９７】
空部品（ｑ）を作成する（ステップＳ１７０）。【０１９８】
部品オブジェクト（ｐ）が空であれば（ステップＳ１７１），部品（ｑ）を返し（ステップＳ１７８），処理を終了する。【０１９９】
部品オブジェクト（ｐ）が空でなければ（ステップＳ１７１），部品オブジェクト（ｐ）の直接接続点名の配列（p.connName[]）をcnAry[] に格納する（ステップＳ１７２）。変数ｓにcnAry[] の要素数を代入し，ｉに０を代入する（ステップＳ１７３）。【０２００】
ｉ≧ｓであれば（ステップＳ１７４），部品（ｑ）を返し（ステップＳ１７８），処理を終了する。【０２０１】
ｉ≧ｓでない場合に（ステップＳ１７４），cnAry[i]が接続点名（cName ）であれば（ステップＳ１７５），部品オブジェクト（ｐ）の直接接続部品オブジェクト（p.connParts[i]）を部品（ｑ）とし（ステップＳ１７６），部品（ｑ）を返し（ステップＳ１７８），処理を終了する。【０２０２】
cnAry[i]が接続点名（cName ）でなければ（ステップＳ１７５），ｉに１を加え（ステップＳ１７７），ステップＳ１７４に戻る。【０２０３】
図４１は，指示書一行作成処理フローチャートである。図４１の指示書一行作成処理では，接続点名（cName ），設計図部品オブジェクト（dp），製品部品オブジェクト（pp）を引数とする。【０２０４】
接続点名（cName ）を一行オブジェクトの接続点名（line.title）に格納する（ステップＳ１８０）。【０２０５】
製品部品オブジェクト（pp）が空でなければ（ステップＳ１８１），製品部品オブジェクトの部品名称（pp.name ）を一行オブジェクトの製品の部品名称（line.pName）に記録し，製品部品オブジェクトの部品型名（pp.productId）を一行オブジェクトの製品の部品型名（line.pProdId）に記録し，製品部品オブジェクト（pp）を一行オブジェクトの製品部品オブジェクト（line.pParts ）に格納する（ステップＳ１８２）。【０２０６】
設計図部品オブジェクト（dp）が空でなければ（ステップＳ１８３），設計図部品オブジェクトの部品名称（dp.name ）を一行オブジェクトの設計図の部品名称（line.dName）に記録し，設計部品オブジェクトの部品型名（dp.productId）を一行オブジェクトの設計図の部品型名（line.dProdId）に記録し，設計図部品オブジェクトのＢＴＯフラグ（dp.bto）を一行オブジェクトのＢＴＯフラグ（line.bto）に記録し，設計図部品オブジェクト（dp）を一行オブジェクトの設計図部品オブジェクト（line.dParts ）に格納する（ステップＳ１８４）。【０２０７】
一行オブジェクトの設計図の部品型名（line.dProdId）をdId に記録し，一行オブジェクトの製品の部品型名（line.pProdId）をpId に格納する（ステップＳ１８５）。【０２０８】
dId とpId とが異なっている場合に（ステップＳ１８６），dId が空であれば（ステップＳ１８７），一行オブジェクトの作業指示（line.order）に“除去”を記録する（ステップＳ１８８）。dId とpId とが異なっている場合に（ステップＳ１８６），pId が空であれば（ステップＳ１８９），一行オブジェクトの作業指示（line.order）に“追加”を記録する（ステップＳ１９０）。dId とpId とが異なっている場合に（ステップＳ１８６），dId とpId のどちらも空でなければ（ステップＳ１８７，Ｓ１８９），一行オブジェクトの作業指示（line.order）に“換装”を記録する（ステップＳ１９１）。【０２０９】
一行オブジェクトのＢＴＯフラグ（line.bto）が“可”であれば（ステップＳ１９２），一行オブジェクトの設計図の部品型名（line.dProdId）を一行オブジェクトの製品の部品型名（line.pProdId）にコピーし，一行オブジェクトの設計図の部品名称（line.dName）を一行オブジェクトの製品の部品名称（line.pName）にコピーし，一行オブジェクトの作業指示（line.order）に“”または“ＢＴＯ”を記録する（ステップＳ１９３）。一行オブジェクト（line）を返し（ステップＳ１９４），処理を終了する。【０２１０】
図４２は，作業指示書出力処理フローチャートである。図４２の作業指示書出力処理では，指示書配列（doc[] ）を引数とする。【０２１１】
変数ｓに指示書配列（doc[] ）の要素数を代入し，ｉに０を代入する（ステップＳ２００）。【０２１２】
ｉ≧ｓであれば（ステップＳ２０１），処理を終了する。【０２１３】
ｉ≧ｓでなければ（ステップＳ２０１），一作業指示書（doc[i]）を引数として，後述の一作業指示書作成処理（図４３参照）を行う（ステップＳ２０２）。ｉに１を加え（ステップＳ２０３），ステップＳ２０１に戻る。【０２１４】
図４３は，一作業指示書作成処理フローチャートである。図４３の一作業指示書作成処理では，一作業指示書（doc1）を引数とする。【０２１５】
一作業指示書の製品型名（doc1.title）と改行をファイルに出力する（ステップＳ２１０）。line[]に一作業指示書の一行オブジェクトの配列（doc1.lines[]）を格納する（ステップＳ２１１）。変数ｓにline[]の要素数を代入し，ｉに０を代入する（ステップＳ２１２）。“”，“製品”，“”，“実構成品”，“”，“作業指示”，改行，“”，“部品名称”，“部品型名”，“部品名称”，“部品型名”，改行を，“，”区切りでこの順番でファイルに出力する（ステップＳ２１３）。【０２１６】
ｉ≧ｓであれば（ステップＳ２１４），ファイルに改行を出力し（ステップＳ２１８），処理を終了する。【０２１７】
ｉ≧ｓでなければ（ステップＳ２１４），line[i] をｌに格納する（ステップＳ２１５）。ｌの接続点名（l.title ），製品の部品名称（l.pName ），製品の部品型名（l.pProdId ），設計図の部品名称（l.dName ），設計図の部品型名（l.dProdId ），作業指示（l.order ）を，“，”区切りでファイルに出力した後，改行をファイルに出力する（ステップＳ２１６）。ｉに１を加え（ステップＳ２１７），ステップＳ２１４に戻る。【０２１８】
〔実施の形態４〕
前述の実施の形態１で出力される作業指示書では，基幹部品以外の部品の場合，常に基幹部品側の接続点について“空”（カード等の部品が装着されてない状態）が出力される。これを防止するために，本実施の形態４では，接続プロパティ（空間接続プロパティ／電気接続プロパティ）の拡張を行う。【０２１９】
本実施の形態４では，接続プロパティの“内部”を，さらに“内部／親”，“内部／子”で使い分ける。“内部／親”は，内部接続であって，接続点をもつ部品が接続先の部品より基幹部品に近いことを示す。“内部／子”は，内部接続であって，接続点を持つ部品が接続先の部品より基幹部品から遠いことを示す。【０２２０】
図４４は，部品ＤＢの部品データの例を示す図である。図４４の部品データ７９は，図５の部品データ６０の接続プロパティの“内部”を，さらに“内部／親”，“内部／子”に分けたものである。【０２２１】
例えば，部品型名“ＰＬ−２２３４５”の１０／１００ＬＡＮカードは，接続点“Ｐ”，“Ｌ”をもち，図５の部品データ６０では，それぞれの空間接続プロパティは，“Ｐ：内部”，“Ｌ：外部”であった。本実施の形態４では，接続プロパティの拡張により，図４４の部品データ７９に示すように，空間接続プロパティが“Ｐ：内部／子”，“Ｌ：外部”となる。部品型名“ＰＬ−２２３４５”のＬＡＮカードは，接続点“Ｐ”を通して基幹部品につながるため，基幹部品より遠くなる。また，部品型名“ＳＣ−６６５４”のＳＣＳＩコントローラは，図５の部品データ６０では，電気接続プロパティが“Ｐ：内部”，“Ｓ：内部”である。本実施の形態４では，図４４の部品データ７９に示すように，電気接続プロパティが“Ｐ：内部／子”，“Ｓ：内部／親”となる。また，ＣＰＵ等，一端子の基幹でない部品の場合，図５の部品データ６０で接続プロパティが“内部”なら，本実施の形態４では，図４４の部品データ７９に示すように，すべて接続プロパティが“内部／子”となる。また，基幹部品の接続プロパティ“内部”は，すべて“内部／親”となる。【０２２２】
なお，図面から１つの部品群を切り出す際には，内部接続が“親”であるか，“子”であるかを無視し，前述の実施の形態１に示す通り，接続プロパティが“内部”であるか，“外部”であるかのみを考えればよい。【０２２３】
図４５は，部品の接続をツリー表現した例を示す図である。図４５の上側に示すような部品接続をツリー表現すると，図４５の下側のようなツリーになる。この図に示されるように，内部接続“親”，“子”は，基幹部品を頂点ノードとするツリー状の構造に対して，それぞれの部品ノードがツリーのどの位置になるかを示している。【０２２４】
作業指示書の文書を作成する際，頂点ノードである基幹部品を枠とし，枠内に接続点と接続先カードを表示していたが，“内部”，“外部”のみの区分では，子ノードから親ノードへの接続点について区別がなかったため，そう表示せざるを得なかった。ただし，接続点は表示するものの，図面内部の部品群の切出しにおいてワーキングプロパティとして利用した訪問済フラグの機能により対応する接続先の部品が認識できないようにしていたため，他の項目は空（接続カードがない）という状態で表示されることになった。【０２２５】
本実施の形態４の拡張により，基幹部品リスト作成時に親側は無視して子側のみを処理することにより上記のような不具合は解消される。なお，訪問済フラグは，“内部／親”−“内部／親”のような接続においてループに陥らないために必要となる。【０２２６】
本実施の形態４は，図３４の内部接続点収集処理のフローチャートのステップＳ８３を，“allPnts[i].sPropは“内部”？”から“allPnts[i].sPropは“内部／親”？”に変更することにより，容易に実施可能である。【０２２７】
〔実施の形態５〕
前述の実施の形態４により，無駄のないきれいな作業指示書を出力できるようになった。しかし，出力される作業指示書は，すべて製品型名，すなわちアンカーＩＤから“Ａ＿”を除いたもので区別されている。そのため，同一製品型名の作業指示書が複数できる場合に，これらを区別することができない。実際のシステム構築では，例えばＨＤＤの数が異なるなど，同じ製品型名の機種を複数の異なった構成で利用することがある。このとき，同一機種の作業指示書間での区別が必要となる。そのために，以下のａ），ｂ）に示すように前述の実施の形態を変更する。これにより，同一機種の複数の作業指示書を簡単に区別し，構築することが可能となる。【０２２８】
ａ）コンピュータシステムの設計図の作成時に，基幹部品の部品ＩＤをホスト名相当の名前に変更する。すなわち，前述の実施の形態１などでは，基幹部品であるマザーボードの部品ＩＤを“ＱＭＴｎ”（ｎは数字）のように表していたが，本実施の形態５では，その部品ＩＤを，例えば“ＷＷＷｎ”，”ＤＢｎ”等，実際に使用するホスト名やそれに近い名前などに変更する。【０２２９】
ＣＡＤで指定する部品ＩＤは，図面内の各部品の一意性を保証するだけのものとして働いているため，一意性さえ保たれれば，“ＭＴｎ”を“ＷＷＷｎ”のように変更してもまったく問題はない。“ｎ”が数字であるため，同じ名前をつけても，“ＷＷＷ１”，“ＷＷＷ２”のように一意性は保たれる。【０２３０】
ｂ）図３８，図３９の作業指示書作成処理のフローチャートのステップＳ１３４を，“onedoc.title←sParts.anchorId から“A ＿”を除いたもの”から，“onedoc.title←sParts.partsId＋“（”＋“sParts.anchorId から“A ＿”を除いたもの”＋“）””と変更する。これにより，作業指示書のタイトルが，例えば“ＲＸ２００Ｓ２”から“ＷＷＷ１（ＲＸ２００Ｓ２）”のように変更される。【０２３１】
〔実施の形態６〕
本実施の形態６では，設計図内の部品群同士の比較により，その部品群の構成が誤っている可能性がある部分を検出する。実際にシステム構築を行う際には，冗長構成や分散処理を行うため，機能グループごとに同一仕様の複数のマシンを並べる場合が多い。本実施の形態６では，作業指示書作成装置１０を用いて，これらが同一であるかどうかを確認する。【０２３２】
まず，電気接続プロパティとアンカー電気プロパティが“ｔｒｕｅ”のアンカーＩＤを使用して，設計図から部品群を切り出す。電気接続プロパティを用いるのは，動作機能は電気的な部品群の単位で行われるためである。以下で説明するすべての場合において，ここまでは共通の処理とする。【０２３３】
また，以下の説明で，機能グループとして，Ｗｅｂグループ（ユーザからの処理依頼を受付けるグループ），アプリケーショングループ（ＡＰＰグループ：ユーザからの処理依頼を実際に実行するエンジン部分），ＤＢグループ（ＡＰＰグループが動作するためのデータを蓄える部分）を仮定する。また，電気的な部品群の単位は，すべてサーバであるものとする。【０２３４】
（１）ＣＡＤが機能グループを記述できる場合
使用しているＣＡＤが何らかの方法で機能グループを記述できる場合には，まず，コンピュータシステムの設計図上で機能グループを定義する。定義方法の例として，同一機能グループに属するすべてのサーバまたは基幹部品を，囲む，Ｓｈｉｆｔ＋左クリックで一つずつ選択する等の方法で選択し，選択したすべてに対して機能グループ名を入力する，という方法がある。機能グループ名は，少なくとも基幹部品ごとに，内部データとして保持されるものとする。基幹部品以外にも機能グループ名が付与されて構わないが，以下では基幹部品以外に機能グループ名が付与されないものとする。【０２３５】
上記の共通処理によって設計図上の部品が基幹部品を中心としたサーバ単位にまとめられた後，これらを機能グループごとにまとめ直す。この処理は，基幹部品ごとに機能グループ名が付与されているため，容易である。以下で説明する処理は，機能グループごとに行われる。ここでは，Ｗｅｂグループに対する処理を例として説明する。【０２３６】
機能グループごとにまとめ直した結果，Ｗｅｂグループの基幹部品リストには，複数の基幹部品が登録されているはずである。基幹部品リストの先頭の一つを取り出し，それを製品と考える。ここでは，Ｗｅｂグループに属するマシンはすべて同一構成と仮定するので，オプション品や外付装置（ＳＣＳＩディスク筐体等）までを含めて製品と考えてもよい。【０２３７】
基幹部品リストの残りを前述の実施の形態での実構成とみなして，それぞれの作業指示書を作成するが，その前に，各基幹部品のアンカーＩＤを比較する。この時点で異なりがあれば，すでに同一構成でないことが分かるので，警告を出して次のサーバとの比較を行えばよい。警告は，例えば，“Ａ（製品相当に選んだサーバ）とＢ（比較中のサーバ）は製品が異なります。”などのメッセージでよい。【０２３８】
作業指示書を作成した場合，同じ機能グループ内のすべてのマシンがまったく同一構成であるならば，製品として取り出したサーバとそれと比較中のサーバとは，当然同一構成となるはずである。この場合，出力された作業指示書の作業指示欄は空であるはずである。したがって，空でない作業指示欄が存在すれば，それは同一構成でないことを示しているので，警告を出して次のサーバとの比較を行えばよい。警告は，例えば，“Ａ（製品相当に選んだサーバ）とＢ（比較中のサーバ）は構成が異なります。詳細は“作業指示書：ｘｘｘｘｘｘｘｘ”を見てください。”などのメッセージでよい。なお，“ｘｘｘｘｘｘｘｘ”は，例えばファイル名などである。【０２３９】
以上の動作を基本動作とする。基本動作で異なりを検出することはできるが，誤設計の場合，少数の誤設計サーバが多数の正しいサーバに紛れている可能性が高い。したがって，たまたま製品相当のサーバに誤設計サーバを選んでしまった場合，他の多数の正常サーバとの比較がすべて警告として出力されてしまうので，利用者は混乱を起こしやすい。この混乱を避けるため，なるべく同一構成のものが多いサーバを見つけ，それを製品とみなして上記基本動作を行うようにする。【０２４０】
例えば，以下のようにすると，なるべく同一構成のものが多いサーバを見つけることが可能である。【０２４１】
まず，リスト中のすべてのアンカーＩＤにつき，一番多く使われているアンカーＩＤを探し出す。【０２４２】
次に，リスト中から，抽出したアンカーＩＤと同じものを持つ部品群を一つ選択して製品として，その他のサーバとの比較結果の作業指示書を作成する。この時，以下の処理を行う。【０２４３】
１）アンカーＩＤが異なる場合，何もせずに次のサーバと比較する。【０２４４】
２）アンカーＩＤが同じなら，作業指示書を出力し，その作業指示書の個数を数えておく。ここでは，cntTejun=cntTejun+1 とする。【０２４５】
３）作業指示書の各行を作成する際，部品名称は空文字にする。【０２４６】
１）〜３）の処理が終了すると，cntTejun個（以下，Ｎ個とする）の作業指示書（以下，tejun1.csv〜tejunN.csvとする）が作成される。【０２４７】
次に，これらＮ個の作業指示書に対して，以下の処理を行う。まず，Ｎ個の作業指示書を連結し，各行をソーティングする。続いて，各行ごとに，接続点ごとの同一構成の数を行の先頭にして，その後に作業指示書の各行を出力する。さらに各行を，最初の数字が大きい順にソーティングする。また，すべてのマシンに存在した構成については省略し，かつ，先頭のタイトル行（“ホスト名（製品名）”）も省く。なお，先頭でsortしているので，すべての手順が混ざってしまうが，各行先頭の接続点が同一サーバ内ではすべて異なるので，同一サーバ内の接続点がまったく同じで行数が加算されることはない。この結果をcommonN.txt のファイルに出力する。例えば，次のような結果となる。【０２４８】
例：９  Ｃ１，，ＣＰＵ−１２３４，，ＣＰＵ−１２３４，
９  Ｃ２，，，，，
３  Ｍ１，，ＭＥＭ−９８７６，，ＭＥＭ−９８７６，
２  Ｍ２，，，，，
１  Ｐ１，，，，ＳＣ−６６５４，追加
なお，この際，commonN.txt の中身が空であるならば，すべてのマシンが同一構成であったことが分かるので，ここで終了する。【０２４９】
次に，commonN.txt の先頭行と同じ数字をもつ行をすべて集め，先頭の数字を取り去る。結果をsimilarLines.txtのファイルとして出力する。このsimilarLines.txtの行それぞれについて，各作業指示書を検索し，存在する作業指示書名の数を数える。ここで一番多くマッチが発生した文書が，なるべく同一構成のものが多いサーバと考えられる。【０２５０】
similarLines.txtから，該当する指示書ファイル名を抽出し，その指示書ファイルの先頭一行のホスト名部分を取り出し，これを製品とみなして基本動作を行うことにする。【０２５１】
（２）ＣＡＤが，機能グループを記述できない場合
機能グループを定義できない場合，完全なチェックは難しい。何故なら，異なるグループでも同一機種，すなわち同一アンカーＩＤの製品を使っている場合があり，その場合には，異なるグループのマシンは異なる部品構成になることがあるからである。例えば，Ｗｅｂグループ，ＤＢグループで同一機種“ＲＸ２００Ｓ２”を使うものとする。このとき，Ｗｅｂグループのマシンは，データ保存の必要性が薄いので，外付ディスクをつけることはまずない。しかし，ＤＢグループのマシンは，データを保存するために外付ディスクが必須となる。【０２５２】
このような場合でも，いくつかの解決手段が存在する。まず，基幹部品の部品ＩＤをホスト名相当に変更しており，かつ同一グループのサーバが同じパターンの名前（ｗｗｗ１，ｗｗｗ２，... 等）をつけている場合には，ホスト名から数字を取り去ったものを機能グループ名と考えることにより，上述の（１）の場合で説明した方法を用いて，かなり精密に異なりを見つけることができる。【０２５３】
それも期待できない場合には，以下に示す通りにすれば，１台だけ他とは異なった構成をもつサーバを見つけることができる。【０２５４】
ａ）機能グループ相当のリストを，アンカーＩＤで作成する。このようにすれば，同一機種の集合ができる。【０２５５】
ｂ）上述の（１）のcommonN.txt を作成するところまでを，まったく同じに行う。【０２５６】
ｃ）commonN.txt から先頭の数字が“１”の行を取出し，この行の内容をもつ指示書ファイルを見つけ出し，その先頭行のホスト名を抽出する。なお，この場合には，すべてのマシンで部品ＩＤが“ＭＴｎ”であったり，パターン化されていないホスト名だったりする。【０２５７】
このような操作により抽出されたホスト名は，他のどれとも一致しない構成をもつホストを示している。機種が異なるか，オプションが異なるかは不明だが，異なりがあることを警告することは可能である。【０２５８】
なお，ＣＡＤでは，設計図内の部品のプロパティとして，付属品を定義できることがある。そのような場合には，図面上では見えない付属品としてソフトウェアを登録し，これを基幹部品に直接接続されている部品として位置付け，カード等と同様の作業指示書上の比較対象に加えることにより，より詳細な同一性チェックを行うことも可能である。【０２５９】
〔実施の形態７〕
あるアンカーＩＤの機種を使って設計した場合に，オプション装着を繰り返した結果，異なるアンカーＩＤの機種，もしくは異なるアンカーＩＤの機種にさらにオプションを装着した部品構成に変ってしまう場合がある。例えば，製品型名“ＲＸ２００Ｓ２”に，ＳＣＳＩアレイカードとＬＡＮカードを装着した結果，製品型名“ＲＸ２００Ｓ２Ａ”にＬＡＮカードを装着したものと同じ部品構成になってしまう，というような場合である。本実施の形態７では，このようなものを発見し，最適な構成をもつ機種への変更を設計者に提示することを考える。【０２６０】
基本方針は，設計図上のある部品群（以下，サーバという）について，そのサーバの基幹部品を取出し，同一基幹部品をもつ製品を製品ＤＢ１３から検索し，マッチしたすべてのサーバと比較を行い，作業指示書を作成することである。このとき，作業指示が空でない項目がもっとも少ないもの，すなわち変更が最小のものをベース製品とする。しかし，同じ機能をもつ製品でも，ＢＴＯフラグの値によって異なる製品型名が付与されているので，これらの異なりを同一とみなせるような仕組みが必要となる。【０２６１】
そのためには，以下のようにすればよい。【０２６２】
まず，部品ＤＢ１２中の部品について，ＢＴＯフラグ，部品型名，部品名称以外はまったく同一であるものについて，双子（または，三つ子，... ：以下，双子で代表とする）と認識できるロジックを導入する。【０２６３】
このロジックは，設計図から基幹部品リストを作成するときに毎回行ってもよい。しかし，部品ＤＢ１２に登録された部品は基本的に不変であるので，登録時に判定を行い，判定結果を部品ＤＢ１２に保存しておく方が効率的である。また，双子の中でどれか１つを“代表部品”と定義し，実際の部品を代表部品で置換える仕組みも導入する必要がある。【０２６４】
以下に，双子と認識できるロジックを記述する。【０２６５】
●部品登録ロジック
＞  部品ＤＢ１２の部品データに，代表型名欄を新設する。【０２６６】
＞  ある部品を登録する際に，以下を実行する。【０２６７】
−  既存の部品ＤＢ１２中の部品から，種別が同じものを洗い出す（対象部品の絞り込み）。【０２６８】
−  現在登録しようとしている部品と，ＢＴＯフラグ以外のプロパティがまったく同一のものを一つ探し出す（対象部品の選定）。【０２６９】
−  選定された対象部品から代表型名を取出し，現在登録中の部品の代表型名として当該部品を登録する。【０２７０】
−  選定された対象部品が存在しない場合には，現在の登録部品がありうる双子の中で最初に登録されたものであるので，自分の部品型名を代表型名として登録する。【０２７１】
●部品オブジェクトに以下の変更を施す。【０２７２】
productId ：代表型名を表すように変更
realProdId：部品型名を表すものとして追加
これにより，後のロジックはまったく同一で，双子を同一と認識する作業指示書が作成できることになる。ただし，文書作成時に，ＢＴＯ関連の処理は行わない。【０２７３】
以上のような変更を施したものについて，より詳細なロジック変更の説明を行う。【０２７４】
−  製品ＤＢ１３の製品，設計図について基幹部品リスト作成までを行う。【０２７５】
−  設計図から作成した基幹部品リスト内の一つ一つの基幹部品について，以下の処理を行う。【０２７６】
＊  基幹部品の型名を取出す。基幹部品は，オプションではない。したがって，双子がないので常に“型名”＝“代表型名”となる。【０２７７】
＊  製品ＤＢ１３の製品の基幹部品リストから，上記型名をもつ基幹部品を洗い出す。比較対象オブジェクトリストの作成作業となる。【０２７８】
＊  製品ＤＢ１３からの基幹部品リスト一つ一つにつき，設計図からの基幹部品を製品，製品ＤＢ１３から取り出した基幹部品を実構成として，作業指示書を作成する。すなわち，前述の実施の形態と比較の仕方が逆となる。作業指示書は，製品ＤＢ１３からの基幹部品リストの要素数だけ完成する。また，型名欄は代表型名が記述されている。【０２７９】
＊  すべての作業指示書について，以下の通りにする。【０２８０】
＃  作業指示欄に“追加”があるものは無視する。【０２８１】
→  製品の方に設計図で使ってない部品があるので，置換え不能となる。なお，一般の指示書と製品，実構成品が逆になっていることに注意する。【０２８２】
＃  すべての作業指示欄が空であるものが見つかったら，今まで保存したリストを破棄し，この指示書のみを要素としてもつリストを作成して次の＊に進む。【０２８３】
．．．（Ａ）
作業指示がないということは，製品そのものが見つかったということであるので，これ以上他のものを探しても仕方がない。【０２８４】
＃  それ以外のものはリストとして保存する          ．．．（Ｂ）
＊  以上（Ａ），（Ｂ）のどちらかにより保存された作業指示書リストの中から作業指示欄が空でないものを数え，一番少ないもの（０を含む）を見つけたら，その作業指示書のタイトルからアンカーＩＤを再作成する（すなわち，指示書のタイトルに“Ａ＿”を付加する）。（Ａ）で作成された場合には，指示書は１つになり，数えた結果は０になる。【０２８５】
＊  設計図から取り出された基幹部品のアンカーＩＤと，再作成されたアンカーＩＤとが同一なら，設計時に最適な製品が選択されているので警告しない。【０２８６】
＊  逆に，両者のアンカーＩＤが異なれば，設計時に選択したものよりも適当な製品（すなわち，再作成アンカーＩＤから“Ａ＿”を取り去ったもの）があることを警告する。このとき，２つ前の手順で数えた結果が０ならば，次の設計図から取り出された基幹部品について＊を繰り返す。もとになる製品については，これで終了とする。次に，各付属部品についてチェックする。【０２８７】
＊  残された１つの作業指示書について，再度作業指示を検索し，見つかった指示ごとに以下を行う。【０２８８】
＃  接続点名を取出す。【０２８９】
＃  接続点名（“．”でつながっている場合も含む）をもとに，設計図から取り出された基幹部品を辿り，目指す部品を探し出す。connNameとconnParts を用い，再帰で探せばよい。この時点で，作業指示書の製品側の代表型名と見つかった部品の代表型名とが同じとなるはずである。【０２９０】
＃  部品ＤＢ１２から同じ代表型名をもつ部品を検索し，以下の順で並べ直し，先頭の部品の型名を取得する。【０２９１】
−  ＢＴＯフラグが“可”
−  ＢＴＯフラグが“不可”
なお，ＢＴＯフラグが“対象外”の場合には，並べ直しの対象としない。【０２９２】
＃  取り出された型名と，目指す部品すなわち見つかった部品の型名（realProdId）とを比較し，異なりがあれば，取り出された型名の方がより有利である（すなわち，安い／現地作業がない等）ことを示す警告を出力する。【０２９３】
＃  上記＃を指示がなくなるまで繰り返す。【０２９４】
＊  上記＊を設計図から作成された基幹部品リスト内の基幹部品がなくなるまで繰り返す。【０２９５】
以上のようなことを行う際には，ＢＴＯフラグを以下のように拡張しておくとより実態に沿った警告が可能となる。【０２９６】
●ＢＴＯフラグの拡張
“可”を“換装可”と“追加可”とに分割する。すなわち，“対象外”，“可”，“不可”から，“対象外”，“換装可”，“追加可”，“不可”に拡張する。【０２９７】
●拡張ＢＴＯ  フラグの使い方
上記の詳細なアルゴリズムを，以下のように置換える。【０２９８】
元：  
＊  残された１つの作業指示書について，再度作業指示を検索し，見つかった指示ごとに以下を行う。【０２９９】
＃  接続点名を取出す。【０３００】
＃  接続点名（“．”でつながっている場合も含む）をもとに，設計図から取り出された基幹部品を辿り，目指す部品を探し出す。connNameとconnParts を用い，再帰で探せばよい。この時点で，作業指示書の製品側の代表型名と見つかった部品の代表型名とが同じとなるはずである。【０３０１】
＃  部品ＤＢ１２から同じ代表型名をもつ部品を検索し，以下の順で並べ直し，先頭の部品の型名を取得する。【０３０２】
−  ＢＴＯフラグが“可”
−  ＢＴＯフラグが“不可”
なお，ＢＴＯフラグが“対象外”の場合には，並べ直しの対象としない。【０３０３】
＃  取り出された型名と，目指す部品すなわち見つかった部品の型名（realProdId）とを比較し，異なりがあれば，取り出された型名の方がより有利である（すなわち，安い／現地作業がない等）ことを示す警告を出力する。【０３０４】
＃  上記＃を指示がなくなるまで繰り返す。【０３０５】
変更後：
＊  残された１つの作業指示書について，再度作業指示を検索し，見つかった指示ごとに以下を行う。【０３０６】
＃  接続点名を取出す。【０３０７】
＃  接続点名（“．”でつながっている場合も含む）をもとに，設計図から取り出された基幹部品を辿り，目指す部品を探し出す。connNameとconnParts を用い，再帰で探せばよい。この時点で，作業指示書の製品側の代表型名と見つかった部品の代表型名とが同じとなるはずである。【０３０８】
＃  部品ＤＢ１２から同じ代表型名をもつ部品を検索し，以下の順で並べ直し，先頭の部品の型名を取得する。【０３０９】
−  ＢＴＯフラグが“換装可”
ただし，指示が“換装”でない場合には，並べ直しの対象としない。【０３１０】
−  ＢＴＯフラグが“追加可”
ただし，指示が“換装”の場合には，並べ直しの対象としない。【０３１１】
−  ＢＴＯフラグが“不可”
なお，ＢＴＯフラグが“対象外”の場合には，並べ直しの対象としない。【０３１２】
＃  取り出された型名と，目指す部品すなわち見つかった部品の型名（realProdId）とを比較し，異なりがあれば，取り出された型名の方がより有利である（すなわち，安い／現地作業がない等）ことを示す警告を出力する。【０３１３】
＃  上記＃を指示がなくなるまで繰り返す。
【産業上の利用可能性】
【０３１４】
本発明は，実際のコンピュータシステム設計から構築までの各作業に利用することが可能である。【０３１５】
また，検証センタのように，検証要求に応じて機器を構築／解体するという作業を繰り返す部署においては，アンカーＩＤを使用して製品を作図するときに，製品そのものではなく，標準的によく使われる構成，すなわち製品によく使われるオプション品を追加した構成として登録し，かつその構成の機器を在庫として保持する。顧客の要求に応じて標準的によく使われる構成をコピーして検証システム図面を作成することにより，在庫の構成との差異が作業指示書として出力されるので，これを用いて検証システムを構築することができる。【０３１６】
また，検証センタにおいては，検証終了後に，利用された機器を標準的によく使われる構成の状態に解体して保管する必要がある。この場合には，例えば図１７に示すような作業指示書の構成を初期状態，製品を最終状態と読み替えることにより，作業指示書を解体指示書として利用することもできる。
【図１】
0004616358.tif 000002
【図２】
0004616358.tif 000003
【図３】
0004616358.tif 000004
【図４】
0004616358.tif 000005
【図５】
0004616358.tif 000006
【図６】
0004616358.tif 000007
【図７】
0004616358.tif 000008
【図８】
0004616358.tif 000009
【図９】
0004616358.tif 000010
【図１０】
0004616358.tif 000011
【図１１】
0004616358.tif 000012
【図１２】
0004616358.tif 000013
【図１３】
0004616358.tif 000014
【図１４】
0004616358.tif 000015
【図１５】
0004616358.tif 000016
【図１６】
0004616358.tif 000017
【図１７】
0004616358.tif 000018
【図１８】
0004616358.tif 000019
【図１９】
0004616358.tif 000020
【図２０】
0004616358.tif 000021
【図２１】
0004616358.tif 000022
【図２２】
0004616358.tif 000023
【図２３】
0004616358.tif 000024
【図２４】
0004616358.tif 000025
【図２５】
0004616358.tif 000026
【図２６】
0004616358.tif 000027
【図２７】
0004616358.tif 000028
【図２８】
0004616358.tif 000029
【図２９】
0004616358.tif 000030
【図３０】
0004616358.tif 000031
【図３１】
0004616358.tif 000032
【図３２】
0004616358.tif 000033
【図３３】
0004616358.tif 000034
【図３４】
0004616358.tif 000035
【図３５】
0004616358.tif 000036
【図３６】
0004616358.tif 000037
【図３７】
0004616358.tif 000038
【図３８】
0004616358.tif 000039
【図３９】
0004616358.tif 000040
【図４０】
0004616358.tif 000041
【図４１】
0004616358.tif 000042
【図４２】
0004616358.tif 000043
【図４３】
0004616358.tif 000044
【図４４】
0004616358.tif 000045
【図４５】
0004616358.tif 000046
【図４６】
0004616358.tif 000047
【図４７】
0004616358.tif 000048