В качестве альтернативы Rusty Shackles есть недокументированный подписок, доступный для записей поставщиков для дочерних компаний. Этот подписок имеет имя submachine
. По какой-то причине он должен быть доступен с помощью record.selectLineItem, record.setCurrentLineItemValue и record.commitLineItem в отличие от функций API record.setLineItemValue.
Например, у меня есть сценарий массового обновления, который использовался для замены дочерней компании у каждого поставщика при массовом поиске обновлений. Вот пример кода
function massUpdate(recType, recId) {
var context = nlapiGetContext();
var subToRemove = context.getSetting('SCRIPT', 'custscript_subsidiary_to_remove');
var subToReplace = context.getSetting('SCRIPT', 'custscript_replacement_sub');
var record = nlapiLoadRecord('vendor', recId);
var lineCount = record.getLineItemCount('submachine');
nlapiLogExecution('DEBUG', 'lineCount = ' + lineCount)
if (lineCount > 0){
for (var i = 1; i <= lineCount; i++){
record.selectLineItem('submachine', i);
var sub = record.getCurrentLineItemValue('submachine', 'subsidiary')
nlapiLogExecution('DEBUG', i, sub);
if (sub == subToRemove){
record.setCurrentLineItemValue('submachine', 'subsidiary', subToReplace);
record.commitLineItem('submachine');
break;
}
}
}
nlapiSubmitRecord(record);
}
Так что открывает возможность написания собственного запланированный скрипта, который обрабатывает файл и обновляет вспомогательный список, по какому-либо причине загрузка CSV является не пригодной к использованию.
Отлично, спасибо за образец. – MG2016