Exemple : SELECT avec des paramètres
Cet exemple vous montre comment créer un mappage MapForce qui lit des données depuis une base de données SQLite et le rédige dans un fichier CSV. En particulier, le mappage décrit dans cet exemple utilise une requête SELECT de base de données personnalisée avec un paramètre. L'instruction SELECT combine des données depuis plusieurs tables. Ensuite, les résultats sont fournis au mappage pour des traitements ultérieurs.
L'exemple s'accompagne d'un fichier de design de mappage (.mfd) disponible dans le chemin suivant : <Documents>\Altova\MapForce2023\MapForceExamples\Tutorial\select-component.mfd. Vous pouvez ouvrir ce fichier d'échantillon et l'analyser tout d'abord ou suivre les étapes ci dessous pour la créer en partant de zéro.
Bien que cet exemple utilise une base de données SQlite, le processus fonctionne de la même manière pour d'autres types de base de données. Pour plus d'informations concernant la connexion vers d'autres bases de données, voir Connexion à une base de données.
Les objectifs sont les suivants :
1.Nous souhaitons sélectionner à partir de la base de données uniquement les commandes dont le nombre d'objets commandés dépassent une valeur personnalisée. Cette valeur personnalisée doit être fournie en tant que paramètre dans le mappage. Pour atteindre cet objectif, nous allons créer une instruction SELECT de base de données personnalisée qui prend un paramètre d'entrée.
2.Dans la base de données SQLite, le format de date est YYYY-MM-DD HH-MI-SS. Dans le fichier CSV, la partie de l'heure doit être réduite pour que le format soit YYYY-MM-DD. Pour atteindre cet objectif, nous utilisons la fonction date-from-datetime disponible dans MapForce.
3.Le fichier CSV résultat doit porter le nom OrdersReport.csv.
Étape 1: Ajouter la structure SELECT
1.Dans le menu Insérer, cliquer sur Base de données.
2.Choisir SQLite, et suivre les étapes de l'assistant pour se connecter au fichier Altova-Products.sqlite disponible dans le dossier MapForceExamples\Tutorial.
3.Dans le dialogue Insérer objets de base de données, cliquer sur Ajouter/Éditer instruction SELECT, et saisir la requête suivante :
SELECT *, (Quantity * UnitPrice) AS Price |
Cette requête utilise une jointure entre les tables Orders et Products, et extrait tous les champs (*), et une valeur calculée (AS Price). La requête spécifie aussi le paramètre :Quantity dans la clause WHERE.
4.Cliquer sur Ajouter l'instruction SELECT.
5.Cliquer sur OK. Le composant altova-products a maintenant été ajouté à la surface de mappage.
6.Dans le composant altova-products, cliquer sur et choisir Insérer appel avec des paramètres.
Une nouvelle structure (SELECT_Statement) est maintenant disponible dans le mappage. Il est partagé en deux parties : la partie gauche fournit des connecteurs d'entrée et la partie de droite fournit des connecteurs de sortie. Veuillez noter que la partie de gauche comprend le paramètre Quantity défini précédemment.
Étape 2: Ajouter le paramètre d'entrée
1.Dans le menu Insérer, cliquer sur Insérer entrée.
2.Saisir "Quantity" en guise de nom.
3.Sous Design-time Execution, saisir une valeur de paramètre à utiliser pour exécuter le mappage pendant la phase de design (dans cet exemple, "2"). Pour plus d'informations, voir Fournir des paramètres au mappage.
Vous pouvez connecter le paramètre d'entrée dans la structure d'appel de base de données, comme indiqué ci-dessous.
Étape 3: Ajouter le composant CSV cible
1.Dans le menu Insérer, cliquer sur Fichier texte.
2.Choisir Utiliser le traitement simple pour le CSV standard..., et cliquer sur Continuer.
3.Dans le dialogue Paramètres de composant, cliquer sur Apposer champ et ajouter neuf nouveaux champs. Nous vous recommandons de donner aux champs CSV le même nom que les champs de base de données, comme indiqué ci-dessous. Cela vous aidera à gagner du temps lorsque vous établirez les connexions de mappage. Pour plus d'informations concernant ces paramètres, voir Configurer les options CSV.
4.Créer une connexion en tre le nœud result de la structure SELECT et le nœud Rows du composant CSV.
Étant donné que la plupart des champs dans le composant CSV porte le même nom que leur base de données équivalente, les connexions de mappage seront probablement établies lorsque vous connectez result à Rows. Si cela se produit, choisir le menu Connexion et s'assurer que l'option Auto connexion des enfants correspondants est activée. Le seul item de mappage que vous devrez connecter manuellement est ProductID, étant donné qu'il n'y a pas de champ portant ce nom dans la structure SELECT.
Étape 4: Convertir la date
Dans la fenêtre Bibliothèques, chercher la fonction date-from-datetime et la glisser dans la surface de mappage. Ensuite connecter son entrée et sa sortie comme indiqué ci-dessous.
Étape 5: Définir le nom du fichier de sortie
Pour définir le nom du fichier de sortie sur OrdersReport.csv, double-cliquer sur le composant CSV. Le dialogue Paramètres de composant s'ouvre, dans lequel vous pouvez saisir la valeur dans le champ de saisir Fichier de sortie.