Compute ノードを使用して、入力メッセージの一部を出力メッセージにコピーします。 この場合のコピーの結果は、それに伴う入力および出力のパーサーのタイプによって異なります。
ソース・メッセージとターゲット・メッセージのフォルダー構造がルート・レベルで両方とも同じである場合、 同種パーサー・コピーが実行されます。例えば、以下のようになります。
SET OutputRoot.MQMD = InputRoot.MQMD;
入力メッセージの MQMD フォルダーのすべての子が、 出力メッセージの MQMD フォルダーにコピーされます。
次に示すのは、同種パーサー・コピーをサポートするツリー構造の別の例です。
SET OutputRoot.XML.Data.Account = InputRoot.XML.Customer.Bank.Data;
入出力メッセージの両方が MRM ドメインにない場合には、Compute ノードを使用して、メッセージの構成をご自身で指定する必要があります。
ソース・メッセージとターゲット・メッセージのフォルダー構造がルート・レベルで異なる場合、 メッセージ・ソースの完全コピーを行うことはできません。 その代わり、異種パーサー・コピーでは、ソース・メッセージが、 リーフ名と値のペアで終了する、ネストされたフォルダーのセットとして表されます。例えば、次のメッセージを XML から MRM にコピーするとした場合:
<Name3><Name31>Value31</Name31>Value32</Name3>
この場合は、名前エレメント Name3、 および値 Value31 を持つ Name31 という名前値エレメントが生成されます。 2 番目の XML pcdata (Value32) は表現できず、廃棄されます。
異種パーサー・コピーではソース・ツリーをスキャンして、 名前エレメントとも呼ばれるフォルダーと、リーフ名 - 値ペアをコピーします。 それ以外のものは、ソースのパーサーによって special のフラグが立てられているエレメントも含めて、 いずれもコピーされません。
異種パーサー・コピーになるツリー構造の例を次に示します。
SET OutputRoot.MRM.Data.Account = InputRoot.XML.Data.Account;
異種パーサー・コピーを行うために使用されるアルゴリズムが実際のツリー構造に適さない場合は、 ソース・フィールドをさらに限定して、コピーするツリーの総量を制限する必要がある場合があります。
情報を入力メッセージから、異なるドメインの出力メッセージへとコピーする場合には注意してください。 出力メッセージを処理するパーサーの規則と完全には整合していない、 メッセージ構造または内容を作成する ESQL をコーディングすることは可能です。 これは作成されていない、または予期しない内容で作成された出力メッセージという結果になる可能性があります。 特定のメッセージ・フローによって生成された出力メッセージが正しい内容を含んでいない、 予期した形式ではないと思われる場合、出力メッセージを作成する ESQL を調べて、 構造、フィールド・タイプ、フィールド名、およびフィールド値に不一致がないかどうか探してください。
-- Copy message to the output, moving from XML to MRM domains SET OutputRoot.MRM = InputRoot.XML; -- 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';