Scénario 2 : Récupérer les données d'un système SAP en appelant une fonction BAPI à l'aide de paramètres de type Document - 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

Ce scénario décrit un Job récupérant les données d'une table nommée SFLIGHT dans un système SAP en appelant la fonction BAPI RFC_READ_TABLE avec des paramètres d'entrée et de sortie de type Document.

Prérequis :

La connexion SAP est configurée dans la vue Repository, avec

  • la fonction RFC_READ_TABLE récupérée et sauvegardée dans le dossier SAP Bapi de la connexion SAP,

  • les métadonnées XML des schémas d'entrée et de sortie de la fonction RFC_READ_TABLE récupérée et sauvegardée sous le nœud File xml.

Pour plus d'informations concernant la configuration d'une connexion SAP, la récupération de fonctions SAP et les schémas des fonctions SAP en tant que métadonnées XML, consultez le Guide utilisateur du Studio Talend.

Ajouter les composants

  1. Créez un Job et déposez le nœud RFC_READ_TABLE du dossier SAP Bapi de la connexion SAP dans l'espace de modélisation graphique en tant que composant tSAPBapi, afin de réutiliser la connexion au système SAP.

  2. Ajoutez les composants suivants au Job en saisissant leur nom dans l'espace de modélisation graphique ou en les déposant depuis la Palette:

    • un tFixedFlowInput pour générer le flux des données d'entrée.

    • deux tXMLMap pour mapper et transformer les flux de données d'entrée et de sortie, respectivement.

    • trois tLogRow pour afficher les données de sortie correspondant aux paramètres de sortie, DATA, FIELDS et OPTIONS, respectivement.

Configurer les composants

Configurer le composant d'entrée

  1. Double-cliquez sur le tFixedFlowInput pour ouvrir sa vue Basic settings.

  2. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur du schéma et définir le schéma d'entrée. Dans cet exemple, le schéma d'entrée se compose de quatre colonnes : DELIMITER et QUERY_TABLE de type String, ROWCOUNT et ROWSKIPS de type Integer.

  3. Dans la zone Mode, sélectionnez l'option Use Single Table et spécifiez la valeur de chaque colonne. Dans cet exemple, ";" pour la colonne DELIMITER, "SFLIGHT" pour la colonne QUERY_TABLE, 10 pour la colonne ROWCOUNT et -1 pour la colonne ROWSKIPS.

  4. Reliez le tFixedFlowInput au premier tXMLMap à l'aide d'un lien Row > Main.

Configurer le composant tSAPBapi

  1. Double-cliquez sur le composant tSAPBapi pour ouvrir sa vue Basic settings.

  2. Décochez la case tick it to enable multiple input/output;not tick it to enable document pour permettre l'utilisation des paramètres d'entrée et de sortie de type Document.

  3. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur du schéma.

  4. Cliquez sur le bouton [+] pour ajouter une colonne doc de type Document.

    Cliquez sur OK pour fermer l'éditeur du schéma.

  5. Cliquez-droit sur le premier tXMLMap, sélectionnez Row > *New Output* (Main) dans le menu contextuel et cliquez sur le tSAPBapi. Dans la boîte de dialogue, saisissez in puis cliquez sur OK et acceptez la propagation du schéma provenant du composant cible tSAPBapi. Le premier tXMLMap est connecté au tSAPBapi via un lien nommé in (Merge order:1).

Mapper le flux des données d'entrée

  1. Double-cliquez sur le premier tXMLMap pour ouvrir son éditeur de mapping. Dans la table in à droite, cliquez-droit sur le nœud doc et sélectionnez Import From Repository dans le menu contextuel.

  2. Dans la boîte de dialogue [Metadata], sélectionnez Input_Schema dans le dossier RFC_READ_TABLE puis cliquez sur OK pour fermer la boîte de dialogue. Le schéma est ajouté à l'arborescence XML.

  3. Glissez-déposez toutes les colonnes de la table d'entrée main:row1 à gauche dans les éléments correspondants de la table in à droite. Dans la table in, supprimez les autres éléments ne nécessitant pas de valeur d'entrée.

  4. Cliquez sur OK afin de sauvegarder les paramètres et fermer l'éditeur de mapping.

  5. Connectez le tSAPBapi au second tXMLMap à l'aide d'un lien Row > Main.

Mapper le flux des données de sortie

  1. Cliquez-droit sur le second tXMLMap, sélectionnez Row > *New Output* (Main) dans le menu contextuel et cliquez sur le premier tLogRow. Dans la boîte de dialogue qui s'ouvre, saisissez DATA puis cliquez sur OK. Le second tXMLMap est connecté au premier tLogRow via une connexion nommée DATA (Main order:1).

  2. Répétez l'opération afin de connecter le second tXMLMap au deuxième tLogRow à l'aide d'un lien FIELDS (Main order:2) et au troisième tLogRow à l'aide d'un lien nommé OPTIONS (Main order:3).

  3. Double-cliquez sur le second tXMLMap pour ouvrir son éditeur de mapping. Dans la table de gauche main:row2, cliquez-droit sur le nœud doc et sélectionnez Import From Repository dans le menu contextuel. Dans la boîte de dialogue [Metadata], sélectionnez Output_Schema dans le dossier RFC_READ_TABLE puis cliquez sur OK pour fermer la boîte de dialogue. Le schéma est ajouté à l'arborescence.

  4. Dans la table d'entrée main:row2, à gauche, sous l'élément DATA, glissez-déposez le nœud WA dans la table DATA, à droite.

  5. Répétez l'opération pour déposer les nœuds FIELDNAME, OFFSET, LENGTH, TYPE et FIELDTEXT de sous l'élément FIELDS de la table d'entrée main:row2 dans la table FIELDS à droite. Glissez-déposez le nœud TEXT, sous l'élément OPTIONS de la table d'entrée dans la table OPTIONS, à droite.

  6. Cliquez-droit sur le nœud item sous le nœud DATA et sélectionnez As loop element dans le menu contextuel afin de le configurer comme élément de boucle.

  7. Répétez l'opération pour configurer les nœuds item sous les nœuds FIELDS et OPTIONS comme élément de boucle.

  8. Cliquez sur le bouton set Loop Function dans le coin supérieur droit de la table DATA pour configurer la boucle source.

    Cliquez sur le bouton [+] pour ajouter une ligne, cliquez dans le champ Xpath et sélectionnez la boucle source row2.doc:/RFC_READ_TABLE/TABLES/DATA/item dans la liste déroulante. Cela fait, cliquez sur OK pour fermer la boîte de dialogue.

  9. Répétez l'opération pou configurer la boucle source pour les tables FIELDS et OPTIONS à row2.doc:/RFC_READ_TABLE/TABLES/FIELDS/item et row2.doc:/RFC_READ_TABLE/TABLES/OPTIONS/item respectivement.

  10. Cliquez sur OK pour fermer l'éditeur de mapping.

Configurer les composants de sortie

  1. Double-cliquez sur le premier tLogRow pour ouvrir sa vue Basic settings.

  2. Cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent.

  3. Dans la zone Mode, sélectionnez Table (print values in cells of a table) pour un affichage optimal des résultats.

  4. Répétez l'opération pour configurer les deux autres tLogRow.

Sauvegarder et exécuter le Job

  1. Appuyez sur Ctrl + S afin de sauvegarder le Job.

  2. Appuyez sur F6 pour l'exécuter.

    Comme montré dans la capture d'écran, dix lignes de données de la table SFLIGHT sont récupérées et affichées dans laconsole.