2016-04-05 14 views
0

Ich kann Werte für Auswahl, Textfeld und usw. übergeben, aber nicht für Mehrfachauswahl. Ich kann Werte für die Mehrfachauswahl aktualisieren. Aber ich kann keinen Datensatz erstellen, indem ich Werte für die Mehrfachauswahl übergebe.Wie übergeben Sie Werte für benutzerdefinierte Multi-Select-Felder mit RESTlet in Netsuite?

Dies ist der Code:

$datastring = array(
     "gu_action"=> "create", 
     "recordtype"=>"vendor", 
     "companyname"=>"Jerald Vend", 
     'subsidiary'=>1, 
     'custentity36'=>1 
); 

custentity36 ist Mehrfachauswahl Kontrolle. Es ist Label ist Kurs

wenn ich Einzelwert übergeben, funktioniert es gut. wenn ich versuche, mehrere Werte für Multi wie der Code unten wählen zu passieren, ich Störung erhalte wie „Bitte geben Sie Wert (e) für: Course“

$datastring = array(
     "gu_action"=> "create", 
     "recordtype"=>"vendor", 
     "companyname"=>"Jerald Vend", 
     'subsidiary'=>1, 
     'custentity36'=>array(1,3) 
); 

Der Kodex ist: https://gist.githubusercontent.com/ganeshprabhus/a3ebd67712913df3de29/raw/3a6df6a3af8642fceacb3a4b8e519ad96a054e69/ns_script.js

Antwort

5

Der Wert Sie übergeben ist im richtigen Format. In diesem Fall sollte der RESTlet-Code kompatibel mit dem Multiselect-Feld sein. Das Feld Sollwert api, die in der Restlet verwendet wird, sollte

nlapiSetFieldValues() 

sein Dies ist der api verwendet werden kann, Multiselect-Feld-Wert einzustellen. Laut der GitHub-Referenz, die Sie geteilt haben. unter der Funktion create_record

/********************** Creation *********************************/ 
function create_record(datain) { 
    var err = new Object(); 

    // Validate if mandatory record type is set in the request 
    if (!datain.recordtype) { 
     err.status = "Failed"; 
     err.message = "Missing recordtype"; 
     return err; 
    } 

    var record = nlapiCreateRecord(datain.recordtype); 

    for (var fieldname in datain) { 
     if (datain.hasOwnProperty(fieldname)) { 
      if (fieldname != 'recordtype' && fieldname != 'id') { 
       var value = datain[fieldname]; 
       // ignore other type of parameters 
       if (value && typeof value != 'object') { 

record.setFieldValue (Feldname, value);

} 
      } //recordtype and id checking ends 
     } 
    } //for ends 

    var recordId = nlapiSubmitRecord(record); 
    nlapiLogExecution('DEBUG', 'id=' + recordId); 

    var nlobj = nlapiLoadRecord(datain.recordtype, recordId); 
    return nlobj; 
} 

Das sollte zitierte Code

record.setFieldValues(fieldname,value) // fieldname : custentity36 , value : 1,3 
+0

Dank Frederick, sein ich in sonst verwendet setFieldValues. Ich habe den Code auch in GitHub aktualisiert. – Prabhu

+0

https://gist.githubusercontent.com/ganeshprabhus/a3ebd67712913df3de29/raw/eb2a67c1989181a2b0646083af0913070ad520ee/ns_script.js – Prabhu

+0

Danke Prabhu für Ihre Kommentare –