WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

メッセージ形式の変更

Compute ノードを使用して、入力メッセージの一部を出力メッセージにコピーします。 この場合のコピーの結果は、それに伴う入力および出力のパーサーのタイプによって異なります。

異種パーサー間でコピーする場合は、元のメッセージの一部の属性が失われることがあります。すべての属性をコピーするには、メッセージを同じパーサーにコピーします。

同種パーサー

ソース・メッセージとターゲット・メッセージのフォルダー構造がルート・レベルで両方とも同じである場合、 同種パーサー・コピーが実行されます。 以下に例を示します。

SET OutputRoot.MQMD = InputRoot.MQMD;

このステートメントは、入力メッセージの MQMD フォルダーのすべての子を、出力メッセージの MQMD フォルダーにコピーします。

次に示すのは、同種パーサー・コピーをサポートするツリー構造の別の例です。

SET OutputRoot.XMLNS.Data.Account = InputRoot.XMLNS.Customer.Bank.Data;

MRM ドメインの入力メッセージを、MRM ドメインの出力メッセージに変換するには、Compute または Mapping のどちらかのノードを使用できます。 Mapping ノードは、両方のメッセージの形式を知っており、必要な処置を解釈することができます。 Compute ノードに対する ESQL モジュールのコンテンツ・アシストも、それらのメッセージに対してメッセージ定義を使用することができます。 メッセージが同じネーム・スペースにない場合は、Compute ノードを使用する必要があります。

コンテンツ・アシストとメッセージ参照を併用するには、ESQL を備えたプロジェクトからメッセージ・セットを備えたプロジェクトへのプロジェクト参照をセットアップする必要があります。 プロジェクト参照のセットアップの詳細については、ライブラリー参照の追加と除去を参照してください。

入出力メッセージの両方が MRM ドメインにない場合には、Compute ノードを使用して、メッセージの構成をご自身で指定する必要があります。

異種パーサー

ソース・メッセージとターゲット・メッセージのフォルダー構造がルート・レベルで異なる場合、 メッセージ・ソースの完全コピーを行うことはできません。 その代わり、異種パーサー・コピーでは、ソース・メッセージが、 リーフ名と値のペアで終了する、ネストされたフォルダーのセットとして表されます。 例えば、次のメッセージを XML から MRM にコピーするとした場合:

<Name3><Name31>Value31</Name31>Value32</Name3>

この場合は、名前エレメント Name3、 および値 Value31 を持つ Name31 という名前値エレメントが生成されます。 2 番目の XML pcdata (Value32) は表現できず、廃棄されます。

異種パーサー・コピーではソース・ツリーをスキャンして、 名前エレメントとも呼ばれるフォルダーと、リーフ名 - 値ペアをコピーします。 それ以外のものは、ソースのパーサーによって special のフラグが立てられているエレメントも含めて、 いずれもコピーされません。

異種パーサー・コピーになるツリー構造の例を次に示します。

SET OutputRoot.DFDL.Data.Account = InputRoot.XMLNSC.Data.Account;

異種パーサー・コピーを行うために使用されるアルゴリズムが実際のツリー構造に適さない場合は、ソース・フィールドをさらに限定して、コピーするツリーの総量を制限する必要があります。

情報を入力メッセージから、異なるドメインの出力メッセージへとコピーする場合には注意してください。 出力メッセージを処理するパーサーの規則と整合していないメッセージ構造または内容を作成する ESQL をコーディングすることは可能です。 そのようなアクションの結果として、出力メッセージが作成されないか、または想定外の内容が作成される可能性があります。 特定のメッセージ・フローによって生成された出力メッセージに正しい内容が入っていない場合や、見込みどおりのフォームではないと思われる場合、出力メッセージを作成する ESQL を調べて、構造、フィールド・タイプ、フィールド名、およびフィールド値に不一致がないかどうかを調べてください。

異種パーサー間でツリーをコピーする場合は、出力の Properties フォルダーに MessageSet、MessageType、および MessageFormat フィールドを設定しなければならない場合があります。 どのフィールドを設定する必要があるかは、ターゲット・パーサーによって異なります。 例えば、ターゲット・パーサーが MRM で、メッセージ・セットが CWF 形式で定義されている場合、XMLNSC パーサーが作成したメッセージ本体を MRM パーサー所有の本体にコピーするには、次のコマンドが必要になります。
-- Copy message to the output, moving from XMLNSC to MRM domains
SET OutputRoot.MRM = InputRoot.XMLNSC.rootElement;
		
-- Set the CWF format for output by the MRM domain
SET OutputRoot.Properties.MessageType = '<MessageTypeName>';
SET OutputRoot.Properties.MessageSet = '<MessageSetName>';
SET OutputRoot.Properties.MessageFormat = 'CWF';	
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:45:30


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | ac11610_