从外部系统访存数据时将结果消息与输入消息相结合
某些节点可以在消息流中访存数据,并将结果数据与输入消息合并以扩充或覆盖输入消息的某些部分。
以下节点可以在消息流中方寸数据,并将结果与输入消息合并:
- 使用 CICSRequest 节点通过基于 TCP/IP 的 IP InterCommunications 协议 (IPIC) 调用 CICS® Transaction Server for z/OS® 程序。
- 使用 CORBARequest 节点通过因特网组织间协议 (IIOP) 调用外部 CORBA 应用程序。
- 使用 FileRead 节点从消息流中读取一条记录或文件的整个内容。
- 使用 IMSRequest 节点发送请求以在本地或远程 IMS 系统上运行事务,并等待响应。
- 使用 JMSReceive 节点来使用或浏览消息流中间的 JMS 队列中的 JMS 消息。
- 使用 LoopBackRequest 节点通过 LoopBack® 连接器发出同步请求,在后端数据源中创建、检索、更新和删除数据。
- 将 RESTAsyncRequest 节点与 RESTAsyncResponse 节点配合使用,以构造一对与外部 REST API 异步交互的消息流。
- 使用 RESTRequest 节点向外部 REST API 发出同步请求。
- 使用 SalesforceRequest (无发现) 节点向 Salesforce 系统发送请求,以创建,更新,检索和删除 Salesforce 数据。
- 使用 TCPIPClientReceive 节点通过客户机 TCP/IP 连接接收数据。
- 使用 TCPIPServerReceive 节点通过服务器 TCP/IP 连接接收数据。
在消息流中使用以上某个节点时,可以从外部资源访存数据。 结果数据根据输出数据位置的值以及结果数据位置属性(如果在节点上存在)的值与输入消息合并。

输入根先被复制到输出根,然后结果数据被复制到输出树上由输出数据位置指定的位置。 缺省值 $OutputRoot 将复制的消息树替换为结果数据,并且不传播输入消息。
结果数据位置(如果在节点上存在)的缺省值为 $ResultRoot,即将整个结果消息复制到输出数据位置。 如果您在 $ResultRoot 下指定值,那么结果消息的指定子树将插入输出树。
以下示例使用 JMSReceive 节点并显示为 输出数据位置 和 结果数据位置指定的可能不同值的影响。
示例 1:替换整个消息树
- 输出数据位置 = $OutputRoot
- 结果数据位置 = $ResultRoot
这些值为缺省值,并导致使用结果消息覆盖输入消息。
输入消息树如下所示。 选择要覆盖的根元素:

结果消息树如下所示。 为插入选择了根元素:

输出消息树如下所示。 输出根树将替换为结果根树:

示例 2:替换消息头
- 输出数据位置 = $OutputRoot/JMSTransport
- 结果数据位置 = $ResultRoot/JMSTransport
输入根被复制到输出根,然后消息头被结果消息的头覆盖。
在输入消息树中,选择要覆盖的 JMSTransport 子树:

在结果消息树中,选择要插入的 JMSTransport 子树:

在输出消息树中,输出 JMSTransport 子树将替换为结果 JMSTransport 子树:

示例 3:替换消息体
- 输出数据位置 = $OutputRoot/XMLNSC
- 结果数据位置 = $ResultRoot/XMLNSC
输入根被复制到输出根,然后消息体被结果消息的主体覆盖。
在输入消息树中,将覆盖所选的 XMLNSC 元素:

在结果消息树中,选择了要插入的 XMLNSC 元素:

在输出消息树中,XMLNSC 元素已被结果 XMLNSC 元素替换:

示例 4:插入结果消息的子树
- 输出数据位置 = $OutputRoot/XMLNSC/request/Operation
- 结果数据位置 = $ResultRoot/XMLNSC/request/Operation
输入根被复制到输出根,然后结果消息的“操作”子树被插入请求元素下的输出树。 输入消息树不包含“操作”元素,但是其位置由输出数据位置值确定。
在输入消息树中,已选中要写入的位置。 此位置尚不存在:

在结果消息树中,选择插入操作元素:

在输出消息树中,将在现有请求元素下插入结果消息树中的操作元素:
