ANS-1322 · DéVELOPPEMENT SUITESCRIPT
Comment le bouton « Approuver » de NetSuite déclenche des scripts et gère les modifications apportées aux enregistrements
Comprenez comment les scripts d'événements utilisateur sont déclenchés par le bouton « Approuver » sur les transactions, ainsi que les implications en termes d'enregistrement des modifications apportées aux enregistrements et d'empêchement de l'approbation.
Solution courte
Le bouton « Approuver » de NetSuite déclenche des scripts d’événements utilisateur. Bien que les modifications apportées à l’enregistrement actuel dans la phase « beforeSubmit » puissent être automatiquement conservées, une sauvegarde explicite via record.save() ou record.submitFields() est souvent nécessaire dans la phase « afterSubmit » ou pour les enregistrements externes. Pour interrompre le processus d’approbation, une erreur doit être générée, ce qui annule toutes les modifications apportées à l’enregistrement.
Scénario
Un administrateur ou un développeur NetSuite doit mettre en œuvre une logique personnalisée qui s’exécute lorsque l’on clique sur le bouton « Approuver » d’une transaction. Il doit comprendre comment les scripts sont déclenchés, comment les modifications apportées aux enregistrements sont enregistrées, et comment empêcher de manière conditionnelle la finalisation d’une approbation tout en garantissant l’intégrité des données.
Solution
Le bouton « Approuver » des transactions NetSuite peut déclencher des scripts d’événements utilisateur à l’aide du déclencheur « approve ». Alors que les modifications apportées directement à l’objet context.newRecord dans un script d’événement utilisateur « beforeSubmit » sont automatiquement conservées une fois la soumission réussie, une sauvegarde explicite à l’aide des fonctions SuiteScript 2.x telles que record.save() ou record.submitFields() est généralement requise pour les modifications effectuées dans les scripts « afterSubmit » ou lors de la modification d’enregistrements autres que l’enregistrement actuel dans « beforeSubmit ».
Pour empêcher l’approbation d’aboutir et maintenir le statut de la transaction sur « En attente d’approbation », une erreur doit être levée au sein du script. Si une erreur est levée, toutes les modifications apportées à l’enregistrement au cours de ce processus sont annulées et l’enregistrement revient à l’état dans lequel il se trouvait avant que le bouton ne soit cliqué. Cela inclut toutes les modifications effectuées à l’aide de fonctions SuiteScript 2.x telles que record.setValue(), record.submitFields() ou record.save().
Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Développement SuiteScript
