Создание клиентского депозита из заказа клиента Suitelet 2.0 - PullRequest
0 голосов
/ 03 ноября 2018

Мне нужно создать депозит клиента из заказа клиента в функции UserS AfterSubmit в SuiteScript 2.0, мне нужно связать заказ клиента в поле Клиентский депозит salesorder. Я получаю следующую ошибку:

"type":"error.SuiteScriptError","name":"INVALID_FLD_VALUE","message":"You have entered an Invalid Field Value 123456 for the following field: salesorder",

Также обратите внимание, что я не вижу SO в этом поле в графическом интерфейсе, когда я создаю клиентский депозит без установки этого поля. Я работаю над автоматизацией ручного процесса создания заказа на продажу и выбора «Сохранить и создать депозит» в раскрывающемся списке рядом с кнопкой «Сохранить».

Есть идеи?

function afterSubmit(context) {
    // Only run on creation of Sales Orders
    if (context.type !== context.UserEventType.CREATE) return;
    var newSO = context.newRecord;
    var sales_order = newSO.id
    var newDeposit = record.create({
        type: record.Type.CUSTOMER_DEPOSIT,
        isDynamic: true,
        defaultValues: {
            entity: customer
        }
    })
    if (sales_order) {
        newDeposit.setValue({
            fieldId: 'salesorder',
            value: sales_order
        })
    }
}

Ответы [ 2 ]

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

В SS1.0 путь следующий. soId - внутренний идентификатор заказа клиента:

var depRec = nlapiCreateRecord('customerdeposit', { entity: soRec.getFieldValue('entity'), salesorder: soId });

Поскольку вы находитесь в заказе на продажу после отправки события, которое вы ограничиваете типом == 'create', вы должны иметь newSO, поэтому должно работать следующее:

function afterSubmit(context) {
    // Only run on creation of Sales Orders
    if (context.type !== context.UserEventType.CREATE) return;
    var newSO = context.newRecord;
    var newDeposit = record.create({
        type: record.Type.CUSTOMER_DEPOSIT,
        isDynamic: true,
        defaultValues: {
            entity: newSO.getValue({fieldId:'entity'}),
            salesorder: newSO.id
        }
    });

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

Попробуйте смоделировать, что делает ваш скрипт через пользовательский интерфейс. Можете ли вы выбрать заказ клиента при создании депозитов клиентов? Если вы не можете выбрать Заказ клиента в пользовательском интерфейсе, большую часть времени вы не сможете сделать это с помощью скрипта.

...