【发布时间】:2015-08-26 17:08:51
【问题描述】:
我正在尝试实现简单的消息流,它读取文本文件(SWIFT 消息)并替换一个字段值,然后我需要将其放回文件中。 Flow 将文件读取为 blob,然后我将消息转换为 CHARACTER 并进行替换。结果我得到了一个 CHARACTER 变量,我想将它写入文件。
【问题讨论】:
标签: message messagebroker ibm-integration-bus extended-sql
我正在尝试实现简单的消息流,它读取文本文件(SWIFT 消息)并替换一个字段值,然后我需要将其放回文件中。 Flow 将文件读取为 blob,然后我将消息转换为 CHARACTER 并进行替换。结果我得到了一个 CHARACTER 变量,我想将它写入文件。
【问题讨论】:
标签: message messagebroker ibm-integration-bus extended-sql
将变量转换回 BLOB,使其成为消息根,然后使用默认设置将其发送到 FileOutput 节点。假设您在计算节点中使用 ESQL 进行字符替换(其计算模式设置为更改消息),那么后续的 ESQL 将是:
SET OutputRoot.BLOB.BLOB = CAST(yourCharVar AS BLOB);
【讨论】:
要在 ESQL 中将简单的 CHARACTER(例如,像 '' 这样的 XML 标记)写入文件,您只需创建一个计算节点并添加如下内容:
DECLARE youCharacterToWrite CHARACTER '<a simple string>';
SET OutputRoot.BLOB.BLOB = CAST(youCharacterToWrite AS BLOB CCSID InputRoot.Properties.CodedCharSetId);
然后将您的计算节点从输出终端连接到 FileOutput 的输入终端以写入文件。 如果您在 IIB 中调试该变量,它将显示您的 CHARACTER 变量的一些 Base64 表示,但它会被正确写入文件。
【讨论】: