Я сделал простой клиентский скрипт, следуя этой логике: после добавления нового элемента или замены элемента на новый элемент валовая маржа будет автоматически рассчитана и добавлена в соответствующее поле для этого элемента. У меня проблема в том, что fieldChanged дает мне старые (или неопределенные) значения подсписка для этого элемента, как будто он еще не изменился. Есть ли способ сообщить NetSuite, что после изменения элемента следует дождаться обновления соответствующих значений его подсписка, прежде чем заполнять значения полем FieldChanged? Спасибо!
function fieldChanged(context) {
var currentRecord = context.currentRecord;
var sublistName = context.sublistId;
var sublistFieldName = context.fieldId;
var line = context.line;
if (sublistName === 'item' && sublistFieldName === 'item'){
var costrateestimate = currentRecord.getCurrentSublistValue({sublistId: sublistName,fieldId: 'costestimaterate'});
var amount = currentRecord.getCurrentSublistValue({sublistId: sublistName,fieldId: 'amount'});
var quantity = currentRecord.getCurrentSublistValue({sublistId: sublistName,fieldId: 'quantity'});
var grossPerc = Math.round((1-(costrateestimate/amount*quantity))*100);
log.debug("Gross Margin Calculated = 100 - ("+costrateestimate+" / "+amount+" * "+currentRecord.getCurrentSublistValue({sublistId: sublistName,fieldId: 'quantity'})+") = "+grossPerc+"%");
currentRecord.setCurrentSublistValue({
sublistId: sublistName,
fieldId: 'custcol_gross_margin_perc',
value: grossPerc
});
}
}