CommitLine is not Working when Setting the Line Item in Sublist

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

Leave a comment

Your email address will not be published. Required fields are marked *