Netsuite 从保存的搜索结果更新多条记录
我有一个脚本(如下所示),可以执行以下操作:Netsuite 从保存的搜索结果更新多条记录,netsuite,Netsuite,我有一个脚本(如下所示),可以执行以下操作: 获取当前记录的销售订单id 获取当前记录的“创建自”id 加载一个已保存的搜索,该搜索将搜索自定义文件中的所有条目 记录 使用从id创建的作为已保存搜索的筛选器 更新找到的自定义记录中的字段 所有的工作都很好,除了我遇到了一个路障时,超过1记录被发现 如何更新多个记录 关于如何做到这一点,有什么提示吗 代码: /** *@NApiVersion 2.x *@NScriptType ClientScript *@NModuleScope SameA
- 获取当前记录的销售订单id
- 获取当前记录的“创建自”id
- 加载一个已保存的搜索,该搜索将搜索自定义文件中的所有条目 记录
- 使用从id创建的作为已保存搜索的筛选器
- 更新找到的自定义记录中的字段
/**
*@NApiVersion 2.x
*@NScriptType ClientScript
*@NModuleScope SameAccount
*/
定义(['N/record','N/search'],
功能(记录、当前记录、搜索){
提交后的函数(上下文){
var currentRecord=context.newRecord;
var createdFrom=currentRecord.getValue({“fieldId”:“createdFrom”});
var salesOrderId=currentRecord.getValue({“fieldId”:“id”});
var mySearch=search.load({
id:“customsearch1086”
});
var filter1=search.createFilter({
名称:'custrecord\u estimate\u id',
操作员:search.operator.IS,
值:createdFrom
});
mySearch.filters.push(filter1);
var result=mySearch.run().getRange(0,1000);
var id=新数组();
对于(变量i=0;i
您可以将record.submitFields移动到循环中,循环遍历搜索结果。请注意治理使用限制。您不需要record.load调用-请将其删除
/**
* @NApiVersion 2.x
* @NScriptType ClientScript
* @NModuleScope SameAccount
*/
define(['N/record', 'N/search'],
function (record, currentRecord, search) {
function afterSubmit(context) {
var currentRecord = context.newRecord;
var createdFrom = currentRecord.getValue({"fieldId": "createdfrom"});
var salesOrderId = currentRecord.getValue({"fieldId": "id"});
var mySearch = search.load({
id: 'customsearch1086'
});
var filter1 = search.createFilter({
name: 'custrecord_estimate_id',
operator: search.Operator.IS,
values: createdFrom
});
mySearch.filters.push(filter1);
var result = mySearch.run().getRange(0, 1000);
var ids = new Array();
for (var i=0; i < result.length; i++) {
ids.push(result[i].getValue({ name: 'id'}));
}
var gdid = parseInt(ids);
if (gdid) {
var myRecord = record.load({
type: 'customrecord352',
id: gdid,
isDynamic: true
});
record.submitFields({
"type": 'customrecord352',
"id": gdid,
"values": {
"custrecord_salesOrder_id": salesOrderId
}
});
}
else {
// Do Nothing
}
return {
afterSubmit: afterSubmit
};
}});