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

问题描述 投票:0回答:2

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

message messagebroker ibm-integration-bus extended-sql
2个回答
2
投票

将变量强制转换回BLOB,使其成为消息根目录,然后将其发送到具有默认设置的FileOutput节点。假设您在Compute节点中使用ESQL进行字符替换(其计算模式设置为更改Message),则后续ESQL将为:

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


0
投票

要将简单的CHARACTER(例如,像<tag>'这样的XML标记)写入ESQL中的文件,您只需创建一个计算节点并添加如下内容:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.