BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Integration > DI トピック > WebLogic Integration データの変換 > カスタム データ型の作成 |
WebLogic Integration データの変換
|
カスタム データ型の作成
WebLogic Integration は、データ統合を行う際、XML に基づく MFL (Message Format Language : メッセージ フォーマット言語) と呼ばれるメタデータ言語を使用して、バイナリ データの構造について記述します。Format Builder はメタデータをデータ ファイルとして、すなわち MFL ドキュメントとして作成し、リポジトリ内に維持します。
MFL では、以下のメタデータによりバイナリ フィールドが記述されます。
この情報のうち、データ型が最も重要です。選択されたデータ型により、有効なメタデータ属性とその解釈方法が決まります。
WebLogic Integration の Data Integration コンポーネントには、自分だけに必要なカスタム データ型を作成できるユーザ定義型機能が含まれます。ユーザ定義型機能により、これらのカスタム データ型をデータ変換実行時エンジンにプラグインできます。いったんプラグインされたユーザ定義のデータ型は、特徴や機能の面で組み込みデータ型と区別できません。
以下の各節では、ユーザ定義型の使用法について説明します。
ユーザ定義型のサンプル
次の表では、ユーザ定義型を使用してインストールされたサンプル ファイルについて説明します。すべてのディレクトリ名は、WebLogic Integration サンプル ディレクトリ(SAMPLES_HOME¥integration)からの相対パスで示します。ここで、SAMPLES_HOME は、WebLogic Platform をインストールした位置にあるサンプル ディレクトリを示します。
ユーザ定義型の登録
新しいユーザ定義型を登録する手順は次のとおりです。
図 B-1 [Add/Remove User Defined Types] ダイアログ ボックス
図 B-2 [Add/Remove User Defined Types] ダイアログ ボックス
新しいデータ型を定義すると、フィールドの詳細ウィンドウの [Type] ドロップダウン リストに新しい表示名が表れます。[Type] ドロップダウン リスト ボックスに表示されるユーザ定義型にはすべて、[DisplayName] テキスト フィールドと同じように [User Defined] のプレフィックスが付きます。
Format Builder は、ユーザ定義型で示される正確な型を認識できないので、XML 出力のコンテンツ モデルの記述のために生成される XML スキーマでは、xsd::string 型を使用してユーザ定義型を表します。
このデータ型を使用することは、Format Tester にも影響を及ぼします。ユーザ定義型を含む MFL ドキュメントに対するデータを生成する場合、文字列データが対応するフィールドに対して生成されます。生成されたデータは、ユーザ定義型に応じて解析できるように調整する必要があります。
ユーザ定義型の作成
データ変換エンジンへのインタフェースは Java プログラムによって呼び出される API です。プロセス エンジンの新しいユーザ定義型の作成は、com.bea.wlxt.WLXT クラスの静的メソッドによって実行されます。
データ変換エンジンでのユーザ定義型のインストールは永続的ではありません。現在の JVM プロセスが終了すると、ユーザ定義型のコンフィグレーション情報は破棄されます。そのため、スタンドアロン エンジンを使用するクライアントでは、各プログラムの開始時にユーザ定義型をすべてインストールする必要があります。
ユーザ定義型には、以下のパブリック機能が定義されています。
name は、削除されるデータ型の名前を指定する。
以下の例では、これらの API を使用してユーザ定義型 CapString をインストールして削除する方法を示します。
import com.bea.wlxt.WLXT;
import com.bea.wlxt.binType.BinType;
// データ型オブジェクトを作成して、インストールする。
Bintype udt = new CapString();
WLXT.addNewDataType(“UpperCaseString”, udt);
.
.
.
//上でインストールされた udt を削除する。
WLXT.removeDataType(“UpperCaseString”);
Data Integration プラグイン用ユーザ定義型のコンフィグレーション
Business Process Management (BPM) の Data Integration プラグインで使用されるユーザ定義型は、WebLogic Integration リポジトリに CLASS ドキュメントとして格納されます。実行時に、Data Integration プラグインは必要に応じてリポジトリからユーザ定義データ型のクラスを読み込みます。さらに、Data Integration プラグインにより、アクティブなテンプレートをサポートするために必要になる MFL とクラス ファイルがエクスポートされるため、別の BPM インスタンスではテンプレートをそのままインポートできます。
Data Integration プラグインは MFL ドキュメントと必要なユーザ定義型クラスの両方を実行時にリポジトリから取得します。クラス ドキュメントは、次のどちらかの方法を使用してリポジトリに格納できます。
ユーザ定義型の Format Builder からリポジトリへの発行
ユーザ定義型をリポジトリに発行する手順は次のとおりです。
図 B-3 [WebLogic Integration リポジトリへのログイン] ダイアログ ボックス
リポジトリ インポート ユーティリティを使用したユーザ定義型のリポジトリへの発行
リポジトリ インポート ユーティリティを使用して、データ変換ユーザ定義型を含む Java クラス ファイルをインポートできます。このためにインポート ユーティリティを使用する場合、クラス ファイルの名前を、Import コマンド ラインに渡してください。たとえばカレント ディレクトリのクラス ファイルをすべてインポートするときは、次のように指定します。
java com.bea.wlxt.repository.Import *.class
任意の Java クラス ファイルをリポジトリにインポートできることに注意してください。Format Builder で作成されたデータ変換ユーザ定義型クラス ファイルではそうはいきません。この機能は、たとえばユーティリティ定義型が com.bea.wlxt.bintype.Bintype クラスを拡張しない追加クラス ファイルに依存する場合に有効です。リポジトリ インポート ユーティリティを使用することにより、これらのユーティリティ クラスをリポジトリに格納できます。リポジトリでは、これらのクラスにはリポジトリ クラス ローダでアクセスできます。
ユーザ定義型コーディング要件
ユーザ定義型は com.bea.wlxt.bintype.Bintype 抽象クラス、またはその派生クラスの 1 つを拡張するために必要です。Bintype クラスは、WebLogic Integration の Data Integration コンポーネントがデータ型との通信に使用する基本的な枠組みを提供します。このクラスは、バイナリ データ型の処理に役立つユーティリティ ルーチンも提供します。さらに、BintypeDate および BintypeString という Bintype の 2 つのサブクラスにより、それぞれ日付と文字列型に関する追加のユーティリティ ルーチンが提供されます。
次のクラスは、そのクラスが提供する必須および省略可能なインタフェース メソッドとともに、ユーザ定義型で使用できます。
com.bea.wlxt.bintype.Bintype クラス
com.bea.wlxt.bintype.Bintype クラスは、以下の必須メソッド、省略可能メソッドおよびユーティリティ メソッドで構成されます。
必須インタフェース ルーチン
WebLogic Integration のユーザ定義データ型ユーティリティを使用するときは、以下のインタフェース メソッドが必要です。
省略可能なインタフェース ルーチン
データ変換ユーザ定義データ型ユーティリティを使用するときは、以下のインタフェース ルーチンを省略できます。
ユーティリティ インタフェース ルーチン
データ変換ユーザ定義データ型ユーティリティを使用するときは、以下のユーティリティ インタフェース ルーチンを使用できます。
com.bea.wlxt.bintype.BintypeString クラス
com.bea.wlxt.bintype.BintypeString クラスは、以下の必須ルーチン、省略可能ルーチンおよびユーティリティ ルーチンで構成されます。
必須インタフェース ルーチン
com.bea.wlxt.bintype.Bintype クラスと同じです。
省略可能なインタフェース ルーチン
com.bea.wlxt.bintype.Bintype クラスと同じです。
ユーティリティ インタフェース ルーチン
com.bea.wlxt.bintype.Bintype クラスと同じで、以下のユーティリティ インタフェース ルーチンが加わります。
クラス com.bea.wlxt.bintype.BintypeDate
com.bea.wlxt.bintype.BintypeDate クラスは、以下の必須ルーチン、省略可能ルーチンおよびユーティリティ ルーチンで構成されます。
必須インタフェース ルーチン
com.bea.wlxt.bintype.Bintype クラスと同じです。
省略可能なインタフェース ルーチン
com.bea.wlxt.bintype.Bintype クラスと同じです。
ユーティリティ インタフェース ルーチン
com.bea.wlxt.bintype.Bintype クラスと同じで、以下のユーティリティ インタフェース ルーチンが加わります。
com.bea.wlxt.mfl.MFLField クラス
MFLField クラスは、ユーザ定義型のすべての読み取りおよび書き込みメソッドに渡されます。MFLField クラスには、読み取りや書き込みが行われるフィールド用に定義された属性がすべて含まれます。MFLField はさまざまなメソッドを提供するため、これらの属性を照会し、各値を返すことができます。ユーザ定義型がサポートしていない属性が、含まれることはありません。たとえば、ユーザ定義型から false が isValueOK() メソッドに返される場合、そのユーザ定義型は MFLField.hasValue() メソッドに true を返した MFLField オブジェクトには 渡されません。
com.bea.wlxt.mfl.MFLField クラスは、以下の MFLField メソッドをサポートします。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |