Martin Horacek
06/09/2022, 11:52 AMMike Robbins
06/09/2022, 12:13 PMlet recordHasChanged = false;
let retryCount = 0;
do {
try {
const salesOrderRec = record.load({
type: record.Type.SALES_ORDER,
id: context.key,
isDynamic: true,
});
context.values.forEach((item) => {
const itemObj = JSON.parse(item);
const lineNumber = salesOrderRec.findSublistLineWithValue({
sublistId: 'item',
fieldId: 'line',
value: itemObj.line
});
salesOrderRec.selectLine({
sublistId: 'item',
line: lineNumber,
});
salesOrderRec.setCurrentSublistValue({
sublistId: 'item',
fieldId: 'job',
value: itemObj.projectId,
});
salesOrderRec.commitLine({
sublistId: 'item',
});
});
salesOrderRec.save();
} catch (ex) {
recordHasChanged = ex.name === 'RCRD_HAS_BEEN_CHANGED';
if (recordHasChanged) {
log.error({
title: 'Error updating SO',
details: `Attempt ${++retryCount}: The sales order was changed while trying to update it. Retrying...`
});
}
// Rethrow if this is not the error we're looking for or the retryCount has been exceeded
if (!recordHasChanged || retryCount >= 5) {
// Perform some cleanup work here if needed.
throw ex;
}
}
} while (recordHasChanged && retryCount < 5)
alien4u
06/09/2022, 12:27 PMSeth Duda
06/09/2022, 1:35 PMMartin Horacek
06/09/2022, 4:33 PMMartin Horacek
06/09/2022, 4:33 PMalien4u
06/09/2022, 4:37 PM