ANS-1064 · DéVELOPPEMENT SUITESCRIPT

Comment les scripts d’événements utilisateur gèrent-ils les valeurs des enregistrements lors des importations CSV ?

Découvrez comment les scripts d'événements utilisateur NetSuite gèrent les valeurs des enregistrements lors des importations CSV, en particulier au cours des phases « Avant soumission » et « Après soumission ».

Solution courte

Lors d’une importation CSV, la variable context.oldRecord est vide pour les nouveaux champs, tandis que context.newRecord contient la valeur importée. Si un champ est modifié dans un script « Before Submit » à l’aide de la méthode context.newRecord.setValue(), cette nouvelle valeur sera répercutée dans context.newRecord lors de l’exécution du script « After Submit », ce qui risque de remplacer les données importées à l’origine.

Scénario

Un utilisateur de NetSuite effectue une importation CSV afin de mettre à jour un enregistrement de commande client (SO). L'importation vise à remplir un champ personnalisé initialement vide avec une nouvelle valeur, par exemple « abc ».

Solution

Les scripts d’événements utilisateur NetSuite s’exécutent à différentes phases du traitement des enregistrements, principalement « Avant soumission » et « Après soumission ». Bien que la phase « Avant chargement » soit également disponible, pour comprendre les modifications apportées aux valeurs des enregistrements lors des importations CSV, il convient de se concentrer sur les phases de soumission. Prenons le cas d’une importation CSV effectuée sur une commande client (SO) afin de mettre à jour un champ personnalisé actuellement vide. Le fichier CSV importé fournit une nouvelle valeur, telle que « abc », pour ce champ. Valeurs de champ inchangées lors de la phase « Avant soumission »* Au cours de la phase « Avant soumission » :

  • L’objet context.oldRecord correspondant au champ sera vide (par exemple, « »).
  • L’objet context.newRecord correspondant au champ contiendra la valeur importée (par exemple, « abc »).* Au cours de la phase « Après soumission » :
  • L’objet context.oldRecord correspondant au champ sera toujours vide (par exemple, « »).
  • L’objet context.newRecord associé à ce champ contiendra la valeur importée (par exemple, « abc »).Valeurs de champ avec modification lors de la phase « Before Submit » : Considérez à présent la même importation CSV, mais un script d’événement utilisateur est configuré pour modifier la valeur du champ lors de la phase « Before Submit » (par exemple, pour la mettre à jour ou la concaténer avec une autre valeur).* Au cours de la phase « Before Submit » :
  • L’objet context.oldRecord associé au champ sera vide (par exemple, '').
  • L’objet context.newRecord associé au champ contiendra la valeur importée (par exemple, « abc »).
  • Si le script définit ensuite la valeur du champ à l’aide de SuiteScript 2.x :

GA_KEEP_0001*

Au cours de la phase « After Submit » :

  • L’objet context.oldRecord correspondant au champ sera toujours vide (par exemple, '').
  • L’objet context.newRecord correspondant au champ reflétera désormais la valeur définie dans le script « Before Submit » (par exemple, « CCC »). Il est essentiel de faire preuve de prudence lorsque vous modifiez les valeurs des champs dans les scripts « Before Submit » lors d’importations CSV. De telles modifications peuvent écraser les données destinées à l’importation, ce qui peut entraîner une perte de données si elles ne sont pas gérées avec soin.

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Développement SuiteScript

Parler à un consultant