Netsuite — установка значения позиции для отдела

Я пытаюсь сделать пользовательское массовое обновление в netsuite с помощью JS-скрипта, но это не работает.

Код:

function updateDepartment(rec_type, rec_id)
{
  var transaction = nlapiLoadRecord(rec_type, rec_id);
  transaction.setLineItemValue ('item','department', nlapiGetContext().getSetting('SCRIPT','custscript_dept_update'));
  nlapiSubmitRecord(transaction, false, true);
    }

person Krunal Patel    schedule 30.12.2015    source источник


Ответы (1)


nlobjRecord.setLineItemValue нуждается в номере строки. Вам нужно будет сделать что-то вроде:

var dept = nlapiGetContext().getSetting('SCRIPT','custscript_dept_update');
for(var i = transaction.getLineItemCount('item'); i> 0; i--){
  transaction.setLineItemValue('item', 'department', i, dept);
}
person bknights    schedule 30.12.2015
comment
Здравствуйте, я использовал приведенный ниже код, он работает, но не меняет отдел. function updateDepartment(rec_type, rec_id) { var transaction = nlapiLoadRecord(rec_type, rec_id); var dept = nlapiGetContext().getSetting('SCRIPT','custscript_dept_update'); for(var i = transaction.getLineItemCount('item'); i> 0; i--){ transaction.setLineItemValue('item', 'department', i, dept); } } - person Krunal Patel; 30.12.2015
comment
Вам все еще нужно отправить запись, которую вы загрузили; у вас есть nlapiSubmitRecord в вашем вопросе, но я не вижу его в вашем комментарии. - person erictgrubaugh; 30.12.2015
comment
Обратите внимание, что позиции имеют индекс 1, а не 0. bknights прав, но просто чтобы указать на это - не очевидно, когда все остальное в Javascript основано на 0. - person Chris Johnson; 18.02.2016