ANS-1537 · DéVELOPPEMENT SUITESCRIPT

Comment contrôler l’exécution des scripts d’événements utilisateur lors de la soumission d’enregistrements dans NetSuite

Apprenez à gérer les déclencheurs d'événements utilisateur lors de la soumission de fiches par programmation dans NetSuite, en tenant compte des différences entre les versions de SuiteScript.

Solution courte

Alors que SuiteScript 1.0 permettait de désactiver les déclencheurs d’événements utilisateur lors de la soumission d’un enregistrement à l’aide de la fonction nlapiSubmitRecord avec l’option « disabletriggers », la méthode record.save() de SuiteScript 2.x ne prend pas officiellement en charge cette option spécifique. Les développeurs doivent tenir compte de cette distinction lors de la migration ou du développement de nouveaux scripts.

Scénario

Un script planifié NetSuite doit soumettre un enregistrement par programmation. L'objectif est d'empêcher l'exécution des scripts d'événements utilisateur associés pendant ce processus de soumission afin d'éviter tout effet indésirable ou boucle infinie.

Solution

Dans SuiteScript 1.0, un script planifié pouvait empêcher les scripts d’événements utilisateur de se déclencher lors de la soumission d’un enregistrement. Pour ce faire, il fallait transmettre des options spécifiques à la fonction nlapiSubmitRecord. La syntaxe utilisée était la suivante :

nlapiSubmitRecord(record, { disabletriggers : true, enablesourcing : true })

Pour SuiteScript 2.x, qui est la version actuellement recommandée pour le développement NetSuite, la méthode équivalente pour soumettre un enregistrement est record.save(). Cependant, l’option disabletriggers, qui était disponible dans SuiteScript 1.0, n’est ni officiellement documentée ni prise en charge pour la méthode record.save() dans SuiteScript 2.x. Bien que l’option enablesourcing: true reste valable pour contrôler l’origine des champs, la fonctionnalité permettant de désactiver directement les déclencheurs d’événements utilisateur via une option de la méthode record.save() n’existe pas de la même manière. Par conséquent, lorsque vous utilisez record.save() dans SuiteScript 2.x, l’appel se présente généralement comme suit, sans l’option disabletriggers :

record.save({ enablesourcing : true })

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Développement SuiteScript

Parler à un consultant