Altova MapForce 2025 Professional Edition

Exemple : Compter les lignes de table de base de données

Accueil Préc Haut Suivant

Le mappage illustré dans cet exemple est disponible en tant que DB_UserList.mfd dans le dossier <Documents>\Altova\MapForce2025\MapForceExamples\. Ce mappage extrait des enregistrements d'utilisateur depuis une table de base de données appelée "Users" et les écrit dans un fichier XML. La colonne de base de données "Username" contient aussi bien le prénom que le nom d'une personne (par exemple, "Vernon Callaby"). Ce mappage présente les objectifs suivants :

 

1.Pour chaque enregistrement dans la table "Users", créer un nouvel élément Person dans le fichier XML.

2.Partager la valeur extraite depuis le champ de base de données "Username" en deux champs séparés dans le fichier XML ("First" et "Last").

3.Pour chaque enregistrement, trouver le numéro séquentiel comparé au nombre des enregistrements totaux présents dans la base de données (par exemple, "Record 1 of 4") et écrire cette information dans l'élément Details.

mf_map_DB_UserList

DB_UserList.mfd

Comme illustré ci-dessus, afin d'atteindre le premier objectif, une connexion est établie entre la table de source "Users" et l'élément Person du fichier XML cible. Cela permet d'assurer que, pour chaque enregistrement dans la table de source, un nouvel élément Person sera créé dans la cible.

 

La valeur du champ "Username" est fournie dans les fonctions substring-before et substring-after. Ces deux fonctions extraient le texte avant et après le caractère d'espace (" "), respectivement, ce qui permet de finaliser le deuxième objectif de mappage.

 

Enfin, pour atteindre le troisième objectif, le mappage utilise la fonction count. Le résultat de la fonction count est passé dans la variable. La variable permet d'assurer que ce résultat est stocké dans le mappage et est disponible lors de l'écriture de l'élément "Details" de chaque personne dans le XML cible. Veuillez noter que, pour des raisons d'efficacité, les enregistrements de base de données ne doivent être comptés qu'une seule fois, l'étendue de la variable est donc définie à compute-when=once (voir Changer le contexte et l'étendue des variables)

© 2018-2024 Altova GmbH