2016-12-17 2 views
3

Ich habe eine Suche in Netsuite mit Suitescript 1.0 für die Suche nach einem bestimmten "Konto" mit seiner Kontonummer erstellt. Wenn ich die folgende Skriptdatei speichere, wird in der Zeile "filters [0]" im folgenden Code ein Fehler angezeigt: "acctnumber ist keine gültige interne ID.". Ich bin neu in Netsuite und möchte wissen, warum der Fehler angezeigt wird, und die Lösung für das gleiche. Unten ist der folgende Codeabschnitt geschrieben, in dem der Fehler aufgetreten ist.Anzeige von "ist keine gültige interne ID" in Netsuite Suitescript 1.0 beim Erstellen einer Suche auf einem bestimmten Datensatz

function COGSAcnt() { 
    var cOGSAcntNumber = '50001'; 

    var acntNo; 
    var filters = new Array(); 
    filters[0] = new nlobjSearchFilter('acctnumber', null, 'startswith', cOGSAcntNumber); 

    var columns = new Array(); 
    columns[0] = new nlobjSearchColumn('internalid'); 

    var acntSearch = nlapiSearchRecord('account', null, filters, columns); 
    if (acntSearch != null) { 
    for (x=0; x<acntSearch.length; x++) { 
     acntNo = ITMSearch[x].getValue('internalid'); 
    } 
    } 
    nlapiLogExecution('debug', 'acntNo', acntNo); 
    return acntNo; 
} 

HINWEIS: Ich möchte, dass die Filter acctnumber (Account Number) zu sein, und dass die Verwendung würde die InternalID des Kontos in NetSuite abrufen möchten.

+0

Manchmal ist das die ID unterscheidet sich von der internen ID so einfach überprüfen. Wenn Sie nur einen Filter und eine Spalte haben, müssen Sie keine Arrays für sie erstellen. – VicDid

Antwort

2

Hier kann NS etwas verwirrend sein. Wenn Sie sich den NS Record Browser ansehen (http://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2016_2/script/record/account.html), schauen Sie unter den Filter Abschnitt. Kontonummer (acctnumber) ist nicht da. Zahl (Nummer) ist jedoch der Filter.

versuchen, den Code Umschreiben Nummer zu verwenden, anstatt

+0

Vielen Dank @TMann für die Beseitigung dieser Verwirrung. Die Verwendung von 'Nummer' hat perfekt funktioniert. –

2
function COGSAcnt() { 
var cOGSAcntNumber = '50001'; 

var acntNo = []; 
var filters = new nlobjSearchFilter('number', null, 'startswith', cOGSAcntNumber); 

var acntSearch = nlapiSearchRecord('account', null, filters, columns); 
if (acntSearch != null) { 
for (x=0; x<acntSearch.length; x++) { 
    acntNo.push(ITMSearch[x].getId(); 
} 
} 

return acntNo; 
} 
+0

Vielen Dank. Das Ersetzen von "acctnumber" durch "number" im folgenden Code hat perfekt funktioniert. –

Verwandte Themen