在 Suitescript 2.0 中是否还有其他设置行值的方法?
Is there any other way of setting line values in Suitescript 2.0?
我从自定义记录的行中制作了 JSON 数据,然后我在加载它之后在另一个记录(机会)的行中设置它的值。
听学长说循环加载记录是不对的。那么,还有其他更有效的方法吗?
我的Suitelet脚本代码如下:
JSON 数据:[ { "item": "35", "contractPrice": "321.00" }, { "item": "36", "contractPrice": "123.00" } ]
for (var ii = 0; ii < itemArray.length; ii++) {
var oppRec = record.load({ type: 'opportunity', id: oppRef });
var qtyValue = oppRec.getSublistValue({
sublistId: 'item',
fieldId: 'quantity',
line: ii
});
log.debug('qtyValue: ' + ii, qtyValue)
oppRec.setSublistValue({
sublistId: 'item',
fieldId: 'rate',
line: ii,
value: itemArray[ii].contractPrice
});
oppRec.setSublistValue({
sublistId: 'item',
fieldId: 'custcol_rate_updated',
line: ii,
value: true
});
oppRec.save({ enableSourcing: true, ignoreMandatoryFields: true });
log.debug('COMPLETED', 'Opportunity line('+ii+') updated!')
}
根据我的经验,看起来很标准。实际上,你的代码比我平时遇到的代码(通常是咨询公司写的)干净多了。我建议让你的同事教你他们的意思,而不是仅仅说你做错了。 ;)
我看到的唯一问题是您可能希望将加载和保存移动到循环之外。现在您将在每次迭代时加载和保存记录。通常不需要或不需要(使用更多的治理)。
我从自定义记录的行中制作了 JSON 数据,然后我在加载它之后在另一个记录(机会)的行中设置它的值。 听学长说循环加载记录是不对的。那么,还有其他更有效的方法吗?
我的Suitelet脚本代码如下:
JSON 数据:[ { "item": "35", "contractPrice": "321.00" }, { "item": "36", "contractPrice": "123.00" } ]
for (var ii = 0; ii < itemArray.length; ii++) {
var oppRec = record.load({ type: 'opportunity', id: oppRef });
var qtyValue = oppRec.getSublistValue({
sublistId: 'item',
fieldId: 'quantity',
line: ii
});
log.debug('qtyValue: ' + ii, qtyValue)
oppRec.setSublistValue({
sublistId: 'item',
fieldId: 'rate',
line: ii,
value: itemArray[ii].contractPrice
});
oppRec.setSublistValue({
sublistId: 'item',
fieldId: 'custcol_rate_updated',
line: ii,
value: true
});
oppRec.save({ enableSourcing: true, ignoreMandatoryFields: true });
log.debug('COMPLETED', 'Opportunity line('+ii+') updated!')
}
根据我的经验,看起来很标准。实际上,你的代码比我平时遇到的代码(通常是咨询公司写的)干净多了。我建议让你的同事教你他们的意思,而不是仅仅说你做错了。 ;)
我看到的唯一问题是您可能希望将加载和保存移动到循环之外。现在您将在每次迭代时加载和保存记录。通常不需要或不需要(使用更多的治理)。