|
注意 : | 動的トランスフォーメーション コントロールは、WebLogic Integration の使用許諾を受けた場合にのみ、BEA Workshop for WebLogic Platform で使用できます。 |
動的トランスフォーメーション コントロールを使用すると、ビジネス プロセスで実行時に動的にトランスフォーメーションを選択し、実装する機能を利用できます。具体的には、実行時に呼び出される XQuery、XSLT、または MFL ファイルを動的に選択できるようになります。たとえば、異なる支社からドキュメントを受信する統合ハブがある場合、動的トランスフォーメーション コントロールを使用すると、各支社の市外局番に基づいて異なるトランスフォーメーションを実行することができます。
コントロールの使用に関する一般的な情報については、「ビジネス プロセスでコントロールを使用する」を参照してください。
動的トランスフォーメーション コントロールを使用すると、ビジネス プロセスで実行時に呼び出すトランスフォーメーションを動的に選択する機能を利用できます。
このコントロールでは 8 つの基本メソッドが提供され、トランスフォーメーションで使用するファイルを選択するためのカスタム メソッドも作成できます。メソッド コンテキストまたはメッセージの内容に基づいた選択が可能です。トランスフォーメーションの動的な選択は、別のトランスフォーメーション ファイルを指す URI の設定により行われます。利用できるトランスフォーメーションの種類は以下のとおりです。
動的トランスフォーメーション コントロールでは、作成済みのトランスフォーメーション (トランスフォーメーション コントロールで作成したものなど) を使用します。トランスフォーメーションをテストしてから、動的トランスフォーメーション コントロールを作成するようにしてください。トランスフォーメーション コントロールとデータの変換の詳細については、「XQuery を使用したデータの変換」を参照してください。
ビジネス プロセスを開発する際は、動的トランスフォーメーション コントロールを呼び出す前に、実行されるトランスフォーメーションを決定するロジックを設計しておく必要があります。ロジックの設計には、分岐ノード、またはデータベース コントロールや XML メタデータ コントロールなどのコントロールを使用できます。
動的トランスフォーメーション コントロールでは以下のメソッドが提供されます。
public void perform() {
_map = new java.util.HashMap();
// 名前は変数名、値はドキュメントから渡された値
_map.add("CustomerDoc",customerDoc);
}
注意 : | 使用できる基本メソッドの詳細については、「動的トランスフォーメーション コントロールで基本メソッドを使用する」を参照してください。 |
ここでは、新しい動的トランスフォーメーション コントロールを作成する方法について説明します。
ビジネス プロセスでコントロール インスタンスを追加する場所については、「ビジネス プロセスでコントロールを使用する」の「ビジネス プロセスにコントロール ノードを追加する」を参照してください。
注意 : | 設計時には、動的トランスフォーメーション コントロールを作成する前に、トランスフォーメーション ファイルを作成またはインポートしてテストしておく必要があります。詳細については、データ トランスフォーメーション ガイド を参照してください。 |
注意 : | [データ パレット] が表示されていない場合は、メニュー バーから [ウィンドウビューの表示データ パレット] をクリックしてください。 |
[Insert control: 動的なトランスフォーメーション] ダイアログ ボックスが表示されます (図 4-1 を参照)。
新しい動的トランスフォーメーション コントロールとそのインスタンスが作成され、このコントロールのインスタンスがデータ パレットの [コントロール] タブに表示されます。新しいファイルが、BEA Workshop for WebLogic Platform の [パッケージ・エクスプローラー] ペインに表示されます。(コントロール ファイルをダブルクリックすると、ソース ビューで表示または編集できます。)
この節では、動的トランスフォーメーション コントロールの使用方法について説明します。内容は以下のとおりです。
動的トランスフォーメーション コントロールを作成したら、ビジネス プロセスにコントロール インスタンスを追加して、その基本メソッドをアプリケーションから呼び出すことができます。
ビジネス プロセスに動的トランスフォーメーション コントロールのインスタンスを追加する方法については、「ビジネス プロセスでのコントロール ノードの作成」を参照してください。
XmlObject[] performXQuery(String xQueryName,HashMap inputList)
XQuery を実行します。操作対象の引数は、メッセージ コンテキストに基づいて決まります。
XmlObject performXQueryOnXmlObject(String xQueryName,XmlObject inputDoc,String varName)
XmlObject による入出力を行う XQuery を実行します。
XmlObject performXSLT(String xslTemplate,XmlObject source,HashMap inputList)
XSLT を実行します。操作対象の引数は、メッセージ コンテキストに基づいて決まります。
XmlObject convertBytesToXML(byte[] data,String mflUrl)
XmlObject convertInputStreamToXML(InputStream iStream,String mflUrl)
XmlObject convertRawDataToXML(RawData rawData, String mflUrl)
byte[] convertXmlToBytes(XmlObject xmlObject,String mflURL)
XML データから非 XML データへの MFL トランスフォーメーションを実行します。
RawData convertXmlToRawData(XmlObject xmlObject,String mflURL)
これらのメソッドの動作は、@DynamicTransformationControl.Ddtf、@DynamicTransformationControl.Xquery および @DynamicTransformationControl.Xsl アノテーションにより制御します。詳細については、DynamicTransformation インタフェースを参照してください。
DynamicTransformationControl アノテーション
ビジネス プロセスにおける動的トランスフォーメーション コントロールのサンプルについては、以下の URL にある「ソリューション サンプル」を参照してください。
http://edocs.beasys.co.jp/e-docs/wli/docs81/sol_samples/index.html