auto-number
Génère des nombres entiers dans une séquence (par exemple, 1,2,3,4, ...). Il est possible de définir l’entier de démarrage, la valeur d’incrémentation et d’autres options par le biais des paramètres.
L’ordre exact dans lequel des fonctions sont appelées par le code de mappage généré n’est pas défini. MapForce peut nécessiter de dissimuler des résultats calculés à réutiliser ou évaluer des expressions dans n’importe quel ordre. De même, contrairement à d’autres fonctions, la fonction auto-number retourne un résultat différent lorsqu’ils sont appelés plusieurs fois avec les même paramètres d’entrée. C’est pourquoi il est fortement recommandé d’utiliser la fonction auto-number avec précaution. Dans certains cas, il est possible d’obtenir le même résultat en utilisant la fonction position à la place. |
Langages
Built-in, C++, C#, Java, XQuery, XSLT 1.0, XSLT 2.0, XSLT 3.0.
Paramètres
Argument | Description |
---|---|
global-id | Paramètre optionnel. Si un design de mappage contient plusieurs fonctions auto-number, elles généreront des séquences avec des nombres dupliqués (se chevauchant). Pour rendre toutes les fonctions auto-number conscientes l’une de l'autre, et donc générer des séquences qui ne se chevauchent pas, connecter un string commun (par exemple une constante) dans l’entrée global-id de chaque fonction auto-number. |
start-with | Paramètre optionnel. Spécifie l’entier avec lequel la séquence générée commence. La valeur par défaut est de 1. |
increment | Paramètre optionnel. Spécifie la valeur d’incrément. La valeur par défaut est de 1. |
restart-on-change | Paramètre optionnel. Réinitialise le décompte sur start-with, lorsque le contenu de l’item connecté change. |
Exemple
Le mappage suivant est une variation du mappage ParentContext.mfd discuté dans l’Exemple : Changer le contexte Parent.
L'objectif du mappage illustré ci-dessous est de générer plusieurs fichiers XML, un pour chaque département dans le fichier XML de source. Il existe des départements portant le même nom (parce qu’ils appartiennent à des bureaux de parents différents). Pour cette raison, chaque nom de fichier généré doit commencer par un nombre séquentiel, par exemple 1-Administration.xml, 2-Marketing.xml, etc.
Pour atteindre l’objectif de mappage, la fonction auto-number a été utilisée. Le résultat de cette fonction est concaténé avec un caractère de tiret, suivi par le nom du département, suivi par le string ".xml" afin de créer le nom unique du fichier généré. Chose importante, le troisième paramètre de la fonction concat (le nom de département) a un priority context qui s'applique. Cela a pour conséquence que la fonction auto-number est appelée dans le contexte de chaque département et produit les valeurs séquentielles requises. Si le contexte de priorité n’a pas été utilisé, la fonction auto-number garderait le nombre 1 (dans l’absence de tout contexte), et des noms de fichier doubles seraient générées en conséquence.