属性树拥有其自己的相关名“属性”,并且您必须在所有引用或设置此树的内容的 ESQL 语句中使用此名称。
属性树中的字段包含定义消息特性的值。例如,属性树包含消息域的字段以及编码消息数据所在的编码和 CCSID 的字段。 有关此树中字段的全部列表,请参阅属性子树中元素的数据类型。
您可以使用相应的 ESQL 语句查询和更新这些字段。如果您在 Compute 节点中创建新的输出消息,则您必须设置消息属性的值。
如果您使用 Compute 节点生成新输出消息,则必须在属性树中设置其属性。输出消息的属性不必与输入消息的属性相同:
例如,要为输出 MRM 消息设置输出消息属性,设置以下属性:
属性 | 值 |
---|---|
消息域 | MRM |
消息集 | 消息集标识 |
消息类型 | 消息名称¹ |
消息格式 | 物理格式名称² |
该 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;
要设置输出消息域,可设置消息属性,或者在 SET 语句的第二个限定符(解析器字段)对引用必需域的 ESQL 语句进行编码。例如,ESQL 语句将域设置为 MRM:
SET OutputRoot.MRM.Field1 = 'field1 data';
该 ESQL 语句将域设置为 XML:
SET OutputRoot.XML.Field1 = 'field1 data';
不要在任何单个消息的 ESQL 中指定多个域。然而,如果使用 PROPAGATE 语句生成几个输出消息,则可以为每个消息设置不同的域。
有关属性树中元素的完整列表的信息,请参阅属性子树中元素的数据类型。