如何在 ESQL 中将 CHARACTER 变量写入文件?

How to write CHARACTER variable to file in ESQL?

我正在尝试实现简单的消息流,它读取文本文件(SWIFT 消息)并替换一个字段值,然后我需要将其放回文件。 Flow 将文件读取为 blob,然后我将消息转换为 CHARACTER 并进行替换。结果我得到一个 CHARACTER 变量,我想将其写入文件。

将变量转换回 BLOB,使其成为消息根,然后使用默认设置将其发送到 FileOutput 节点。假设您在 Compute 节点中使用 ESQL 进行字符替换(其 Compute Mode 设置为 change Message),那么后续的 ESQL 将是:

SET OutputRoot.BLOB.BLOB = CAST(yourCharVar AS BLOB);

要在 ESQL 中将一个简单的字符(例如,XML 标记如“<标记>”)写入文件,您只需创建一个计算节点并添加如下内容:

DECLARE youCharacterToWrite CHARACTER '<a simple string>';
SET OutputRoot.BLOB.BLOB = CAST(youCharacterToWrite AS BLOB CCSID InputRoot.Properties.CodedCharSetId);

并将您的计算节点从 out 终端连接到 FileOutput 的 in 终端以写入文件。 如果您在 IIB 中调试变量,它会显示您的 CHARACTER 变量的一些 Base64 表示形式,但它会正确写入文件。