无法将文件上传到 SuiteScript
Can't upload file to 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
}
}
我的 linter 没有发现这是一个特定于 netsuite 的语法错误。我的脚本定义没有包装整个脚本,只是包装模块声明。
工作代码:
/**
* @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
}
});
还要检查@NScriptType 表示法,如果您有 ScheduleScript,无论语法是否正确,netsuite 都希望您在 return 对象上有一个名为“execute”的函数。
我发现我的问题是我的脚本引用了我尚未上传的本地文件。
在创建脚本记录之前上传其他本地文件。
仔细检查主方法定义中的 require
与 define
关键字。 2.X ScheduledScript
使用 define
我正在尝试按照 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
}
}
我的 linter 没有发现这是一个特定于 netsuite 的语法错误。我的脚本定义没有包装整个脚本,只是包装模块声明。
工作代码:
/**
* @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
}
});
还要检查@NScriptType 表示法,如果您有 ScheduleScript,无论语法是否正确,netsuite 都希望您在 return 对象上有一个名为“execute”的函数。
我发现我的问题是我的脚本引用了我尚未上传的本地文件。
在创建脚本记录之前上传其他本地文件。
仔细检查主方法定义中的 require
与 define
关键字。 2.X ScheduledScript
使用 define