ANS-1699 · DéVELOPPEMENT SUITESCRIPT

Comment ajouter des lignes de dépenses de manière fiable dans les scripts côté client de NetSuite

Évitez les problèmes liés à l'extraction des données et au calcul des taxes lors de l'ajout de lignes de dépenses via des scripts côté client en garantissant une exécution synchrone des mises à jour des valeurs de champ.

Solution courte

Pour ajouter de manière fiable des lignes de dépenses dans les scripts client NetSuite, utilisez la fonction `currentRecord.setCurrentSublistValue` avec l’option `fireSlavingSync` définie sur `true`. Cela garantit que le script attend que toutes les opérations de récupération des données de champ et tous les calculs, tels que ceux liés à Tax Nexus, soient terminés avant de poursuivre, ce qui évite les incohérences de données et les échecs d'enregistrement.

Scénario

Lors de l’ajout programmatique de lignes de dépenses dans les scripts côté client de NetSuite, les utilisateurs peuvent rencontrer des problèmes tels que l’échec de l’enregistrement des lignes ou des données incohérentes. Cela provient souvent du fait que le script n’attend pas correctement que toutes les opérations de récupération des données et tous les calculs des champs dépendants, en particulier ceux liés aux configurations de « Tax Nexus », soient terminés avant de poursuivre.

Solution

En cas de problèmes liés à la manipulation des lignes de commande dans les SuiteScripts côté client, il est recommandé d’utiliser le mode synchrone lors de la définition des champs de ligne. Cela garantit une exécution prévisible du script en le forçant à attendre la fin de toute récupération de données spécifiée avant de poursuivre. La fonction currentRecord.setCurrentSublistValue de SuiteScript 2.x inclut une option d’exécution synchrone :

currentRecord.setCurrentSublistValue(options)

L’option fireSlavingSync de cette fonction s’applique aux SuiteScripts côté client. Dans les scripts côté serveur (tels que les scripts d’événements utilisateur), cette option s’exécute toujours avec la valeur « true ». Dans les scripts client, si l’option fireSlavingSync n’est pas explicitement définie, sa valeur par défaut est false et l’API s’exécute de manière asynchrone. Si elle est définie sur true, cette API s’exécute de manière synchrone, ce qui garantit une exécution prévisible du script. Définir fireSlavingSync sur true force le script client à attendre toute source spécifiée avant de poursuivre l’exécution du reste du script. Une cause fréquente de problèmes avec les lignes de dépenses est l’interférence de Tax Nexus. Si le mode synchrone (c’est-à-dire fireSlavingSync: true) n’est pas utilisé, la définition de la valeur du code fiscal peut empêcher le Tax Nexus de récupérer les informations nécessaires relatives au code fiscal. Cela peut empêcher l’enregistrement de la ligne.

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Développement SuiteScript

Parler à un consultant