プロパティー・ツリーには独自の相関名 Properties があり、このツリーの内容を参照または設定するすべての ESQL ステートメントではこの名前を使用する必要があります。
プロパティー・ツリーのフィールドには、メッセージの特性を定義する値が含まれています。 例えば、プロパティー・ツリーには、モデル駆動型パーサー用のメッセージ・テンプレート情報、メッセージ・データがエンコードされるエンコード方式と CCSID に関するフィールド、およびメッセージのセキュリティー ID を保持するフィールドが含まれています。 このツリーのフィールドの完全なリストは、Properties サブツリー内のエレメントのデータ・タイプを参照してください。
適切な ESQL ステートメントを使用して、こうしたフィールドに問い合わせて更新することができます。 Compute ノードで新規出力メッセージを作成する場合には、メッセージ・プロパティーの値を設定しなければなりません。
新規出力メッセージの生成に Compute ノードを使用する場合には、プロパティー・ツリーでそのプロパティーを設定する必要があります。 出力メッセージのプロパティーは、入力メッセージのプロパティーと同じである必要はありません。
例えば、出力 MRM メッセージに出力メッセージ・プロパティーを設定するには、以下のプロパティーを設定してください。
プロパティー | 値 |
---|---|
MessageSet | メッセージ・セット ID |
MessageType | メッセージ名 ¹ |
MessageFormat | 物理形式名 ² |
この ESQL プロシージャーは、メッセージ・プロパティーを、呼び出し側のステートメントによって渡される値に設定します。 このタスクは頻繁に実行する必要がある場合もあり、多種多様なノードおよびメッセージ・フローで、このようなプロシージャーを使用することができます。 必要であれば、特定の値を設定する ESQL をコーディングすることができます。
CREATE PROCEDURE setMessageProperties(IN OutputRoot REFERENCE, IN setName char,
IN typeName char, IN formatName char) BEGIN
/****************************************************************************
* A procedure that sets the message properties
****************************************************************************/
set OutputRoot.Properties.MessageSet = setName;
set OutputRoot.Properties.MessageType = typeName;
set OutputRoot.Properties.MessageFormat = formatName;
END;
出力メッセージ・ドメインを設定するには、必要なドメインを参照する ESQL ステートメントを SET ステートメントの 2 番目の修飾子、パーサー・フィールドにコーディングします。 例えば、ESQL ステートメントがドメインを MRM に設定するとします。
SET OutputRoot.MRM.Field1 = 'field1 data';
この ESQL ステートメントは次のようにドメインを XMLNS に設定します。
SET OutputRoot.XMLNS.Field1 = 'field1 data';
単一のメッセージに対して、複数のドメインを ESQL で指定しないでください。 ただし、PROPAGATE ステートメントを使用していくつかの出力メッセージを生成する場合には、それぞれのメッセージごとに異なるドメインを設定することができます。
プロパティー・ツリー内のエレメントの完全なリストについては、Properties サブツリー内のエレメントのデータ・タイプを参照してください。
同一フィールドの場合にどちらのフォルダーが優先されるかという点で、Properties フォルダーと MQMD フォルダーの取り扱い方には相違があります。 詳しくは、さまざまなトランスポートの場合の、MQMD フォルダーと比較した Properties フォルダーの振る舞いを参照してください。