if we are trying to set the multiple line item value in Client Script (PageInt) we might face the issue like commitLine is not working
So to solve that issue we need to use the setTimeOut function
Example
function getSalesOrderLineItems(salesOrderId) {
let salesOrderFullRecord = record.load({
type: record.Type.SALES_ORDER,
id: salesOrderId,
isDynamic: true
});
let itemCount = salesOrderFullRecord.getLineCount({ sublistId: ‘item’ });
let itemDetails = [];
for (let i = 0; i < itemCount; i++) {
itemDetails.push({
item: salesOrderFullRecord.getSublistValue({ sublistId: ‘item’, fieldId: ‘item’, line: i }),
quantity: salesOrderFullRecord.getSublistValue({ sublistId: ‘item’, fieldId: ‘quantity’, line: i }),
description: salesOrderFullRecord.getSublistValue({ sublistId: ‘item’, fieldId: ‘description’, line: i }),
rate: salesOrderFullRecord.getSublistValue({ sublistId: ‘item’, fieldId: ‘rate’, line: i }),
amount: salesOrderFullRecord.getSublistValue({ sublistId: ‘item’, fieldId: ‘amount’, line: i }),
pricelevel: salesOrderFullRecord.getSublistValue({ sublistId: ‘item’, fieldId: ‘price’, line: i }),
units: salesOrderFullRecord.getSublistValue({ sublistId: ‘item’, fieldId: ‘units’, line: i }),
estimatecost: salesOrderFullRecord.getSublistValue({ sublistId: ‘item’, fieldId: ‘costestimate’, line: i }),
estimatecosttype: salesOrderFullRecord.getSublistValue({ sublistId: ‘item’, fieldId: ‘costestimatetype’, line: i }),
});
}
return itemDetails;
}
setTimeout(() => {
for (let i = 0; i < itemDetails.length; i++) {
let detail = itemDetails[i];
log.debug(‘Adding item detail’, detail);
try {
currentRecord.selectNewLine({ sublistId: ‘recmachcustrecord_jj_proforma_invoices_items’ });
currentRecord.setCurrentSublistValue({ sublistId: ‘recmachcustrecord_jj_proforma_invoices_items’, fieldId: ‘custrecord_jj_line_item_items’, value: detail.item });
currentRecord.setCurrentSublistValue({ sublistId: ‘recmachcustrecord_jj_proforma_invoices_items’, fieldId: ‘custrecord_jj_line_item_quantity’, value: detail.quantity });
currentRecord.setCurrentSublistValue({ sublistId: ‘recmachcustrecord_jj_proforma_invoices_items’, fieldId: ‘custrecord_jj_line_item_rate’, value: detail.rate });
currentRecord.setCurrentSublistValue({ sublistId: ‘recmachcustrecord_jj_proforma_invoices_items’, fieldId: ‘custrecord_jj_line_item_amount’, value: detail.amount });
currentRecord.setCurrentSublistValue({ sublistId: ‘recmachcustrecord_jj_proforma_invoices_items’, fieldId: ‘custrecord_jj_line_item_description’, value: detail.description });
currentRecord.setCurrentSublistValue({ sublistId: ‘recmachcustrecord_jj_proforma_invoices_items’, fieldId: ‘custrecord_jj_line_item_price_level’, value: detail.pricelevel });
currentRecord.setCurrentSublistValue({ sublistId: ‘recmachcustrecord_jj_proforma_invoices_items’, fieldId: ‘custrecord_jj_line_item_units’, value: detail.units });
currentRecord.setCurrentSublistValue({ sublistId: ‘recmachcustrecord_jj_proforma_invoices_items’, fieldId: ‘custrecord_jj_line_item_cost_estimate_ty’, value: detail.estimatecosttype });
currentRecord.setCurrentSublistValue({ sublistId: ‘recmachcustrecord_jj_proforma_invoices_items’, fieldId: ‘custrecord_jj_line_item_est_extend_cost’, value: detail.estimatecost });
currentRecord.commitLine({ sublistId: ‘recmachcustrecord_jj_proforma_invoices_items’ });
log.debug(‘Item added successfully’, detail);
} catch (e) {
log.error(‘Error adding item detail’, ‘Detail: ‘ + JSON.stringify(detail) + ‘ Error: ‘ + e.message);
}
}
}, 2000);
without using setTimeout it will not work