Поле NetSuite Client Script изменяется с использованием старых значений элементов - PullRequest
0 голосов
/ 09 ноября 2018

Я сделал простой клиентский скрипт, следуя этой логике: после добавления нового элемента или замены элемента на новый элемент валовая маржа будет автоматически рассчитана и добавлена ​​в соответствующее поле для этого элемента. У меня проблема в том, что 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
        });
    }
}

1 Ответ

0 голосов
/ 09 ноября 2018

Разобрался! Мне нужно было использовать точку входа postSourcing вместо fieldChanged ...

...