ANS-1140 · DéVELOPPEMENT SUITESCRIPT

Comment gérer les mises à jour d’enregistrements avec xedit, DLE et nlapiSubmitField dans NetSuite

Veillez à bien comprendre les comportements spécifiques du type d'événement « xedit » de NetSuite, notamment la modification directe des listes et les mises à jour en masse, lorsque vous créez des scripts pour les interactions avec les enregistrements.

Solution courte

Le type d'événement `xedit` de NetSuite est déclenché par la modification directe d'une liste, des mises à jour en masse ou par l'événement `nlapiSubmitField`. Lors de l'événement GA_KEEP_0003, les événements GA_KEEP_0004 et `nlapiGetNewRecord().getFieldValue()` renvoient la valeur « null » pour les champs inchangés. Utilisez `nlapiLoadRecord()` pour récupérer toutes les valeurs de champ actuelles, y compris celles qui n’ont pas été modifiées par l’action `xedit`.

Scénario

Les développeurs sont souvent confrontés à des situations où des scripts doivent interagir avec des enregistrements mis à jour via l’édition directe de listes (DLE) de NetSuite, les fonctionnalités de mise à jour en masse ou l’API `nlapiSubmitField`. Il est essentiel de bien comprendre les comportements spécifiques des fonctions de récupération de champs lors de ces événements `xedit` pour garantir la précision du traitement des données et de la logique des scripts.

Solution

Le type d’événement xedit est déclenché lorsqu’un enregistrement est mis à jour via la modification directe de liste (DLE), une mise à jour en masse ou l’API nlapiSubmitField(...). Ces actions sont toutes classées dans la catégorie des actions de type « xedit » à des fins de script.

Lorsqu’un événement xedit se produit, les événements nlapiGetFieldValue() et nlapiGetNewRecord().getFieldValue() renvoient null en cas de tentative de lecture d’un champ qui n’a pas été explicitement modifié par l’opération xedit. Pour récupérer la valeur de ces champs, il est nécessaire d’effectuer un chargement complet des enregistrements à l’aide de nlapiLoadRecord().

Il est important de noter qu’un champ qui a été soumis par une action xedit renverra sa valeur ACTUELLE, mise à jour, lorsqu’il sera lu par nlapiLoadRecord(). Pour une gestion avancée de ces scénarios, veuillez vous reporter à IT_Standard_Library.js.

Veuillez noter que les fonctions évoquées (nlapiGetFieldValue, nlapiGetNewRecord, nlapiLoadRecord, nlapiSubmitField) font partie de SuiteScript 1.0. Pour les nouveaux développements, la version 2.x de l’API SuiteScript est recommandée.

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Développement SuiteScript

Parler à un consultant