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

时间:2015-06-11 06:40:45

标签: message messagebroker ibm-integration-bus extended-sql

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

要在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表示形式,但是它将被正确地写入文件中。