Как загрузить файл из FileCabinet в SuiteScript - PullRequest
2 голосов
/ 08 ноября 2019

Я хочу импортировать CSV-файл, используя сохраненный CSV-импорт в suitescript. Для этого я тестирую свой код в отладчике сценариев.

Я успешно сделал это в 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: Невозможно прочитать свойство "length" из undefined (SYSTEM_LIBS $ debugger.sys # 2396)

Как мне добиться того, что я сделал с помощью скрипта 1.0 с 2.0Сценарий?

1 Ответ

1 голос
/ 08 ноября 2019

Каким-то образом это работало с немного другим подходом:

/**
 *@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.

...