netsuite
Edition en ligne avec SuiteScript
Recherche…
Introduction
La modification en ligne permet aux utilisateurs de modifier et de mettre à jour très rapidement les données d'un enregistrement particulier sans avoir à charger l'intégralité de l'enregistrement sur une page, à modifier le formulaire, puis à enregistrer l'enregistrement.
Les développeurs NetSuite ont une fonctionnalité correspondante appelée submitFields
. La fonctionnalité submitFields
est fournie par la fonction globale nlapiSubmitField
dans SuiteScript 1.0 et la méthode N/record#submitFields
dans SuiteScript 2.0.
Syntaxe
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue);
- nlapiSubmitField (recordType, recordId, fieldIds, fieldValues);
- nlapiSubmitField (recordType, recordId, fieldId, fieldValue, doSourcing);
Paramètres
Paramètre | Détails |
---|---|
recordType | String - L'ID interne du type d'enregistrement mis à jour |
recordId | String ou Number - L'ID interne de l'enregistrement en cours de mise à jour |
fieldIds | String ou String[] - ID interne du ou des champs mis à jour |
fieldValues | any ou any[] - Les valeurs correspondantes à définir dans les champs donnés |
faireSourcing | Boolean - Boolean si les valeurs dépendantes doivent être entrées lors de la soumission de l'enregistrement. Le défaut est false |
Remarques
La fonctionnalité submitFields
est une fonctionnalité complémentaire de la fonctionnalité lookupFields
.
Performance et limites
submitFields
fonctionne beaucoup plus rapidement et utilise moins de gouvernance que les mêmes modifications en chargeant et en soumettant l'enregistrement complet.
Plusieurs champs peuvent être mis à jour à la fois pour le même coût que la mise à jour d'un seul champ. La mise à jour de davantage de champs avec submitFields
n'entraîne pas de coûts de gouvernance plus élevés.
Toutefois, vous devez savoir que seuls certains champs de chaque type d'enregistrement sont modifiables en ligne et que les économies de performances ne s'appliquent qu'à ces champs modifiables en ligne. Si vous utilisez la fonction submitFields
sur un champ non éditable en ligne, le champ sera mis à jour correctement, mais en coulisse, NetSuite chargera et soumettra l'enregistrement, ce qui prendra plus de temps et utilisera plus de gouvernance. Vous pouvez déterminer si un champ est modifiable en ligne en vous référant à la colonne "nlapiSubmitField" du navigateur d'enregistrements .
submitFields
fonctionnalité submitFields
est également limitée aux champs de corps d'un enregistrement. Si vous avez besoin de modifier les données de sous-liste, vous devrez charger l'enregistrement pour effectuer vos modifications, puis soumettre le document.
Les références:
- NetSuite Help: "Édition en ligne et présentation de SuiteScript"
- NetSuite Help: "Edition en ligne avec nlapiSubmitField"
- NetSuite Help: "Conséquences de l'utilisation de nlapiSubmitField sur des champs modifiables non intégrés"
- NetSuite Help: "Champ API"
- NetSuite Help: "record.submitFields (options)"
[1.0] Soumettre un champ unique
/**
* 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] Soumettre plusieurs champs
/**
* 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] Soumettre un champ unique
/**
* 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] Soumettre plusieurs champs
/**
* 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
}
});
});