更改消息格式

使用 Compute 节点将输入消息的一部分复制到输出消息。此类复制的结果视所涉及的输入和输出解析器类型而定。

相似解析器

源和目标消息在根级别拥有相同的文件夹结构,这种情况下将执行相似解析器复制。例如:

SET OutputRoot.MQMD = InputRoot.MQMD;

将输入消息的 MQMD 文件夹中所有子代复制到输出消息的 MQMD 文件夹中。

以下是支持相似解析器复制的树结构的另一个示例:

SET OutputRoot.XML.Data.Account = InputRoot.XML.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。第二个 XML pcdata(Value32)无法显示,并被废弃。

不相似解析器复制扫描源树,并复制文件夹(也称为名称元素)和叶名称-值对。不复制其他任何对象,包括由源解析器标记为特殊的元素。

以下是生成不相似解析器复制的树结构的一个示例:

SET OutputRoot.MRM.Data.Account = InputRoot.XML.Data.Account;

如果用来进行不相似解析器复制的算法不适合您的树结构,可能需要进一步限定源字段来限制所复制树的数量。

将信息从输入消息复制到不同域中的输出消息时,请小心操作。解析器将处理输出消息,对于不完全符合解析器规则的消息结构或内容,对创建该消息结构或内容的 ESQL 进行编码是可行的。这可能导致输出消息不被创建,或所创建的输出消息带有意外内容。如果您认为特定消息流生成的输出消息未包含正确的内容或不具有预期的格式,请检查创建输出消息的 ESQL,并查找结构、字段类型、字段名和字段值可能存在的不匹配情况。

在不相似解析器之间复制树时,您可能还希望设置目标解析器的消息格式。例如,如果已经将消息集定义为 XML 和 CWF 格式,则需要使用以下命令将输入 XML 流复制到 MRM 解析器并将后者设置为以 CWF 格式输出:
-- 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';	
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac11610_