Items sublist // inbound shipment
Error message:
/**
* @NApiVersion 2.1
* @NScriptType UserEventScript
*/
define([‘N/record’, ‘N/search’, ‘N/log’],
/**
* @param{record} record
* @param{recordContext} recordContext
*/
(record,search, log) => {
/**
* Defines the function definition that is executed before record is loaded.
* @param {Object} scriptContext
* @param {Record} scriptContext.newRecord – New record
* @param {string} scriptContext.type – Trigger type; use values from the context.UserEventType enum
* @param {Form} scriptContext.form – Current form
* @param {ServletRequest} scriptContext.request – HTTP request information sent from the browser for a client action only.
* @since 2015.2
*/
const beforeSubmit = (context) => {
log.debug(‘beforeLoad Triggered’, ‘Trigger type: ‘ + context.type);
if (context.type !== context.UserEventType.CREATE && context.type !== context.UserEventType.EDIT && context.type !== context.UserEventType.VIEW )
return;
var newRecord = context.newRecord;
var itemCount = newRecord.getLineCount({ sublistId: ‘items’ });
log.debug(‘Item Count’, ‘Count: ‘ + itemCount);
for (var i = 0; i < itemCount; i++) {
var itemId = newRecord.getSublistValue({ sublistId: ‘items’, fieldId: ‘itemid’, line: i });
var item = getItemData(itemId);// Function to fetch date from item record
//var itemQty=getItemData(itemId);
try {
if (item) {
newRecord.setSublistValue({
sublistId: ‘items’,
fieldId: ‘custrecord_commodity_code’, // Custom field on inbound shipment item sublist
line: i,
value: item.itemData,
ignoreFieldChange: true,
});
log.debug(‘Set Sublist Value’, `Successfully set itemData for line ${i}`);
log.debug(‘itemData’,itemData); }
newRecord.setSublistValue({
sublistId: ‘items’,
fieldId: ‘custrecord_qty_carton’, // Custom field on inbound shipment item sublist
line: i,
value: item.itemQty,
ignoreFieldChange: true,
});
log.debug(‘Set Sublist Value’, `Successfully set itemQty for line ${i}`);
log.debug(‘itemQty’,itemQty);
}
catch(e){log.error(‘setSublistValue’, e.message);}
log.debug(‘Line Item ID’, ‘ID: ‘ + itemId);
}
}
/**
* Fetches the commodity code and additional field from the item record.
* @param {string} itemId – The ID of the item.
* @returns {Object} – An object containing the commodity code and additional field.
*/
//helping function
function getItemData(itemId) {
// search trough the item record
var itemRecord =search.lookupFields({
type:search.Type.INVENTORY_ITEM,
id:itemId,
columns:[
‘custitem_commodity_code’,
‘custitem_qty_carton’
]
});
log.debug(‘itemRecord’, itemRecord);
var itemData=itemRecord.custitem_commodity_code;
var itemQty=itemRecord.custitem_qty_carton;
return {itemData,itemQty};
}
/**
* Defines the function definition that is executed after record is submitted.
* @param {Object} scriptContext
* @param {Record} scriptContext.newRecord – New record
* @param {Record} scriptContext.oldRecord – Old record
* @param {string} scriptContext.type – Trigger type; use values from the context.UserEventType enum
* @since 2015.2
*/
return {
beforeSubmit :beforeSubmit
};
});



