Ошибка Netsuite при создании записи о депозите клиента

Я пытаюсь создать запись о депозите клиента в Netsuite, используя suitescript 1.0.

Исходный код, который у меня был, отлично работал до тех пор, пока релиз 2016.2 не сломал его.

Обновление нарушило его, поскольку оно переопределило бы значение, указанное в поле платежа, и мгновенно сделало бы его полной суммой заказа на продажу из идентификатора заказа на продажу. Это не то, что нам нужно.

Исходный код

function createDeposit(request,response)
{
    var record = nlapiCreateRecord('customerdeposit');  
        record.setFieldValue('salesorder','1260');
        record.setFieldValue('customer','1170');
        record.setFieldValue('payment','100');
        record.setFieldValue('account','2');
        record.setFieldValue('memo','this is a test');
        deposit = nlapiSubmitRecord(record,true,false);
        response.write(deposit);
}

После того, как группа пользователей Netsuite в ответе предложила мне использовать атрибуты {recordmode:'dynamic'}, я получаю странную ошибку ..

Тестовая функция замены, которая не работает

function createDeposit(request,response)
{
    var record = nlapiCreateRecord('customerdeposit',{recordmode:'dynamic'});   
        record.setFieldValue('salesorder','1260');
        record.setFieldValue('customer','1170');
        record.setFieldValue('payment','100');
        record.setFieldValue('account','2');
        record.setFieldValue('memo','this is a test');
        deposit = nlapiSubmitRecord(record,true,false);
        response.write(deposit);
}

Сообщение об ошибке, которое я получаю сейчас:

Недопустимый ссылочный код торгового представителя 1260 для клиента.

Я не понимаю, как теперь он считается NULL, когда значение жестко закодировано в этом тестовом сценарии после того, как я применил значение {recordmode: 'dynamic'}.

Я пробовал множество разных вещей, но, поскольку у меня нет поддержки Netsuite, я просто не могу понять, что это такое.

Любые намеки, предложения будут приняты с благодарностью, так как я был на этом несколько дней


person user125264    schedule 12.10.2016    source источник


Ответы (1)


Когда вы используете динамический, порядок, в котором вы устанавливаете поля, имеет значение. Поэтому, когда вы устанавливаете заказ на продажу до настройки клиента, вы фактически получаете сообщение об ошибке «Недействительный ссылочный ключ 1260 продавца для клиента пусто»

Что я делаю, так это создаю клиентский депозит, например:

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

Также кажется, что требуется установка флага неразмещенных средств (но не всегда по какой-то причине), поэтому, поскольку вы указываете идентификатор учетной записи, также сделайте это:

depRec.setFieldValue('undepfunds',  'F');
person bknights    schedule 12.10.2016