アダプターには、環境要件に合わせてカスタム・データ・バインディングを作成するオプションがあります。
カスタム・データ・バインディングは、Inbound 処理中にデータ・ストリームをビジネス・オブジェクトに変換し、
Outbound 処理中にビジネス・オブジェクトをデータ・ストリームに変換するために作成する Java クラスです。
エンタープライズ情報システム (EIS) と JMS エクスポート/インポートは、
カスタム・データ・バインディングを呼び出すように構成できます。
このタスクの概説
以下の手順では、カスタム・データ・バインディングを作成するプロセスを説明します。
このタスクの実行方法
- commonj.connector.runtime.RecordHolderDataBinding インターフェースを使用して、カスタム・データ・バインディングを
実装します。 このインターフェースは、WebSphere Process Server ランタイム・ライブラリー
内の commonj.connector.jar ファイルにあります。
- 以下に示す Inbound 情報または Outbound 情報を使用して、カスタム・データ・バインディングを作成します。
- Inbound 処理でデータ・ストリームをビジネス・オブジェクトに変換するために、
アダプターは、カスタム・データ・バインディングの public void setRecord(Record arg0) メソッド
と public DataObject getDataObject() メソッドを呼び出します。
最初に setRecord が呼び出され、次に getDataObject が呼び出されます。
- setRecord メソッドは、パラメーターとして com.ibm.j2ca.base.UnstructuredRecord を使用します。
このクラスは、アダプター・ファウンデーション・クラス jar ファイルの一部です。
テキスト形式または byte[] 形式のビジネス・オブジェクト・レコードは、このメソッドでカスタム・データ・バインディングに
送信されます。その他の必須情報も送信されます。
- getDataObject() は、前述のように設定されたビジネス・オブジェクト・レコードを取得し、
必要なデータ変換を行い、必要なビジネス・オブジェクトを戻します。
- 非構造化レコード内の getRecordName() は、完全修飾ネーム・スペースを取得します。
このネーム・スペースを使用することにより、ビジネス・オブジェクトをインスタンス化し、
注釈内にある必要な ASI を抽出 (手順 3 を参照) できます。
この ASI は、データ・バインディングにより使用されます。例:
recordName =
http://www.ibm.com/xmlns/prod/websphere/j2ca/ftp/customerwrapperbg/CustomerWrapperBG
namespace
= http://www.ibm.com/xmlns/prod/websphere/j2ca/ftp/customerwrapperbg
object
name = CustomerWrapperBG
- Outbound 処理でビジネス・オブジェクトをデータ・ストリームに変換するために、
アダプターは、カスタム・データ・バインディングの public void setDataObject(DataObject dataObject) メソッド
と public Record getRecord() メソッドを呼び出します。
最初に setDataObject が呼び出され、次に getRecord が呼び出されます。
- setDataObject メソッドは、パラメーターとしてビジネス・オブジェクトを使用します。
getRecord の出力のタイプは、com.ibm.j2ca.base.UnstructuredRecord でなければなりません。
- アプリケーション固有の情報は、入力ビジネス・オブジェクトから取得されます (手順 3 を参照)。
- getRecord メソッドは、必要な変換を行い、非構造化レコード形式でネイティブ・データを戻します。
区切りテキストを含む EIS ネイティブ・データの例を次に示します。
Employee~Create~sarath~IBM~Bangalore~560071
ビジネス・オブジェクト・スキーマ
complexType name="Employee"
sequence maxOccurs="1" minOccurs="1"
element maxOccurs="1" minOccurs="0" name="name" type="string"/
element maxOccurs="1" minOccurs="0" name="company" type="string"/
element maxOccurs="1" minOccurs="0" name="city" type="string"/
element maxOccurs="1" minOccurs="0" name="zip" type="string"/
/sequence
/complexType
- ビジネス・オブジェクトの注釈内のアプリケーション固有の情報にアクセスするには、
com.ibm.j2ca.base.AdapterBOUtil クラスを含む CWYBS_AdapterFoundation.jar ファイルを使用します。
このクラスには、アプリケーション固有の情報をビジネス・オブジェクトから抽出するメソッドが含まれます。
- ビジネス・オブジェクトのアプリケーション・プログラミング・インターフェース (API) メソッドを使用して、
注釈に含まれるそれぞれの値を抽出します。 出力は、アプリケーション固有の情報を示すビジネス・オブジェクトです。
- Inbound の場合は、非構造化レコードに含まれる recordName 値からビジネス・オブジェクトを
インスタンス化します。
- Outbound の場合は、ビジネス・オブジェクトをパラメーターとして渡すことにより、
getMetadataForObject() を呼び出します。
次の作業
WPS_install_directory¥samples¥doc¥CustomEISDataBinding¥index.html にある
詳細な手順に従って、カスタム・データ・バインディングを構成します。