Как получить и настроить адрес доставки транзакции в SuiteScript? - PullRequest
0 голосов
/ 28 февраля 2019

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

function beforeSubmit(context) {
    var ifNum = 'N/A';
    if (context.newRecord.id) ifNum = context.newRecord.id;

    var recordPhone = context.newRecord.getValue('phone');
    var phoneValid = checkPhone(recordPhone);

    if (!phoneValid) {
        try {
            var correctedPhone = correctPhone(recordPhone);
            var shipaddress = context.newRecord.getSubrecord('shippingaddress')
            shipaddress.setValue({fieldId: 'shipphone', value: correctedPhone});

            log.debug('Set phone to: ' + correctedPhone + ' from ' + recordPhone);
        }
        catch(e) {
            var errorStr = 'Error setting IF #' + ifNum + ' phone value';
            log.error(errorStr, e.message);
            throw error.create({
                name: errorStr,
                message: e.message,
                notifyOff: true
            });
        }
    }
}

1 Ответ

0 голосов
/ 28 февраля 2019

shipphone - это поле уровня тела транзакции для транзакций, в которых оно есть (заказ на продажу, выполнение изделия и т. Д.)

поле подзаписи адреса, из которого оно получено, - addrphone, поэтому ваш код должен бытьбольше похоже:

var recordPhone = context.newRecord.getValue({fieldId:'shipphone'});
...
  context.newRecord.setValue({fieldId:'shipphone', value:correctedPhone}); // for this transaction
  shipaddress.setValue({fieldId: 'addrphone', value: correctedPhone}); // corrected for future uses of this address.
...