在 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!')
    }

根据我的经验,看起来很标准。实际上,你的代码比我平时遇到的代码(通常是咨询公司写的)干净多了。我建议让你的同事教你他们的意思,而不是仅仅说你做错了。 ;)

我看到的唯一问题是您可能希望将加载和保存移动到循环之外。现在您将在每次迭代时加载和保存记录。通常不需要或不需要(使用更多的治理)。