Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

netsuite inventory detail subrecord

Tags:

inventory

I'm trying to populate the Inventory Detail subrecord on line items of a sales order through scripting. The script is a user event script and will run on before submit. At this point the user has already entered line item information: ie. item, quantity, lot number (a custom select field, where the options are inventory numbers).

I use the following to populate the inventory detail subrecords:

for (var i=1; i<=numberOfLineItems; i++){
nlapiSelectLineItem('item',i);
//First get the Lot Number and Quantity
var lotNumber = nlapiGetCurrentLineItemValue('item', 'custcol_select_lot_number');
var quantity = nlapiGetCurrentLineItemValue('item', 'quantity');

var inventoryDetail=nlapiCreateCurrentLineItemSubrecord('item','inventorydetail');

inventoryDetail.selectNewLineItem('inventoryassignment');
inventoryDetail.setCurrentLineItemValue('inventorydetail', 'issueinventorynumber', lotNumber);
inventoryDetail.setCurrentLineItemValue('inventorydetail', 'quantity', quantity);
inventoryDetail.commitLineItem('inventoryassignment');
inventoryDetail.commit();

nlapiCommitLineItem('item');}

When I do this I get the following error:

Notice (SuiteScript) You must enter at least one line item for this transaction.

Does anyone have any ideas why I'm getting this error?

Thanks!

like image 665
matty77 Avatar asked Dec 30 '25 01:12

matty77


1 Answers

There are errors on lines 10 and 11. Also, in my particular case where I'm in the Customer Center, I needed to place this code in After Submit and load the record. Here is the corrected code:

for (var i=1; i<=numberOfLineItems; i++){
        SOrecord.selectLineItem('item',i);
        //First get the Lot Number and Quantity
        var lotNumber = SOrecord.getCurrentLineItemValue('item', 'custcol_select_lot_number');
        var quantity = SOrecord.getCurrentLineItemValue('item', 'quantity');
        var available = SOrecord.getCurrentLineItemValue('item','available');
        nlapiLogExecution('debug','lineNum, LotNumID, Quantity, available',i + ', ' + lotNumber + ', ' + quantity + ', ' + available);

        var inventoryDetail = SOrecord.createCurrentLineItemSubrecord('item','inventorydetail');

        inventoryDetail.selectNewLineItem('inventoryassignment');
        inventoryDetail.setCurrentLineItemValue('inventoryassignment', 'issueinventorynumber', lotNumber);
        inventoryDetail.setCurrentLineItemValue('inventoryassignment', 'quantity', quantity);
        inventoryDetail.commitLineItem('inventoryassignment');
        inventoryDetail.commit();

        SOrecord.commitLineItem('item');

    }
    nlapiSubmitRecord(SOrecord);
like image 200
matty77 Avatar answered Jan 02 '26 14:01

matty77



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!