无法将文件上传到SuiteScript

时间:2018-06-15 21:41:29

标签: javascript mapreduce netsuite suitescript

我正在尝试按照suitescript 2.0培训指南将Map / reduce类型脚本上传到netsuite。我收到以下错误:" SuiteScript 2.0入口点脚本必须实现一个脚本类型函数 。"

我使用了getInputData()和map()函数。返回指向已保存搜索的引用对象。然后提取并记录上下文值和解析的上下文值(比较课程中的json字符串和js对象)。

任何人都会看到语法错误,知道我可能缺少什么,或者我可以测试什么?

代码:

/**
* @NApiVersion 2.x
* @NScriptType MapReduceScript
*/

define(['N/search']),
function(search) {
  function getInputData() {
    return { type: 'search', id: 'customsearch_iii_payments' };
  }
  function map(context) {
    var jsonResult = context.value
    var searchResult = JSON.parse(context.value);
    log.debug('JSON result' + jsonResult);
    log.debug('Search Result' + searchResult);
  }

  return {
    getInputData: getInputData,
    map: map
  }
}

4 个答案:

答案 0 :(得分:3)

这是一个netsuite特定的语法错误,我的linter没有捕获。我的脚本定义没有包装整个脚本,只包含模块声明。

工作代码:

/**
 * @NApiVersion 2.x
 * @NScriptType MapReduceScript
 * @NModuleScope SameAccount
 */

define(['N/search'],
function(search) {
  function getInputData() {
    return { type: 'search', id: 'customsearch_iii_payments' };
  }
  function map(context) {
    var jsonResult = context.value
    var searchResult = JSON.parse(context.value);
    log.debug('JSON result' + jsonResult);
    log.debug('Search Result' + searchResult);
  }

  return {
    getInputData: getInputData,
    map: map
  }
});

答案 1 :(得分:1)

仔细检查主方法定义中的 requiredefine 关键字。 2.X ScheduledScript 使用 define

答案 2 :(得分:0)

还要检查@NScriptType表示法,以防万一您具有ScheduleScript,无论语法是否正确,netsuite都希望您对返回对象具有一个名为“ execute”的函数。

答案 3 :(得分:0)

我发现对我来说,问题是我的脚本引用了尚未上传的本地文件。

在创建脚本记录之前上载其他本地文件。