NetSuite SuiteScript 2.0, как обновить позицию заказа клиента, которая входит в группу товаров

Я пытаюсь обновить поле "Срок" в строке позиции заказа на продажу в NetSuite. Я могу сделать это хорошо, используя UE (сценарий пользовательского события) для события beforeSubmit. Это работает, когда я нажимаю кнопку Сохранить, когда заказ клиента находится в режиме редактирования. Теперь проблема: я пытаюсь обновить поле (срок) позиции заказа на продажу ПЕРЕД нажатием кнопки "Сохранить", но нажата кнопка "ПОСЛЕ добавления" для компонентов группы элементов.

Я написал функцию и добавил к событию postSourcing(scriptContaxt), которое выполняет обновление, но работает только для элементов без инвентаря. Это не работает для групп товаров. Когда группа товаров добавляется в заказ клиента, запас (компоненты) автоматически заполняется в форме.
Кто-нибудь знает, какое событие вызывается, когда компоненты группы товаров добавляются в форму заказа на продажу?

Спасибо Крис

ОК... Дальнейшее исследование и объяснение: Это код для обновления одного файла, когда не инвентарный товар добавляется в заказ на продажу (добавление номера SKU в строку заказа на продажу):

function postSourcing(scriptContext) 
{
    setSalesOrderItemTerm(scriptContext.currentRecord);
}

function setSalesOrderItemTerm(salesorder)
{   
    var itemId = salesorder.getCurrentSublistValue({
        sublistId: 'item',
        fieldId: 'item'
    });

    if(!itemId)
        return;

    var result = search.create({
        type: search.Type.ITEM,
        columns: ['custitem_abs_item_term'],
        filters: [{name: 'internalid',operator: search.Operator.IS,values: itemId},
                  {name: 'isinactive',operator: search.Operator.IS,values: 'F'}]
        }).run().getRange({start: 0, end: 1});

    if(result.length > 0)
    {
        var term = result[0].getValue('custitem_abs_item_term');

        salesorder.setCurrentSublistValue({
            sublistId: 'item',
            fieldId: 'custcol_swe_contract_item_term_months',
            value: term
        });
    }
}

Это работает абсолютно нормально для одного предмета без инвентаря. С другой стороны, когда я пытаюсь добавить группу элементов (это отличается от KIT), поле Term (id: custcol_swe_contract_item_term_months) не обновляется из его элемента, поле Term обновляется со значением в группе элементов. FYI. Группа элементов состоит из группы элементов (заголовок группы, называемый группой), ее компонентов (другие типы элементов, например, неинвентарные элементы) и пустых элементов (называемых конечной группой -> обычно пустыми)

Поэтому, когда у вас есть группа товаров, в которой есть две не инвентарные позиции, и вы пытаетесь добавить эту группу товаров в заказ на продажу, эти две неинвентарные товары будут автоматически добавлены в заказ на продажу (вместе со строкой группы и конечной группы). Я пытаюсь выяснить, в каком случае эти два элемента без инвентаризации добавляются в заказ на продажу.

Надеюсь, теперь это стало понятнее. Спасибо Крис

1 ответ

Мой ответ ниже, также относится к этому

/questions/16854437/sozdanie-salesorder-v-netsuite-s-gruppami-tovarov/16854455#16854455 "Создание SalesOrder в NetSuite с группами товаров"

Другие вопросы по тегам