[英]Netsuite: SuiteScript 2.0 - get latest transfer order
我正在尝试向 Netsuite 中的转移订单添加行。 我想将它们添加到在两个特定位置之间创建的最新订单上。
我正在尝试这个:
var s = search.create({
type : search.Type.TRANSACTION,
columns : ['internalid'],
filters : [
["location","anyof","61"],
"AND",
["transferlocation","anyof","62"],
"AND",
["mainline","is","T"],
"AND",
["trandate","on","today"]
]
});
var resultSet = s.run();
var latestTO = resultSet[0];
但是当我尝试向 latestTO 添加一行时出现此错误:
{"type":"error.SuiteScriptError","name":"UNEXPECTED_ERROR","message":null,"stack":["anonymous(N/recordImpl)","onAction(/SuiteScripts/TEST.js:67 )"],"cause":{"type":"内部错误","code":"UNEXPECTED_ERROR","details":null,"userEvent":null,"stackTrace"
如果我对最新转移订单的 internalID 进行“硬编码”,我的脚本就可以工作。
有任何想法吗?
如果您尝试创建一个已保存的搜索来访问转移订单,您可以使用SORT BY
功能。 您可以使用“创建日期”按降序排序。
我建议您创建 Saved Search 并测试您的所有要求。 稍后您可以将此保存的搜索导出为脚本并在您的代码中使用它。
为了获得最新的转移订单值,您只需在结果选项卡中包含 InternalID 列。
columns : ['internalid']
稍后,您必须使用脚本执行此保存的搜索。
var s = search.create({
type : search.Type.TRANSACTION,
columns : ['internalid'],
filters : [
["location","anyof","61"],
"AND",
["transferlocation","anyof","62"],
"AND",
["mainline","is","T"],
"AND",
["trandate","on","today"]
]
});
var searchResultCount = s.runPaged().count;
log.debug("s result count",searchResultCount);
s.run().each(function(result){
// .run().each has a limit of 4,000 results
return true;
});
var searchResult = s.run().getRange({start:0,end:999});
变量searchResultCount
存储结果总数
变量searchResult
包含所有数据
为了获得最近创建的 TO,只需获取第一个值。
for(var j=0;j<1;j++) {
var latestTO = searchResult[j].getValue({name:'internalid'});;
}
变量 latestTO 现在将具有 internalID。 使用它来加载记录。
如果有任何问题,请在评论部分告诉我。
另一个问题是,如果我将我的变量 latestTO 硬编码为:
var latestTO = '1337';
并进行更新:
var TO = record.load({
type: 'transferOrder',
id: latestTO,
isDynamic: true
});
没发生什么事。
但如果我这样做:
var TO = record.load({
type: 'transferOrder',
id: 1337,
isDynamic: true
});
有用...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.