Als Alternative zu Rusty Shackles gibt es eine undokumentierte Unterliste, auf die in den Lieferantenunterlagen der Tochtergesellschaften zugegriffen werden kann. Diese Unterliste hat den Namen submachine
. Aus irgendeinem Grund muss auf sie zugegriffen werden, indem record.selectLineItem, record.setCurrentLineItemValue und record.commitLineItem im Gegensatz zu den API-Funktionen record.setLineItemValue verwendet werden.
Zum Beispiel habe ich ein Massenupdate-Skript, das verwendet wurde, um eine Tochtergesellschaft von jedem Anbieter in der Massenaktualisierungssuche zu ersetzen. Hier ist der Code Probe
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);
}
Damit eröffnet die Möglichkeit, eigene geplante Skript zu schreiben, die eine Datei verarbeitet und aktualisiert die Tochtergesellschaft Liste, aus welchem Grund eine CSV-Upload nicht verwendbar ist.
Großartig, danke für die Probe. – MG2016