ANS-1531 · DéVELOPPEMENT SUITESCRIPT

Comment accéder à l’ancien enregistrement dans NetSuite après l’exécution de scripts de soumission ?

Apprenez quand et comment récupérer les données d'un enregistrement précédent à l'aide de `scriptContext.oldRecord` dans les gestionnaires d'événements `afterSubmit` de SuiteScript 2.x.

Solution courte

Dans NetSuite SuiteScript 2.x, la variable `scriptContext.oldRecord` est disponible au sein d’un script `afterSubmit`, permettant d’accéder à l’état de l’enregistrement avant sa soumission. Elle n’est pas disponible lors d’un événement « create », car aucun enregistrement antérieur n’existe. Son comportement dans les scénarios « xedit » peut varier.

Scénario

Les développeurs NetSuite ont souvent besoin de comparer l’état actuel d’un enregistrement avec son état précédent après un événement de soumission. Cela est essentiel pour auditer les modifications, déclencher une logique conditionnelle en fonction des modifications ou assurer l’intégration avec des systèmes externes. La difficulté réside dans l’accès fiable aux données de l’« ancien » enregistrement au sein d’un script d’événement utilisateur « afterSubmit ».

Solution

Dans un script d’événement utilisateur « afterSubmit » de NetSuite SuiteScript 2.x, la version précédente d’un enregistrement est accessible via scriptContext.oldRecord. Cet objet fournit un instantané des champs et des sous-listes de l’enregistrement tels qu’ils étaient avant la soumission en cours. La disponibilité et le comportement de scriptContext.oldRecord sont soumis aux conditions suivantes :

  1. Il n’est pas disponible lors d’un événement « create », car il n’existe aucun état antérieur de l’enregistrement à récupérer.

  2. Son comportement dans les situations « xedit » (modification en ligne) peut ne pas toujours fournir l’intégralité des données attendues de l’ancien enregistrement, et ne refléter potentiellement que les champs qui ont été directement modifiés. Pour les développeurs utilisant encore SuiteScript 1.0, la fonction nlapiGetOldRecord() offre une fonctionnalité équivalente dans les mêmes conditions.

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Développement SuiteScript

Parler à un consultant