ANS-0783 · DéVELOPPEMENT SUITESCRIPT
Pourquoi les champs des sous-listes ne sont-ils pas récupérés dans NetSuite avant l’exécution des scripts d’événements utilisateur de soumission ?
Comprenez pourquoi l'extraction des champs des sous-listes n'a pas lieu lors de l'exécution des scripts d'événements utilisateur « Avant soumission », ce qui a un impact sur les calculs en temps réel.
Solution courte
Dans les scripts d’événements utilisateur « Avant soumission » de NetSuite, les champs des sous-listes ne sont pas entièrement renseignés tant que l’enregistrement n’a pas été effectivement soumis. Cela signifie que la définition d’un champ tel que « Code fiscal » dans une sous-liste ne déclenchera pas immédiatement le renseignement des champs dépendants, tels que les taux d’imposition, pour les calculs en temps réel au cours de la même exécution de script.
Scénario
Un script d’événement utilisateur NetSuite tente de définir un champ de sous-liste, tel que le « Code fiscal », dans un contexte « Avant soumission ». On s’attend à ce que les champs dépendants, tels que les taux d’imposition, soient automatiquement récupérés et renseignés dès que le code fiscal est défini. Or, ces champs récupérés restent vides, ce qui empêche les calculs ultérieurs basés sur les valeurs récupérées attendues.
Solution
Lorsque vous utilisez des champs de sous-liste dans les scripts d’événements utilisateur NetSuite, en particulier dans un contexte « Avant soumission », il est essentiel de bien comprendre le moment où les données des champs sont récupérées. Bien que la définition des valeurs des champs de sous-liste dans SuiteScript 2.x à l’aide de fonctions telles que Record.setCurrentSublistValue implique des paramètres contrôlant le comportement synchrone, la documentation de NetSuite précise que, dans les scripts serveur (tels que les scripts d’événements utilisateur), cette exécution synchrone est toujours effective. Cela garantit une exécution prévisible du script. Toutefois, cette exécution synchrone ne signifie pas que tous les champs dépendants d’une sous-liste seront immédiatement récupérés et renseignés. Le support technique de NetSuite confirme que, pour les scripts d’événements utilisateur « Avant soumission », la récupération complète des champs de sous-liste n’a lieu qu’une fois l’enregistrement effectivement soumis. Par conséquent, si un script définit un champ tel que « Code fiscal » dans une sous-liste, les champs qui seraient normalement renseignés en fonction de cette modification (par exemple, les taux d’imposition) ne seront pas renseignés et ne seront pas disponibles pour une utilisation immédiate au cours de la même exécution du script « Avant soumission ». Les calculs sur les lignes d’écriture qui s’appuient sur ces valeurs récupérées ne peuvent pas être effectués de manière fiable à ce stade. Les développeurs doivent envisager d’effectuer ces calculs dans un script d’événement utilisateur « Après soumission », où tous les champs ont été entièrement récupérés, ou mettre en œuvre une logique personnalisée pour récupérer les valeurs nécessaires.
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
