クラス
Windchill ESI VDB ビルダーでは、定義された構造で Info*Engine VDB を構築するクラスのセットがサポートされています。次のクラスがあります。
VDB ビルダーのクラス
VdbBuilder
このインタフェースは、すべての VDB ビルダーが実装する必要があるメソッドを宣言します。このクラスで使用可能なメソッドの詳細については、Windchill リリース関連の Java ドキュメンテーションを参照してください。
VdbBuilderFactory
VdbBuilder インタフェースの正しい実装のインスタンスを作成します。このクラスで使用可能なメソッドの詳細については、Windchill リリース関連の Java ドキュメンテーションを参照してください。
VdbBuilderImpl
このクラスは Windchill ESI VdbBuilder のデフォルトの実装です。これは拡張可能です。このクラスで使用可能なメソッドの詳細については、Windchill リリース関連の Java ドキュメンテーションを参照してください。
* 
1 つ目の一致するキーが見つかって関連する値がフェッチされると、mapInfos での検索は終了します。
VDB ビルダーのその他のクラス
VdbContainer
VdbGroup オブジェクトのコレクションを管理し、Info*Engine IeCollection としてレンダリングします。このクラスはカスタマイズ担当者による拡張の対象ではありません。このクラスで使用可能なメソッドの詳細については、Windchill リリース関連の Java ドキュメンテーションを参照してください。
* 
上記の各説明におけるグループコレクションという用語は、groups という名前の LinkedHashMap 内の値コレクションを指します。LinkedHashMap 内の各キーは論理グループ名であり、各値は VdbGroup の HashMap および配布ターゲットのコレクションです。
VdbGroup
VdbElement のコレクションを管理し、コンテンツを Info*Engine グループとしてレンダリングします。このクラスは拡張の対象ではありません。このクラスで使用可能なメソッドの詳細については、Windchill リリース関連の Java ドキュメンテーションを参照してください。
VdbElement
Info*Engine エレメントのコンテンツを管理します。このクラスで使用可能なメソッドの詳細については、Windchill リリース関連の Java ドキュメンテーションを参照してください。
Windchill ESI サービスは、レンダラーと呼ばれるクラスを使用して VDB ビルダーを呼び出します。レンダラーについては、このドキュメントの以下のセクションで説明しています。
変更通知のパブリッシング
BOM のパブリッシング
部品のパブリッシング
ドキュメントのパブリッシング
プロセス計画のパブリッシング
リソースのパブリッシング
プロモーションリクエストのパブリッシング
オプションセットのパブリッシング
以下の UML シーケンス図は、Windchill ESI サービスレンダラーの使用に関連するメッセージフローを示しています。
Windchill ESI レンダラーの使用
上の図に示すように、クライアントは ESIRendererFactory インスタンスを作成し、このインスタンスに対して getRenderer() を呼び出して、必要なタイプのレンダラーをフェッチします。次に、指定された ERP インスタンス (宛先) でフェッチしたレンダラーに対して getXXX() を呼び出します (たとえば、変更通知をレンダリングする場合、getECN() を呼び出します)。getXXX() メソッドは、VdbBuilder インスタンスを作成し、指定されたインスタンスに属する各ターゲットについて、オーバーロードバージョンの getXXX() を呼び出します。オーバーロードバージョンは VdbBuilder インスタンスに対して update() を呼び出し (現在処理されている配布ターゲットに currentTarget 属性を設定)、レンダラーに対して setData() メソッドと render() メソッドを呼び出します。render() メソッドは setBuilder()、validate()、および buildGroups() を呼び出します。その後、VdbBuilder インスタンスに対して addElement() 呼び出しを使用して応答が構築されます。応答を表す I*E コレクションは、asVDB() 呼び出しを介してフェッチされ、クライアントに返されます。
* 
前述のフローは ESI トランザクションの一環として発生し、ERP インスタンス (宛先) ごとに繰り返され、リリース内のインスタンスと同じ数の ESI 応答メッセージが生成されます。
Windchill ESI サービスは、すべての Windchill ESI サービスレンダラーに共通する機能を定義する抽象クラスとインタフェースを提供します (上記を参照)。提供されているメソッドは次のとおりです。
ESIRenderer
このインタフェースはすべての Windchill ESI レンダラーによって実装され、これが提供する唯一のメソッドは、以下で説明する public void render(VdbBuilder) です。
render(builder : VdbBuilder)
このメソッドは、渡された VdbBuilder インスタンスに適切なコンテンツを設定します。レンダラーの初期化に使用されたデータが無効である場合、または出力の構築中にエラーが発生した場合、ESIRendererException を返します。
ESIRendererException
ESIException のサブクラス (したがって WTException のサブクラス)。これにより、クライアントは例外が ESIRenderer によって返されたことを判別できます。
BasicESIRenderer
これはすべての Windchill ESI XML 応答レンダラーで一般的に役立つ動作が含まれている抽象基本クラスです。このクラスは抽象クラスなので、拡張する必要があります。
このクラスで使用可能なメソッドの詳細については、Windchill リリース関連の Java ドキュメンテーションを参照してください。adjustTargets(element : Element, targets : Collection)
引数 targets 内の各 ESITarget エントリについて、このメソッドは新しい Info*Engine Att オブジェクトを作成し、引数 element に追加します。Att オブジェクトに TargetID という名前が付けられ、ESITargetUtility クラスの getTargetId() API によって返された値が割り当てられます。
* 
ESITargetUtility の getTargetId() API は Number: Plant Name という形式の値を返します。ここで、Number は Windchill の配布ターゲットの一意の ID であり、Plant Name はターゲットが表す SAP 内のプラントの名前です。
* 
特定の ESI トランザクション中に生成された ESI 応答メッセージは、特定の SAP インスタンスに属する配布ターゲットに適用されます。したがって、インスタンス固有の情報 (クライアントやシステム ID) は、応答メッセージ内のすべての <TargetID> エレメントに追加されるのではなく、Transaction という名前のエレメント内にある (Destination という名前の) 1 つのエレメントにだけ追加されます。インスタンス固有の情報に加え、<Transaction> エレメントは、トランザクション番号、リリース番号、リリースされたプライマリビジネスオブジェクトの UFID、トランザクションを開始した Windchill ユーザーの名前など、役立つ情報を提供します。
これは役に立ちましたか?