必须通过脚本更新netsuite中的事务记录(最多2000条记录)。在Netsuite中,需要更新交易记录(订单/退货)行项目中的字段。因为它的大量更新考虑通过脚本更新。
是否可以创建scirpt并部署为reslet并处理所有记录并更新它?
答案 0 :(得分:3)
您无法将其作为RESTlet执行,因为您的管理点用完了,或者您的请求会超时。
我建议通过Map / Reduce脚本/预定脚本/批量更新脚本来执行此操作。
答案 1 :(得分:2)
就像你说的那样,这是一次大规模的更新,所以最好的解决方案是创建一个Mass Update脚本,你可以计划每天运行一次。
答案 2 :(得分:0)
map / reduce是理想的,但是预定的脚本可能足够好并且更容易。你可能要重新安排它
if (nlapiGetContext().getRemainingUsage() < SizeNeededToProcessTransaction) {
nlapiYieldScript();
}
// process transaction
您正在处理子列表,因此您无法通过脚本直接更新,您必须加载记录,更新行,提交行,然后保存记录。我在下面有一个简单的例子,让您了解如何执行此操作。我假设您正在更新此示例中项目子列表中自定义字段的每一行
var r = nlapiLoadRecord('transaction', internalid); // load transaction
var count = nlapiGetLineItemCount('item'); // get number of lines in sublist
for (var i = 1; i <= count; i++) { // sublists start at 1 so for loop params are different
r.selectLineItem('item', i); // select the line item
r.setCurrentLineItemValue('item', 'custcol_updateField', someValue); // assign the value you want
r.commitLineItem('item'); // commits the line
}
nlapiSubmitRecord(r); // saves the transaction changes
我建议在测试记录中尝试使用代码片段,然后在预定脚本中成功运行其余部分