NetSuite Создать транспортный заказ из заказа клиента - PullRequest
0 голосов
/ 09 января 2019

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

/**
***************** ALEM ********************
* After Submit User Event script running on Sales Orders. Generates a TO.

*   Version    Date            Author           Remarks
*   1.0         9 Jan          madams          Initial Create
*/

/**
* @NApiVersion 2.0
* @NScriptType UserEventScript
* @NModuleScope Public
*
*/

define(['N/record',], function (record) {
  function afterSubmit(context) {
    if(context.type == 'delete'){
        log.debug('Exiting script', '...');
        return;
    }
    try{
    var so = record.load({
        type:'salesorder',
        id:context.newRecord.id
    });
    var so_items = so.getLineCount({sublistId:'item'});


    // Create new Transfer Order if Record is On Create.
     var to_record = record.create({
        type:'transferorder',
        isDynamic:true
    });

    to_record.setValue({fieldId:'customform', value:136});
    to_record.setValue({fieldId:'class', value:so.getValue('class')});
    to_record.setValue({fieldId:'transferlocation', 
value:so.getValue('location')});

    setLineItemsOnTO(so_items, to_record, so);

    to_record.setValue({fieldId:'custbody_related_record', 
value:context.newRecord.id});
    so.setValue({fieldId:'custbody_related_record', 
value:to_record.save()});
    so.setValue({fieldId:'orderstatus',value:'B'});
    so.save({ignoreMandatoryFields:true});
    } catch(e){
        log.debug('Error Loading Record' + context.newRecord.id, e);
        return;
    }

}
return {
    afterSubmit: afterSubmit
}

function setLineItemsOnTO(so_items, to_record, so){
     for(var i=0; i<so_items; i++){
        to_record.selectNewLine({sublistId:'item'});
        to_record.setCurrentSublistValue({
            sublistId:'item',
            fieldId:'item',
            value:so.getSublistValue({
                sublistId:'item',
                fieldId:'item',
                line:i
            })
        });
        to_record.setCurrentSublistValue({
            sublistId:'item',
            fieldId:'quantity',
            value:so.getSublistValue({
                sublistId:'item',
                fieldId:'quantity',
                line:i
            })
        });
        to_record.commitLine({sublistId:'item'});
    }
}

});

1 Ответ

0 голосов
/ 09 января 2019

NetSuite импортировал скрипт как SuiteScript 2.0? Вероятно, он импортировал скрипт как SS1.0.

Блок комментариев, содержащий @NApiVersion 2.0, должен быть первым блоком комментариев в файле. NetSuite ищет этот блок только в верхней части файла для идентификации сценариев SS2.0.

...