Dans ce parcours d'apprentissage connecté, nous allons créer une chaîne qui illustre comment convertir un fichier XML en fichier CSV. Nous verrons également comment comparer des ensembles de données afin d'isoler les différences.
| Objectif d'apprentissage principal | Le connecteur XML |
| Objectifs d'apprentissage secondaires | Transformation tabulaire Filtres intelligents, changement de délimiteur et commandes de requête avancées |
| Conditions préalables | Configuration de la connexion au connecteur XML |
| Modèle de support | CLP | Accès aux données XML |
Étape 1 : Créer une chaîne
- Ajoutez une nouvelle chaîne , et nommez la chaîne : CLP | Accès aux données XML.
- Créez deux variables de chaîne comme suit :
- Sous Chain Variables, cliquez deux fois sur le signe plus (+).
- Utilisez les noms et valeurs suivants pour les variables :
- Variable XML
- Nom : cv-XML-Employee
- Valeur : https ://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employees.xml
- Variable CSV
- Nom : cv-CSV-Employee
- Valeur : https ://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employee_detail.csv
- Variable XML
- Sauvez la chaîne.
Étape 2 : Récupérer les données au format CSV
Utilisez le connecteur HTTP pour récupérer les données relatives aux effectifs au format CSV. Dans les étapes suivantes, nous récupérerons des informations similaires sur les effectifs au format XML, puis nous comparerons les ensembles de données afin d'identifier les différences.
- Ajouter une commande OBTENIR du connecteur HTTP au nœud de départ.
-
Configurez la commande en utilisant les valeurs suivantes :
Nom GET - Effectifs au format CSV Nom de l'utilisateur <leave blank> Mot de passe <leave blank> Certificat CA <leave blank> Certificat <leave blank> Clé privée du certificat <leave blank> Afficher la réponse Vérifié URL cv-CSV-Employé Variable de la chaîne Chaîne de requête <leave blank> Type de contenu texte/csv Réponse <leave blank> - Sauvegarder la commande.
Étape 3 : Récupérer les données au format XML
Utilisez le connecteur HTTP pour récupérer les données relatives aux effectifs au format XML. Comme indiqué à l'étape 2, dans une étape ultérieure, nous comparerons l'ensemble de données XML à l'ensemble de données CSV afin d'identifier les différences.
- Ajouter une commande OBTENIR du connecteur HTTP à la chaîne.
- Connecter le nœud de départ (GET - Headcount in CSV Format) à la commande GET.
-
Configurez la commande en utilisant les valeurs suivantes :
Nom GET - Effectifs en format XML Nom de l'utilisateur <leave blank> Mot de passe <leave blank> Certificat CA <leave blank> Certificat <leave blank> Clé privée du certificat <leave blank> Afficher la réponse Vérifié URL cv-XML-Employé Variable de la chaîne Chaîne de requête <leave blank> Type de contenu application/xml Réponse <leave blank> - Sauvegarder la commande.
Étape 4 : Convertir le fichier XML en fichier délimité
Utiliser le connecteur XML pour convertir les données XML en format CSV, ce qui nous permet d'exploiter des commandes plus loin dans la chaîne qui attendent des données dans un format délimité.
- Ajouter une liste d'éléments au CSV Commande du connecteur XML à la chaîne.
- Connectez la commande GET - Headcount in XML Format à la commande Element List to CSV.
- Configurez la commande en utilisant les valeurs suivantes :
- Pour le paramètre Input File, sélectionnez Response Output de la commande GET - Headcount in XML Format.
- Laissez le paramètre Input Text vide.
- Pour le paramètre Path to root, entrez les informations suivantes dans l’enveloppe :
/employee_data/employee - Cochez la case du paramètre Preview Result.
-
Pour la section Columns, cliquez 12 fois sur le bouton Add.
Pour chacune des colonnes ajoutées, entrez le nom du champ de l’enregistrement de données prévisualisé à l’étape précédente dans les champs Column Name et XPath.
Exemple : emp_id⚠️ Le champ XPath est sensible à la casse et doit correspondre à la casse de l'enveloppe.
- Pour le paramètre Délimiteur de valeurs multiples, entrez une barre verticale (|).
- Sauvegarder la commande.
- Publier, exécuter et faire fonctionner la chaîne.
-
Examinez l'onglet Log du nœud de commande Element List to CSV - All Employees et confirmez qu'une liste d'employés est affichée.
⚠️ Ne sautez pas l'examen de l'exécution et des résultats de cette étape, car une copie de cette commande sera créée dans la chaîne et toute erreur devra ensuite être corrigée dans plusieurs instances de la commande.
Étape 5 : Transformer le fichier XML converti de délimité par des tabulations en délimité par des virgules
Utilisez le connecteur de transformation tabulaire pour convertir la sortie générée par la conversion XML d'un format délimité par des tabulations à un format délimité par des virgules.
- Ajouter une commande Change Delimiter du connecteur Tabular Transformation à la chaîne.
- Reliez la commande Element List to CSV - All Employees à la commande Change Delimiter.
- Configurez la commande en utilisant les valeurs suivantes :
- Nom : Changez le délimiteur - Tous les employés Modifier le délimiteur - Tous les employés
- Fichier d’entrée : Fichier converti Sortie de la liste d’éléments vers CSV - Tous les employés Commande
- Délimiteur d’entrée : \t
- Délimiteur de sortie : , (virgule), (virgule)
- Sauvegarder la commande.
Étape 6 : Comparer les ensembles de données CSV et XML pour identifier les différences
Utilisez Advanced Query pour identifier systématiquement les différences entre les ensembles de données XML et CSV natifs. Dans cet exemple, identifiez tous les enregistrements de l'ensemble de données XML qui sont différents ou manquants dans l'ensemble de données CSV. Les enregistrements supplémentaires trouvés dans l'ensemble de données CSV qui ne figurent pas dans l'ensemble de données XML ne seront pas identifiés par cet exercice.
- Ajouter une commande Advanced Query de Tabular Transformation Connector à la chaîne.
- Connectez la commande Change Delimiter - All Employees à la commande Advanced Query.
- Nommez la commande : Requête avancée - Tous les employés.
- Dans la section Tables, cliquez sur le bouton Add pour ajouter un deuxième onglet.
- Pour la première table :
- Spécifiez le résultat CSV de la commande Change Delimiter - All Employees.
- Spécifiez XML comme Nom de la table.
- Pour la deuxième table :
- Spécifiez le résultat de la réponse de la commande GET - Headcount in CSV Format.
Indiquez CSV comme nom de table . - Dans le paramètre Query, entrez ce qui suit :
Select * from XML EXCEPT Select * from CSV - Dans les champs Input Delimiter et Output Delimiter, spécifiez Comma.
- Cochez l'option Aperçu du résultat.
- Spécifiez le résultat de la réponse de la commande GET - Headcount in CSV Format.
- Pour la première table :
- Sauvegarder la commande.
- Publier, exécuter et faire fonctionner la chaîne.
-
Consultez l'onglet Log du nœud de commande Advanced Query - All Employees et confirmez que les ID des employés correspondent aux enregistrements retournés par la requête.
ID de l’employé 01-6875791 10-4199621 38-3932553 63-0417180 78-3600453 85-6818050 97-2828467
Étape 7 : Ajouter un groupe de commande
Ajouter un groupe de commande à la chaîne pour mieux organiser les commandes. Bien que cette étape soit requise dans le cadre de cet exercice, il ne s'agit pas d'une exigence technique pour la chaîne. Cette étape vise simplement à illustrer la possibilité d'organiser les nœuds d'une chaîne.
- Ajouter un groupe de commandes à la chaîne.
- Connectez la commande GET - Headcount in XML Format à la section In du groupe de commandes.
- Cliquez sur le groupe de commandes, puis sélectionnez l'icône de la pipette pour changer la couleur de la commande en rouge.
- Nom du groupe : Employés actifs.
Étape 8 : Filtrer les données CSV pour les employés actifs uniquement
Utilisez un filtre intelligent pour ne conserver que les enregistrements des employés actifs. Lors de la définition du filtre, nous supposons que le fait que le champ terminé (termed) soit vide indique qu'un employé est actif.
- Ajouter une commande Filtrage intelligent des lignes depuis le connecteur de transformation tabulaire à la chaîne
- Connectez le groupe Group Start du groupe de commande à la commande Smart Filter.
- Configurez la commande à l’aide des valeurs suivantes : Nom de la commande : Smart Filter Rows - CSV Data - Active Employees
- Nommez la commande : Smart Filter Rows - CSV Data - Active Employees.
- Pour le paramètre Input file, sélectionnez le paramètre Response Output à partir de la commande GET - Headcount in CSV Format.
- Laissez le paramètre Output file vide.
- Spécifiez Virgule comme Délimiteur.
- Dans la section Filtres, effectuez les étapes suivantes :
- Cliquez sur le bouton Add dans les filtres Text.
- Dans le paramètre Nom de la colonne, entrez appelé.
- Cochez l'option Insensible à la casse.
- Dans la liste déroulante Condition, sélectionnez Equals.
- Dans le paramètre Compare Text, entrez true.
- Vérifiez l'option Not.
- Ne cochez pas la case Trim.
Ce filtre permet d’identifier tous les enregistrements dont le champ « termed » ne contient pas la valeur true (c’est-à-dire qu’il contient « false » ou est vide).
- Ne décochez pas l’option Preview Result.
- L’option Inverse permet au filtre intelligent de conserver (coché) ou de supprimer (non coché) toutes les lignes qui correspondent aux critères de filtrage. Dans cet exercice, nous voulons conserver toutes les lignes où le champ « termed » a une valeur de true ou blank.
Pour ce faire, cochez la case Inverse. - Sauvegarder la commande.
Étape 8 : Filtrer les données CSV pour les employés actifs uniquement
Utilisez un filtre intelligent pour ne conserver que les enregistrements des employés actifs. Lors de la définition du filtre, nous partons du principe que si le champ terminated (« termed ») est vide, c’est qu’un employé est actif.
- Ajouter une commande Filtrage intelligent des lignes depuis le connecteur de transformation tabulaire à la chaîne
- Connectez le groupe Group Start du groupe de commande à la commande Smart Filter.
- Configurez la commande à l’aide des valeurs suivantes : Nom de la commande : Smart Filter Rows - CSV Data - Active Employees
- Nommez la commande : Smart Filter Rows - CSV Data - Active Employees.
- Pour le fichier d’entrée , sélectionnez la sortie de réponse à partir de la commande GET - Headcount in CSV Format.
- Laissez le paramètre Output file vide.
- Spécifiez Virgule comme Délimiteur.
- Dans la section Filtres,
- Cliquez sur le bouton Add dans les filtres Text.
- Dans le paramètre Nom de la colonne, entrez appelé.
- Cochez l'option Insensible à la casse.
- Dans la liste déroulante Condition, sélectionnez Equals.
- Dans le paramètre Compare Text, entrez true.
- Vérifiez l'option Not.
- Ne cochez pas la case Trim.
Ce filtre identifiera désormais tous les enregistrements dont le champ « termed » ne contient pas la valeur true (c’est-à-dire qu’il contient « false » ou est vide).
- Laissez la case Preview Result cochée (cochée).
- L’option Inverse permet au filtre intelligent de conserver (cochée) ou de supprimer (non cochée) toutes les lignes qui correspondent aux critères du filtre. Dans cet exercice, nous voulons conserver toutes les lignes dont le champ "termed" a la valeur "true" ou "blank". Pour ce faire, cochez la case Inverse.
- Sauvegarder la commande.
Étape 9 : Filtrer les données XML lors de la conversion en données délimitées
Dans cette étape, nous filtrons les données XML tout en les convertissant dans un format délimité afin d'identifier uniquement les employés actifs. Cet ensemble de données sera ensuite comparé à l'ensemble de données CSV filtré afin d'identifier les différences.
- Copiez la commande Element List to CSV - All Employees.
- Connectez le groupe Démarrez du groupe de commandes à la commande Element List to CSV - All Employees (Copy).
- Modifiez la commande en la nommant : Liste d’éléments au format CSV - Employés actifs.
- Dans le paramètre « Chemin d’accès à la racine », entrez ce qui suit :
/employee_data/employee[termed !=’true’]
Cela permettra d’identifier tout enregistrement dont le champ « termed » ne contient pas la valeur true (c’est-à-dire qu’il contient « false » ou est vide). - Sauvegarder la commande.
Étape 10 : Transformer les données XML filtrées en données délimitées par des virgules
Comme pour la liste complète des employés, la liste filtrée des employés actifs qui a été convertie de XML en liste délimitée par des tabulations doit être convertie en liste délimitée par des virgules.
- Copiez la commande Change Delimiter - All Employees.
- Relier la commande Element List to CSV - Active Employees à la commande Element Change Delimiter - All Employees (Copy).
- Configurez la commande en utilisant les valeurs suivantes.
- Nom : Modifier le délimiteur - Employés actifs.
- Modifiez le paramètre Fichier d'entrée pour utiliser le fichier converti Sortie de la commande Element List to CSV - Active Employees.
- Sauvegarder la commande.
Étape 11 : Vérifier les différences avec les salariés actifs
Comme pour la liste complète des employés, la liste filtrée des employés actifs qui a été convertie de XML en liste délimitée par des tabulations doit être convertie en liste délimitée par des virgules.
- Copiez la commande Advanced Query - All Employees.
- Connectez la commande Out du groupe de commandes à la commande Advanced Query - All Employees (Copy). La connexion de la commande Requête avancée - Tous les employés à la sortie de groupe garantit que tout ce qui est connecté au début du groupe se termine avant que la chaîne ne progresse vers les commandes de la sortie de groupe.
- Configurez la commande en utilisant les valeurs suivantes :
- Nom : Requête avancée - Employés actifs.
-
Dans la section Tables, modifiez le paramètre File pour les deux tables en utilisant les valeurs suivantes :
Tableau Fichier XML Résultat CSV à partir du changement de délimiteur - Commande Employés actifs CSV Sortie Smart Filter Row à partir des Smart Filter Rows - Active Only, CSV Data Command (commande de données CSV)
- Sauvegarder la commande.
Étape 12 : Tester l'exercice
Maintenant que la chaîne est terminée, testez le résultat.
- Publier la chaîne.
- Cliquez sur Execute et sélectionnez ensuite Run Chain.
- Une fois l’exécution de la chaîne terminée, cliquez sur le nœud Advanced Query - Active Employees.
- Dans l’onglet Outputs, confirmez que 4 enregistrements ont été produits.
-
Cliquez sur l'onglet Journaux et confirmez que les identifiants des employés correspondent aux enregistrements renvoyés par la requête.
ID de l’employé 01-6875791 63-0417180 78-3600453 85-6818050
Pour en savoir plus sur la transformation des données à l’aide de chaînes, consultez le site Connected Learning Paths - Transformation Introduction !