netsuite
Inline-Bearbeitung mit SuiteScript
Suche…
Einführung
Durch die Inline-Bearbeitung können Benutzer die Daten für einen bestimmten Datensatz sehr schnell ändern und aktualisieren, ohne den gesamten Datensatz auf eine Seite laden zu müssen, das Formular zu bearbeiten und dann den Datensatz zu speichern.
NetSuite-Entwickler verfügen über eine entsprechende Funktion namens submitFields
. Die submitFields
Funktionalität wird durch die vorgesehenen nlapiSubmitField
globale Funktion in SuiteScript 1,0 und der N/record#submitFields
Verfahren in SuiteScript 2.0.
Syntax
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue);
- nlapiSubmitField (recordType, recordId, fieldIds, fieldValues);
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue, doSourcing);
Parameter
Parameter | Einzelheiten |
---|---|
Aufnahmetyp | String - Die interne ID des zu aktualisierenden Datensatztyps |
recordId | String oder Number - Die interne ID des Datensatzes, der aktualisiert wird |
fieldIds | String oder String[] - Die interne ID (s) der zu aktualisierenden Felder |
Feldwerte | any oder any[] - Die entsprechenden Werte, die in den angegebenen Feldern festgelegt werden |
doSourcing | Boolean - Gibt an, ob abhängige Werte bei der Übermittlung der Datensätze bereitgestellt werden sollen Standardeinstellung ist " false |
Bemerkungen
Die Funktion submitFields
ist eine lookupFields
Funktion lookupFields
.
Leistung und Einschränkungen
submitFields
wesentlich schneller und verwendet weniger Governance als dieselben Änderungen vorzunehmen, indem der vollständige Datensatz submitFields
und übermittelt wird.
Mehrere Felder können gleichzeitig zu den gleichen Kosten wie das Aktualisieren eines einzelnen Felds aktualisiert werden. Aktualisieren von mehr Feldern mit submitFields
keine höheren Governance Kosten anfallen.
Beachten Sie jedoch, dass nur bestimmte Felder in jedem Datensatztyp inline editierbar sind und dass die Leistungseinsparungen nur für diese inline editierbaren Felder gelten. Wenn Sie die Verwendung submitFields
Funktion auf jeder nicht-inline-bearbeitbaren Feld, wird das Feld korrekt aktualisiert werden, aber hinter den Kulissen werden NetSuite tatsächlich laden und den Rekord einreichen, so dass mehr Zeit nehmen und Governance verwenden. Sie können bestimmen , ob ein Feld mit Bezug auf die „nlapiSubmitField“ Spalte in dem Inline-editierbar Records Browser .
submitFields
Funktion submitFields
beschränkt sich auch auf die Body- Felder eines Datensatzes. Wenn Sie die Daten der Unterliste ändern müssen, müssen Sie den Datensatz laden, um die Änderungen vorzunehmen, und dann den Datensatz übermitteln.
Verweise:
- NetSuite-Hilfe: "Inline-Bearbeitung und SuiteScript - Übersicht"
- NetSuite Help: "Inline-Bearbeitung mit nlapiSubmitField"
- NetSuite Help: "Konsequenzen der Verwendung von nlapiSubmitField für nicht bearbeitbare Inline-Felder"
- NetSuite Help: "Feld-APIs"
- NetSuite-Hilfe: "record.submitFields (Optionen)"
[1.0] Senden Sie ein einzelnes Feld
/**
* A SuiteScript 1.0 example of using nlapiSubmitField to update a single field on a related record
*/
// From a Sales Order, get the Customer ID
var customerId = nlapiGetFieldValue("entity");
// Set a comment on the Customer record
nlapiSubmitField("customer", customerId, "comments", "This is a comment added by inline editing with SuiteScript.");
[1.0] Mehrere Felder senden
/**
* A SuiteScript 1.0 example of using nlapiSubmitField to update multiple fields on a related record
*/
// From a Sales Order, get the Customer ID
var customerId = nlapiGetFieldValue("entity");
// Set a Comment and update the Budget Approved field on the Customer record
nlapiSubmitField("customer", customerId,
["comments", "isbudgetapproved"],
["The budget has been approved.", "T"]);
[2.0] Senden Sie ein einzelnes Feld
/**
* A SuiteScript 2.0 example of using N/record#submitFields to update a single field on a related record
*/
require(["N/record", "N/currentRecord"], function (r, cr) {
// From a Sales Order, get the Customer ID
var customerId = cr.get().getValue({"fieldId": "entity"});
// Set a Comment on the Customer record
r.submitFields({
"type": r.Type.CUSTOMER,
"id": customerId,
"values": {
"comments": "This is a comment added by inline editing with SuiteScript."
}
});
});
[2.0] Mehrere Felder senden
/**
* A SuiteScript 2.0 example of using N/record#submitFields to update multiple fields on a related record
*/
require(["N/record", "N/currentRecord"], function (r, cr) {
// From a Sales Order, get the Customer ID
var customerId = cr.get().getValue({"fieldId": "entity"});
// Set a Comment and check the Budget Approved box on the Customer record
r.submitFields({
"type": r.Type.CUSTOMER,
"id": customerId,
"values": {
"comments": "The budget has been approved.",
"isbudgetapproved": true
}
});
});