netsuite
Modifica in linea con SuiteScript
Ricerca…
introduzione
La modifica in linea consente agli utenti di modificare e aggiornare rapidamente i dati per un determinato record senza dover caricare l'intero record su una pagina, modificare il modulo e quindi salvare il record.
Gli sviluppatori NetSuite hanno una funzionalità corrispondente chiamata submitFields
. La funzionalità submitFields
è fornita dalla funzione globale nlapiSubmitField
in SuiteScript 1.0 e dal metodo N/record#submitFields
in SuiteScript 2.0.
Sintassi
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue);
- nlapiSubmitField (recordType, recordId, fieldIds, fieldValues);
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue, doSourcing);
Parametri
Parametro | Dettagli |
---|---|
tipo di registrazione | String - L'ID interno del tipo di record in fase di aggiornamento |
recordId | String o Number : l'ID interno del record che si sta aggiornando |
fieldIds | String or String[] - L'ID (i) interno (i) dei campi che si stanno aggiornando |
FieldValues | any or any[] - I valori corrispondenti da impostare nei campi dati |
doSourcing | Boolean - Indica se i valori dipendenti devono essere inseriti al momento dell'invio del record. Il valore predefinito è false |
Osservazioni
La funzionalità submitFields
è una funzionalità complementare alla funzionalità di ricerca dei lookupFields
.
Prestazioni e limiti
submitFields
comporta in modo significativamente più veloce e utilizza meno governance rispetto a fare le stesse modifiche caricando e inviando il record completo.
È possibile aggiornare più campi contemporaneamente per lo stesso costo dell'aggiornamento di un singolo campo. L'aggiornamento di più campi con campi submitFields
non comporta costi di governance più elevati.
Tuttavia, è necessario tenere presente che solo determinati campi su ciascun tipo di record sono modificabili in linea e il risparmio di prestazioni si applica solo a questi campi modificabili in linea. Se si utilizza la funzione submitFields
su qualsiasi campo modificabile non in linea, il campo verrà aggiornato correttamente, ma dietro le quinte, NetSuite effettivamente caricherà e invierà il record, impiegando così più tempo e utilizzando più governance. È possibile determinare se un campo è modificabile in linea facendo riferimento alla colonna "nlapiSubmitField" nel Browser dei record .
submitFields
funzionalità submitFields
è inoltre limitata ai campi body di un record. Se è necessario modificare i dati di sottolista, sarà necessario caricare il record per apportare le modifiche, quindi inviare il record.
Riferimenti:
- Guida di NetSuite: "Inline Editing e Panoramica di SuiteScript"
- Aiuto NetSuite: "Modifica in linea usando nlapiSubmitField"
- Guida di NetSuite: "Conseguenze dell'utilizzo di nlapiSubmitField su campi modificabili non incorporati"
- Guida di NetSuite: "Field APIs"
- Guida di NetSuite: "record.submitFields (opzioni)"
[1.0] Invia un singolo campo
/**
* 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] Invia più campi
/**
* 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] Invia un singolo campo
/**
* 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] Invia più campi
/**
* 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
}
});
});