netsuite
Inline Editing med SuiteScript
Sök…
Introduktion
Inline redigering tillåter användare att mycket snabbt ändra och uppdatera data för en viss post utan att behöva ladda hela posten på en sida, redigera formuläret och sedan spara posten.
NetSuite-utvecklare har en motsvarande funktionalitet som kallas submitFields
. Den submitFields
funktionalitet tillhandahålls av nlapiSubmitField
globala funktionen i SuiteScript 1,0 och N/record#submitFields
metod i SuiteScript 2,0.
Syntax
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue);
- nlapiSubmitField (recordType, recordId, fieldIds, fieldValues);
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue, doSourcing);
parametrar
Parameter | detaljer |
---|---|
inspelningstyp | String - Det interna ID för den typ av post som uppdateras |
recordID | String eller Number - Det interna ID för posten som uppdateras |
fieldIds | String or String[] - De interna ID / erna för fältet / fälten som uppdateras |
fieldValues | any eller any[] - Motsvarande värden som ska ställas in i de givna fälten |
doSourcing | Boolean - Huruvida beroende värden ska anskaffas vid posten. Standard är false |
Anmärkningar
submitFields
funktionaliteten är en följeslagningsfunktion till lookupFields
funktionaliteten.
Prestanda och begränsningar
submitFields
presterar betydligt snabbare och använder mindre styrning än att göra samma ändringar genom att ladda och skicka in hela posten.
Flera fält kan uppdateras samtidigt för samma kostnad som att uppdatera ett enda fält. Att uppdatera fler fält med submitFields
medför inte högre styrningskostnader.
Du måste dock vara medveten om att endast vissa fält i varje posttyp är inredigerbara och prestandabesparingarna gäller endast för dessa inline-redigerbara fält. Om du använder submitFields
funktionen i något fält som inte kan redigeras kommer fältet att uppdateras korrekt, men bakom kulisserna kommer NetSuite faktiskt att ladda och skicka posten, vilket tar mer tid och använder mer styrning. Du kan bestämma om ett fält är inredigerbart genom att hänvisa till kolumnen "nlapiSubmitField" i Records Browser .
submitFields
funktionaliteten är också begränsad till kroppens fält i en post. Om du behöver ändra sublistdata måste du ladda posten för att göra dina ändringar och skicka sedan posten.
referenser:
- NetSuite Help: "Inline Editing och SuiteScript-översikt"
- NetSuite Hjälp: "Inline Editing med nlapiSubmitField"
- NetSuite Hjälp: "Konsekvenser av att använda nlapiSubmitField på icke-inline redigerbara fält"
- NetSuite Hjälp: "Fält-API: er"
- NetSuite Help: "record.submitFields (alternativ)"
[1.0] Skicka ett enda fält
/**
* 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] Skicka in flera fält
/**
* 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] Skicka ett enda fält
/**
* 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] Skicka in flera fält
/**
* 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
}
});
});