Passer au contenu principal
Les exemples JavaScript ci-dessous illustrent des cas courants d’utilisation des Advanced Script Rules : vérifier la présence d’un champ, comparer des valeurs numériques, appliquer une validation conditionnelle et valider des données de tableau. Copiez-les et adaptez-les à vos propres noms de champ et règles métier.

Vérifier qu’un champ est présent

Par exemple, vérifiez que le champ MyField est détecté et renseigné :

Comparer des nombres à virgule flottante

La comparaison directe de nombres à virgule flottante peut produire des résultats imprévisibles. Utilisez les méthodes de l’objet natif Math pour comparer les nombres de manière fiable, en particulier les montants.

Exiger une valeur non vide en fonction d’un autre champ

Un champ optionnel peut devenir obligatoire en fonction de la valeur d’un autre champ. Par exemple, si MaritalStatus est Married, les champs correspondant au nom du conjoint doivent être renseignés. Cette règle de script vérifie que, lorsque MaritalStatus est Married, SpouseFirstName et SpouseLastName sont tous deux renseignés :

Vérifier qu’un champ est localisé sur le document

Les règles peuvent également servir à renseigner les valeurs du champ, même si la valeur n’est pas imprimée sur le document. Par exemple, si plusieurs taxes s’appliquent, la taxe totale peut être calculée automatiquement. Toutefois, certains pays exigent que le montant de la taxe totale figure sur le document. Cette règle de script vérifie que, pour les reçus émis en Allemagne, la taxe totale est bien présente sur l’image. Pour les autres pays, aucune vérification supplémentaire n’est nécessaire, car l’indicateur champ obligatoire est activé pour le champ de la taxe totale :

Valider les données dans des cas particuliers

Vérifier que la taxe totale est égale à la somme de toutes les taxes peut se faire à l’aide d’une règle prédéfinie (Check Sum). Mais si, dans certains pays, l’une des taxes peut être négative, seule une règle de script peut gérer les deux cas — additionner toutes les taxes, ou additionner et soustraire une taxe de remboursement, selon le pays d’origine. Ce script vérifie que la somme de deux taxes est égale à la taxe totale, sauf pour les reçus provenant d’Espagne, où soit la somme, soit la différence des deux peut être égale à la taxe totale :

Comparer la somme d’une colonne à un champ externe

Les scripts peuvent faire référence à des valeurs de tableau et pas seulement à des champs. Pour accélérer les vérifications de règles, enregistrez les tableaux dans des variables, puis référencez ces variables au lieu de récupérer à nouveau le tableau. Si une variable contient un tableau entier, utilisez la propriété Instances pour accéder aux lignes, puis utilisez GetChild pour obtenir une cellule donnée dans une ligne. L’exemple ci-dessous additionne toutes les valeurs de la colonne Total Price et compare le résultat au champ Total :

Comparer les cellules d’une colonne à un champ externe et lister les lignes en erreur

Utilisez Context.GetFields pour référencer les colonnes d’un tableau et obtenir chaque cellule de la colonne, ce qui est utile pour effectuer des boucles. L’exemple ci-dessous compare le taux d’imposition de chaque ligne au taux d’imposition global. Lorsque les valeurs ne correspondent pas, le script continue au lieu d’échouer immédiatement, en collectant les numéros des lignes présentant des écarts et en les indiquant dans le message d’erreur :

Comparer le produit de valeurs d’une ligne à une autre valeur de la même ligne

Vous pouvez effectuer des opérations sur différentes colonnes d’un tableau, ligne par ligne, sans utiliser de boucles explicites — référencez chaque colonne à l’aide de Context.GetField. Cela crée une règle répétée qui s’exécute automatiquement pour chaque ligne. Toutes les colonnes référencées de cette manière doivent appartenir au même tableau. L’exemple ci-dessous multiplie la quantité unitaire par le prix unitaire pour chaque ligne et compare le résultat au prix total de la ligne d’article :