Scénario : Exécuter une procédure stockée dans le hub MDM - 6.1

Composants Talend Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Le but du Job suivant est de calculer le prix total de chaque produit enregistré dans votre interface Web MDM.

Ce Job va générer des paramètres pour l'exécution d'une procédure stockée dans le hub MDM, puis extraire les données souhaitées du résultat retourné au format XML et présenter les données extraites dans le studio.

Les produits dont le prix est à traiter sont listés dans votre interface Web MDM.

Pour ce Job, vous devez avoir précédemment créé une procédure stockée nommée PriceAddition dans la vue MDM Repository et déployé cette procédure stockée sur le serveur. La procédure utilise les étapes suivantes :

for $d in distinct-values(//Product/Name)
let $product := //Product[Name= $d and Price >= %0 and Price <=%1]
order by $d
return <result><Name>{$d}</Name><Sum>{sum($product/Price)}</Sum></result>

Pour plus d'informations concernant comment travailler avec des procédures stockées, consultez le Guide utilisateur du Studio Talend.

Pour créer ce Job, procédez comme suit :

  1. Glissez-déposez les composants suivants utilisés dans cet exemple : tFixedFlowInput, tMDMSP, tExtractXMLField, tLogRow.

  2. Connectez les composants à l'aide de liens Row > Main.

  3. Le composant tFixedFlowInput sert à générer la gamme de prix vous intéressant pour ce calcul. Dans cet exemple, définissez 10 comme minimum et 17 comme maximum afin de prendre en compte tous les produits. Pour commencer, double-cliquez sur le composant tFixedFlowInput afin d'ouvrir sa vue Component.

  4. Dans la vue Component, cliquez sur le bouton [...] à côté du champ Edit schema afin d'ouvrir l'éditeur de schéma de ce composant.

  5. Dans l'éditeur de schéma, ajoutez les deux paramètres min et max utilisés pour définir la gamme de prix.

  6. Cliquez sur OK.

    Dans la table Values dans la zone Mode de la vue Component, les deux paramètres min et max que vous avez définis dans l'éditeur de schéma du composant s'affichent.

  7. Dans la colonne Value de la table Values, saisissez le nombre 10 pour le paramètre min et 17 pour le paramètre max.

  8. Double-cliquez sur le composant tMDMSP afin d'ouvrir sa vue Component.

  9. Dans le champ URL de la vue Component, saisissez l'adresse du serveur MDM, dans cet exemple : http://localhost:8180/talendmdm/services/soap.

  10. Dans le champ Password, saisissez les données d'authentification.

  11. Dans les champs Data Container et Procedure Name, saisissez les noms exacts du conteneur de données Product et de la procédure stockée PriceAddition.

  12. Sous la table Parameters, cliquez deux fois sur le bouton [+] afin d'ajouter deux lignes à cette table.

    Dans la table Parameters, cliquez sur chaque ligne ajoutée et, dans la liste déroulante, sélectionnez le paramètre min pour l'une et le paramètre max pour l'autre.

  13. Double-cliquez sur le composant tExtractXMLField afin d'ouvrir sa vue Component.

  14. Dans la vue Component, cliquez sur le bouton [...] situé à côté du champ Edit schema afin d'ouvrir l'éditeur de schéma du composant.

  15. Dans l'éditeur de schéma, ajoutez deux colonnes afin de définir la structure des données sortantes. Ces deux colonnes sont name et sum. Elles représentent respectivement le nom et le prix total de chaque type de produit enregistré dans l'interface Web.

  16. Cliquez sur OK afin de valider la configuration. Les deux colonnes s'affichent dans la table Mapping de la vue Component.

  17. Dans le champ Loop XPath Query, saisissez le nœud de l'arborescence XML sur lequel effectuer une boucle. Dans l'exemple, le nœud est /result comme vous pouvez lire dans le code de la procédure : return <result><Name>{$d}</Name><Sum>{sum($product/Price)}</Sum></result>.

  18. Dans le champ XPath Query de la table Mapping, saisissez le nom exact du nœud sur lequel effectuer la boucle. Pour la colonne name, saisissez "/result/Name", pour mapper les noms du produit. Pour la colonne sum, saisissez "/result/Sum", pour extraire les prix totaux.

  19. Double-cliquez sur le composant tLogRow afin d'ouvrir sa vue Component.

  20. Synchronisez le schéma avec celui du composant précédant (en cliquant sur le bouton Sync columns).

  21. Dans la zone Mode, sélectionnez l'option Table (print values in cells of a table) pour une meilleure lecture.

  22. Appuyez ensuite sur F6 afin d'exécuter le Job.

    Les données sortantes s'affichent dans la console de la vue Run.

La sortie liste les quatre sortes de produit enregistrés dans l'interface Web MDM et le prix total pour chaque type de produit.