简体   繁体   中英

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. 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. How do I update the code or the configuration to create a single csv file?

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM