【发布时间】:2020-04-09 04:07:36
【问题描述】:
尝试运行 Suitelet 脚本来调用搜索并将其转换为发票。但在进入下一步之前,我遇到了以下消息:
无法评估脚本:执行定义回调时,所有 SuiteScript API 模块都不可用。
我的脚本:
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
*/
require(['N/search','N/log'], function (search,log) {
function onRequest(context) {
// Search
// ### ORDERS TO BILL
var salesorderSearchObj = search.create({
type: "salesorder",
filters:
[
["type","anyof","SalesOrd"],
"AND",
["status","anyof","SalesOrd:E","SalesOrd:F"],
"AND",
["mainline","is","T"]
],
columns:
[
search.createColumn({name: "amount", label: "Amount"}),
search.createColumn({name: "entity", label: "Name"}),
search.createColumn({name: "account", label: "Account"}),
search.createColumn({
name: "datecreated",
sort: search.Sort.DESC,
label: "Date Created"
}),
search.createColumn({name: "billeddate", label: "Date Billed"}),
search.createColumn({name: "statusref", label: "Status"})
]
});
var searchResultCount = salesorderSearchObj.runPaged().count;
log.debug( {"title":"salesorderSearchObj result count", "details":searchResultCount});
salesorderSearchObj.run().each(function(result){
// .run().each has a limit of 4,000 results
return true;
});
}
return {
onRequest: onRequest
};
});
就是对选定的销售订单进行映射和减少。
- 加载搜索。
- 通过将所选订单转换为一个(按客户)进行映射。
- 减少到一张发票/现金销售。
【问题讨论】:
-
这看起来像是您将一些随机样本粘贴在一起。 Netsuite 帮助包含大多数脚本类型的基本示例。如果您尝试从该示例开始创建套件。如果您尝试从那里创建地图缩减。您的原始脚本可以在控制台中运行,但与任何脚本类型的签名都不匹配。另请注意,您的销售订单状态过滤器应具有数组中的值
-
要记住的一件事是在您的脚本中始终使用
define而不是require。仅在使用调试控制台或浏览器控制台时使用require。
标签: javascript netsuite suitescript2.0