重置文件柜中CSV文件的内容

时间:2019-05-01 23:14:11

标签: file netsuite

我正在阅读文件柜中的CSV文件内容,其中有一个生活在销售订单上的用户Event Suitelet,并尝试在完成后将文件内容重置为空CSV

我可以成功附加行并读取内容,但是在NetSuite文档中没有任何有关重置内容的内容。 我只是在寻找一种将文件重置为空CSV的方法。

/**
 *
  @NApiVersion 2.x
  @NModuleScope SameAccount
  @NScriptType UserEventScript
  @appliedtorecord salesorder
 */

define(['N/file'], function(file) {
  function resetCSVFile(context) {
    var fileObj = file.load({ id: '104819' });

    var iterator = fileObj.lines.iterator();
    var idArrays = [];

    iterator.each(function(line) {
      idArrays.push(line.value);
      // the line below is my failed attempt at resetting the line
      line.value = ''
      return true;
    });

    log.audit({ title: 'idArrays', details: idArrays });

    fileObj.save();
    return true;
  }

  return {
    afterSubmit: resetCSVFile
  };
});

1 个答案:

答案 0 :(得分:1)

处理完文件后,您将需要使用file.create()来创建具有相同的namefileTypefolder的新文件对象属性值。将该文件对象的contents属性设置为某种值(也许是标题行),然后保存它。这将用一个空文件覆盖现有文件,但保留与原始文件相同的内部ID

下面是一个示例,该示例捕获CSV文件的标题行,并使用该标题行创建一个空文件。创建文件对象时,contents属性不能为null或空字符串。

var fileObj = file.load({ id: '5447' });
var currentLine = 0;
var headerRow = '';
fileObj.lines.iterator().each(function(line) {
  currentLine++;
  if (currentLine === 1) {
    headerRow = line.value + '\n';
  }
  log.debug({ title: 'header', details: line.value });
  return true;
});

var newFile = file.create({
  name: fileObj.name,
  fileType: file.Type.CSV,
  folder: fileObj.folder,
  contents: headerRow
});

newFile.save();