如何在 SuiteScript 中从 FileCabinet 加载文件

How do I load a file from FileCabinet in SuiteScript

我想使用 suitescript 中保存的 csv 导入来导入 csv 文件。 为此,我正在脚本调试器中测试我的代码。

我在 Suitescript 1.0 中成功地做到了这一点:

var import1 = nlapiCreateCSVImport(); 
import1.setMapping('custimport_test_import'); 
import1.setPrimaryFile(nlapiLoadFile(252)); 
nlapiSubmitCSVImport(import1);

现在我在 Suitescript 2.0 中像这样尝试它:

/**
 *@NApiVersion 2.x
 *@NScriptType ScheduledScript
 */
var func = require(["N/task", "N/file"], function(task, file) {
  var csv = file.load({ id: 252 });

  var mrTask = task.create({
    taskType: task.TaskType.CSV_IMPORT,
    importFile: csv,
    mappingId: "custimport_test_import"
  });

  mrTask.submit();
});

func();

我得到的错误是 TypeError: Cannot read 属性 "length" from undefined (SYSTEM_LIBS$debugger.sys#2396)

我怎样才能用 2.0 脚本实现我用 1.0 脚本所做的?

它以某种方式使用了稍微不同的方法:

/**
 *@NApiVersion 2.x
 *@NScriptType ScheduledScript
 */
var func = require(["N/task", "N/file"], function(task, file) {
  var scriptTask = task.create({ taskType: task.TaskType.CSV_IMPORT });
  scriptTask.mappingId = "custimport_test_import";
  var f = file.load("SuiteScripts/test.csv");
  scriptTask.importFile = f;
  var csvImportTaskId = scriptTask.submit();
});

func();

调试器仍然返回上述错误,但记录是在 netsuite 中创建的。