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
        }
    });
});


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow