简体   繁体   English

输出单个 csv 文件

[英]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.

相关问题 如何从单个HL7文件生成两个XML文件,并将它们作为单个记录插入到两个不同的列中? - How to generate two XML files from a single HL7 file and insert both into two different columns as a single record? 在单个通道或两个通道上接收ADT和ORU消息 - Receive ADT and ORU messages on a single channel or on two Javascript:仅当在代码中使用单个实例时,函数才能正常工作 - Javascript: Function only works correctly when used single instance in code 如何创建在两个以上的虚拟连接服务器之间共享的单个MySQL数据库服务器? - How to create a single MySQL database server shared between more than two mirth-connect servers? Mirth:如何从文件阅读器通道获取源文件目录 - Mirth: How to get source file directory from file reader channel 如何创建通道以读取BLOB和写入文件系统文件 - How create channel to read a BLOB and write file system file Mirth文件阅读器-Java堆空间错误 - Mirth file reader - Java Heap space error 运行旧JAR文件代码的Mirth - Mirth Running Old JAR File Code 如何使用 Mirth Connect 仅处理目录中的最新文件? - How to process only the most recent file in a directory using Mirth Connect? 使用自定义代码在Mirth上移动文件从一个文件夹连接到另一个文件夹 - Moving a file on Mirth connect from one folder to other with custom code
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM