How do I set purchase price to vendor sublist on i...
# general
t
How do I set purchase price to vendor sublist on item record while running in schedule workflow and workflow action script? I used below sample code but it's not setting the purchase price to vendor sublist record. But I try to load the record and save in Workflow action script it's working as expected. However https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4460429414.html says that "you can't use record.Record.save()".
Copy code
var VENDOR_ID = '1954';
    var VENDOR_CURRENCY_ID = '1';
    var PURCHASE_PRICE = '4.5';

    function onAction(context) {
      var newRecord = context.newRecord;
      var recordType = newRecord.type;
      var recordId = newRecord.id;

      // When we try to load and save the record then it works as expected and set the purchase price to vendor sublist.
      // var itemRecord = record.load({
      //   type: recordType,
      //   id: recordId
      // });

      // var vendorSublistLineCount = itemRecord.getLineCount({ sublistId: 'itemvendor' });
      var vendorSublistLineCount = newRecord.getLineCount({ sublistId: 'itemvendor' });

      log.debug({
        title: 'vendorSublistLineCount',
        details: { vendorSublistLineCount: vendorSublistLineCount }
      });

      // var purchasePriceSubRecord = itemRecord.getSublistSubrecord({
      //   sublistId: 'itemvendor',
      //   fieldId: 'itemvendorprice',
      //   line: 0
      // });

      var purchasePriceSubRecord = newRecord.getSublistSubrecord({
        sublistId: 'itemvendor',
        fieldId: 'itemvendorprice',
        line: 0
      });

      log.debug({
        title: 'purchasePriceSubRecord',
        details: { purchasePriceSubRecord: purchasePriceSubRecord }
      });

      // Setting price to purchase price subrecord's sublist.
      purchasePriceSubRecord.setSublistValue({
        sublistId: 'itemvendorpricelines',
        fieldId: 'vendorcurrency',
        line: 0,
        value: VENDOR_CURRENCY_ID
      });

      purchasePriceSubRecord.setSublistValue({
        sublistId: 'itemvendorpricelines',
        fieldId: 'vendorprice',
        line: 0,
        value: PURCHASE_PRICE
      });

      log.debug({
        title: 'purchasePriceSubRecord after setting price',
        details: { purchasePriceSubRecord: purchasePriceSubRecord }
      });

      log.audit({
        title: 'Set Vendor Purchase Price: updated',
        details: { recordId: recordId, vendorId: VENDOR_ID, price: PURCHASE_PRICE }
      });

      // itemRecord.save({
      //   ignoreMandatoryFields: true
      // });
      return 'T';
    }