プロパティー・ツリーには独自の相関名 Properties があり、このツリーの内容を参照または設定するすべての ESQL ステートメントではこの名前を使用する必要があります。
プロパティー・ツリーのフィールドには、メッセージの特性を定義する値が含まれています。 例えば、プロパティー・ツリーには、メッセージ・ドメイン用のフィールドがあり、エンコード用のフィールドとメッセージ・データがエンコードされる CCSID 用のフィールドが含まれています。 このツリーのフィールドの完全なリストは、Properties サブツリー内のエレメントのデータ・タイプを参照してください。
適切な ESQL ステートメントを使用して、こうしたフィールドに問い合わせて更新することができます。Compute ノードで新規出力メッセージを作成する場合には、メッセージ・プロパティーの値を設定しなければなりません。
新規出力メッセージの生成に Compute ノードを使用する場合には、プロパティー・ツリーでそのプロパティーを設定する必要があります。 出力メッセージのプロパティーは、入力メッセージのプロパティーと同じである必要はありません。
例えば、出力 MRM メッセージに出力メッセージ・プロパティーを設定するには、以下のプロパティーを設定してください。
プロパティー | 値 |
---|---|
メッセージ・ドメイン | MRM |
メッセージ・セット | メッセージ・セット ID |
メッセージ・タイプ | メッセージ名¹ |
メッセージ形式 | 物理形式名² |
この 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 ステートメントは次のようにドメインを XML に設定します。
SET OutputRoot.XML.Field1 = 'field1 data';
単一のメッセージに対して、複数のドメインを ESQL で指定しないでください。 ただし、PROPAGATE ステートメントを使用していくつかの出力メッセージを生成する場合には、それぞれのメッセージごとに異なるドメインを設定することができます。
プロパティー・ツリー内のエレメントの完全なリストについては、Properties サブツリー内のエレメントのデータ・タイプを参照してください。