访问 MRM 域中嵌入式消息

如果已经定义了多段式消息,则至少有一条消息嵌入在另一条消息中。在表示外部消息的全部复杂类型中,您可以使用以下方式中的一种对内部消息进行建模:
  • 将元素(以下示例中称为 E_outer1)的 Type 属性设置为一个复杂类型,该复杂类型的 Composition 属性已经被设置为 Message
  • 复杂类型的 Composition 属性设置为 Message(在下例中称为 t_Embedded)
取决于您使用了以上何种模型,您需要编写以处理内部消息的 ESQL 会有所不同。例如,假设您已经定义了以下内容:
  • 外部消息 M_outer,它的 Type 属性被设置为 t_Outer。
  • 内部消息 M_inner1,它的 Type 被设置为 t_Inner1
  • 内部消息 M_inner2,它的 Type 被设置为 t_Inner2
  • 类型 t_Outer,它的第一个子元素命名为 E_outer1,第二个子代被定义为名为 t_Embedded 的复杂类型
  • 类型 t_Embedded,它的 Composition 属性被设置为 Message
  • 类型 t_Inner1,它的第一个子元素命名为 E_inner11
  • 类型 t_Inner2,它的第一个子元素命名为 E_inner21
  • 类型 t_outer1,它的 Composition 属性被设置为 Message
  • Element E_outer1,它的 Type 属性被设置为 t_outer1
如果要设置 E_inner11 的值,请编写以下 ESQL 代码:
SET OutputRoot.MRM.E_outer1.M_inner1.E_inner11 = 'FRED';
如果要设置 E_inner21 的值,请编写以下 ESQL 代码:
SET OutputRoot.MRM.M_inner2.E_inner21 = 'FRED';

如果您将消息头从输入消息复制到输出消息,并且输入消息类型包含路径,则仅将路径中最外层的名称复制到输出消息类型。

当您配置消息流以处理嵌入式消息时,您可以指定MQRFH2 头(如果输入消息中存在一个)或输入节点消息类型属性中的消息类型的路径来代替名称(例如,上面构建模型的消息,路径可以指定为 M_Outer/M_Inner1/M_Inner2 来代替仅 M_Outer)。

如果您已指定输入消息的物理格式是 CWF 或 XML,任何消息类型前缀连接在来自 MQRFH2 或输入节点的消息类型前,给出要使用的最终路径(有关更多信息,请参阅多段式消息)。MRM 使用路径中第一项作为最外层消息类型,然后当它找到 Composition 属性设置为 Message 的复杂类型时,逐渐向内工作。

如果您已指定输入消息的物理格式是 TDS,则实现一个不同的使用消息的进程。这在 TDS 格式:多段式消息中有所描述。

有关路径连接的更多信息,请参阅消息集属性

相关概念
消息流概述
ESQL 概述
消息建模
多段式消息
TDS 格式:多段式消息
相关任务
设计消息流
定义消息流内容
管理 ESQL 文件
开发消息模型
相关参考
Compute 节点
Database 节点
Filter 节点
ESQL 引用
SET 语句
消息集属性
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac17410_