[英]Outputting a single csv file
In a channel I have a Source which is a Channel Reader and which receives 13 rows of data from a SQL database.在一个通道中,我有一个 Source,它是一个 Channel Reader,它从 SQL 数据库接收 13 行数据。 I have a Destination which is a File Writer which needs to create a single csv file but is creating 13 separate csv files using the following JavaScript step in the Source.
我有一个目标,它是一个文件编写器,它需要创建一个 csv 文件,但正在使用源中的以下 JavaScript 步骤创建 13 个单独的 csv 文件。 How do I update the code or the configuration to create a single csv file?
如何更新代码或配置以创建单个 csv 文件?
const delimiter = ',';
const newLine = '\r\n';
var outputResultStr = new java.lang.StringBuilder();
var outputFileName = 'CSVData_' + DateUtil.getCurrentDate('yyyyMMDDHHMMSS');
outputResultStr.append('field#1Header').append(delimiter).append(
'field#2Header').append(delimiter).append(
'field#3Header').append(delimiter).append(
'field#4Header').append(delimiter).append(
'field#5Header').append(delimiter).append(
'field#6Header').append(delimiter).append(
'field#7Header').append(delimiter).append(
'field#8Header').append(delimiter).append(
'field#9Header').append(delimiter).append(
'field#10Header').append(newLine);
for each (msg['result'] in msg) {
outputResultStr.append(msg['field#1'].toString()).append(delimiter).append(
msg['field#2'].toString()).append(delimiter).append(
msg['field#3'].toString()).append(delimiter).append(
msg['field#4'].toString()).append(delimiter).append(
msg['field#5'].toString()).append(delimiter).append(
msg['field#6'].toString()).append(delimiter).append(
msg['field#7'].toString()).append(delimiter).append(
msg['field#8'].toString()).append(delimiter).append(
msg['field#9'].toString()).append(delimiter).append(
msg['field#10'].toString()).append(newLine);
} }
msg = outputResultStr;
channelMap.put('final_output', outputFileName);
The file writer has an "append" mode.文件编写器具有“附加”模式。 Your code is forcing creation of a new file name every time it is called with a new time.
您的代码每次使用新时间调用时都会强制创建新文件名。 Just keep the same name and use append mode.
只需保持相同的名称并使用附加模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.