I denna Connected Learning Path kommer vi att skapa en kedja som illustrerar hur man konverterar en XML-fil till CSV. Vi kommer också att utforska hur man jämför dataset för att isolera skillnader.
| Primärt lärandemål | XML-anslutningen |
| Sekundära inlärningsmål | Tabular Transformation Smarta filter, ändra avgränsare och avancerade frågekommandon |
| Förkunskapskrav | Konfigurera XML Connector-anslutning |
| Mall för support | CLP | Åtkomst till XML-data |
Steg 1: Skapa en kedja
- Lägg till en ny kedja, och namnge kedjan: CLP | Åtkomst till XML-data.
- Skapa två kedjevariabler enligt följande:
- Klicka två gånger på plustecknet (+) under Chain Variables.
- Använd följande namn och värden för variablerna:
- XML-variabel
- Namn: cv-XML-Employee
- Värde: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employees.xml
- CSV-variabel
- Namn: cv-CSV-Employee
- Värde: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employee_detail.csv
- XML-variabel
- Rädda kedjan.
Steg 2: Hämta data i CSV-format
Använd HTTP Connector för att hämta data om antalet anställda i CSV-format. I senare steg kommer vi att hämta liknande information om antalet anställda i XML-format och sedan jämföra dataseten för att identifiera skillnader.
- Lägg till ett GET -kommando från HTTP Connector till Start-noden.
-
Konfigurera kommandot med hjälp av följande värden:
Namn GET - Antal anställda i CSV-format Användarens namn <leave> Lösenord <leave> CA-certifikat <leave> Certifikat <leave> Certifikat Privat nyckel <leave> Visa svar Markerad URL cv-CSV-Anställd Kedjevariabel Frågesträng <leave> Typ av innehåll text/csv Svar <leave> - Spara kommandot.
Steg 3: Hämta data i XML-format
Använd HTTP Connector för att hämta data om antalet anställda i XML-format. Som nämndes i steg 2 kommer vi i ett senare steg att jämföra XML-datasetet med CSV-datasetet för att identifiera skillnader.
- Lägg till ett GET -kommando från HTTP Connector i kedjan.
- Anslut startnoden (GET - Headcount in CSV Format) till GET Command.
-
Konfigurera kommandot med hjälp av följande värden:
Namn GET - Antal anställda i XML-format Användarens namn <leave> Lösenord <leave> CA-certifikat <leave> Certifikat <leave> Certifikat Privat nyckel <leave> Visa svar Markerad URL cv-XML-Employee Kedjevariabel Frågesträng <leave> Typ av innehåll applikation/xml Svar <leave> - Spara kommandot.
Steg 4: Konvertera XML-filen till avgränsad
Använd XML Connector för att konvertera XML-data till CSV-format så att vi kan utnyttja kommandon senare i kedjan som förväntar sig data i ett avgränsat format.
- Lägg till en elementlista i CSV Kommando från XML Connector till kedjan.
- Anslut kommandot GET - Headcount in XML Format till kommandot Element List to CSV .
- Konfigurera kommandot med hjälp av följande värden:
- För parametern Input File väljer du Response Output från kommandot GET - Headcount in XML Format .
- Lämna parametern Input Text tom.
- För parametern Path to root anger du följande kuvertinformation:
/employee_data/employee - Markera kryssrutan för parametern Preview Result .
-
För avsnittet Columns klickar du 12 gånger på knappen Add .
För var och en av de tillagda kolumnerna anger du namnet på fältet från den datapost som förhandsgranskades i föregående steg i både fälten Column Name och XPath .
Exempel: emp_id⚠️ XPath-fältet är skiftlägeskänsligt och måste överensstämma med kuvertets skiftlägeskod.
- För parametern Multi-value Delimiter anger du ett rör (|).
- Spara kommandot.
- Publicera, verkställa och köra kedjan.
-
Granska fliken Log i kommandonoden Element List to CSV - All Employees och bekräfta att en lista över anställda visas.
⚠️ Hoppa inte över granskningen av utförande och resultat i detta steg, eftersom en kopia av detta kommando kommer att skapas i kedjan och eventuella fel därefter måste korrigeras i flera instanser av kommandot.
Steg 5: Ändra den konverterade XML från tabbavgränsad till kommaseparerad
Använd Tabular Transformation Connector för att konvertera utdata som genereras från XML-konverteringen från ett tabbavgränsat format till ett kommaseparerat format.
- Lägg till ett Change Delimiter Command från Tabular Transformation Connector till kedjan.
- Koppla kommandot Element List to CSV - All Employees till kommandot Change Delimiter.
- Konfigurera kommandot med hjälp av följande värden:
- Namn: Ändra avgränsare - Alla anställda
- Indatafil: Konverterad fil Utdata från Element List till CSV - Alla anställda Kommando
- Avgränsare för inmatning: \t
- Avgränsare för utdata: , (kommatecken)
- Spara kommandot.
Steg 6: Jämför CSV- och XML-dataseten för att identifiera skillnader
Använd Advanced Query för att systematiskt identifiera skillnader mellan XML-datauppsättningar och ursprungliga CSV-datauppsättningar. I det här exemplet identifierar du alla poster i XML-datasetet som skiljer sig från eller saknas i CSV-datasetet. Eventuella ytterligare poster i CSV-datasetet som inte finns i XML-datasetet kommer inte att identifieras genom denna övning.
- Lägg till en Advanced Query Command från Tabular Transformation Connector till kedjan.
- Anslut kommandot Change Delimiter - All Employees till kommandot Advanced Query.
- Namnge kommandot: Avancerad fråga - Alla anställda.
- I avsnittet Tabeller klickar du på knappen Lägg till för att lägga till en andra flik.
- För det första bordet:
- Ange CSV-resultat Utdata från Ändra avgränsare - alla anställda Kommando.
- Ange XML som Tabellnamn.
- För det andra bordet:
- Ange Svarsutdata från GET - Headcount in CSV Format Kommando.
Ange CSV som Tabellnamn. - Ange följande i parametern Query (Fråga):
Välj * från XML UNDANTAG Välj * från CSV - I fälten Input Delimiter och Output Delimiter anger du Comma.
- Markera alternativet Förhandsgranskning av resultat.
- Ange Svarsutdata från GET - Headcount in CSV Format Kommando.
- För det första bordet:
- Spara kommandot.
- Publicera, verkställa och köra kedjan.
-
Granska fliken Logg på Avancerad fråga - Alla anställda Kommandonod och bekräfta att anställdas ID:n matchar nedanstående för de poster som returneras av frågan.
Anställdas ID 01-6875791 10-4199621 38-3932553 63-0417180 78-3600453 85-6818050 97-2828467
Steg 7: Lägg till en kommandogrupp
Lägg till en kommandogrupp i kedjan för att bättre organisera kommandon. Även om detta steg krävs för den här övningen, är det inte ett tekniskt krav för kedjan. Detta steg är bara för att illustrera möjligheten att organisera noder i en kedja.
- Lägg till en kommandogrupp i kedjan.
- Anslut kommandot GET - Headcount in XML Format till avsnittet In i kommandogruppen.
- Klicka på kommandogruppen och välj sedan droppikonen för att ändra kommandofärgen till röd.
- Namnge gruppen: Aktiva anställda.
Steg 8: Filtrera CSV-data för endast aktiva anställda
Använd ett smart filter för att bara behålla de poster där den anställde är aktiv. När vi definierar filtret antar vi att om fältet terminated (termed) är tomt innebär det att en anställd är aktiv.
- Lägg till ett Smart Filter Rows -kommando från Tabular Transformation Connector till kedjan.
- Anslut Group Start från Command Group till Smart Filter Command.
- Konfigurera kommandot med hjälp av följande värden:
- Namnge kommandot: Smart Filter Rows - CSV Data - Active Employees.
- För parametern Input file väljer du Response Output från kommandot GET - Headcount in CSV Format.
- Lämna parametern Output file tom.
- Ange Komma som Avgränsare.
- I avsnittet Filters ska du utföra följande steg:
- Klicka på knappen Add i filtren Text.
- I parametern Kolumnnamn skriver du in benämnd.
- Kontrollera alternativet Case Insensitive.
- Välj Equals i rullgardinsmenyn Condition.
- I parametern Compare Text anger du true.
- Kontrollera alternativet Not.
- Låt kryssrutan Trim vara avmarkerad.
Detta filter kommer nu att identifiera alla poster där fältet "termed" inte innehåller ett värde av true (dvs. det innehåller "false" eller är tomt).
- Låt alternativet Preview Result vara markerat.
- Alternativet Inverse gör att Smart Filter antingen behåller (markerat) eller tar bort (avmarkerat) alla rader som matchar filterkriterierna. I den här övningen vill vi behålla alla rader där fältet "termed" har värdet true eller blank.
Detta gör du genom att markera (kryssa i) kryssrutan Inverse . - Spara kommandot.
Steg 8: Filtrera CSV-data för endast aktiva anställda
Använd ett smart filter för att bara behålla de poster där den anställde är aktiv. När vi definierar filtret antar vi att om fältet terminated ("terminerad") är tomt innebär det att en anställd är aktiv.
- Lägg till ett Smart Filter Rows -kommando från Tabular Transformation Connector till kedjan.
- Anslut Group Start från Command Group till Smart Filter Command.
- Konfigurera kommandot med hjälp av följande värden:
- Namnge kommandot: Smart Filter Rows - CSV Data - Active Employees.
- För Input file, välj Response Output från kommandot GET - Headcount in CSV Format.
- Lämna parametern Output file tom.
- Ange Komma som Avgränsare.
- I avsnittet Filter,
- Klicka på knappen Add i filtren Text.
- I parametern Kolumnnamn skriver du in benämnd.
- Kontrollera alternativet Case Insensitive.
- Välj Equals i rullgardinsmenyn Condition.
- I parametern Compare Text anger du true.
- Kontrollera alternativet Not.
- Låt kryssrutan Trim vara avmarkerad.
Detta filter kommer nu att identifiera alla poster där fältet "termed" inte innehåller ett värde av true (dvs. det innehåller "false" eller är tomt).
- Lämna kryssrutan Preview Result markerad (markerad).
- Alternativet Inverse gör att Smart Filter antingen behåller (markerat) eller tar bort (avmarkerat) alla rader som matchar filterkriterierna. I den här övningen vill vi behålla alla rader där fältet termed har värdet true eller blank. Detta gör du genom att markera (kryssa i) kryssrutan Inverse .
- Spara kommandot.
Steg 9: Filtrera XML-data när du konverterar till avgränsad
I det här steget filtrerar vi XML-data samtidigt som vi konverterar till ett avgränsat format för att endast identifiera aktiva anställda. Detta dataset kommer sedan att jämföras med det filtrerade CSV-datasetet för att identifiera skillnader.
- Kopiera Element List till CSV - All Employees Command.
- Anslut Group Start från Command Group till Element List to CSV - All Employees (Copy) Command.
- Redigera kommandot och namnge det: Element List to CSV - Active Employees.
- I parametern "Path to root" skriver du följande:
/employee_data/employee[termed!='true']
Nu identifieras alla poster där fältet "termed" inte innehåller värdet true (dvs . innehåller "false" eller är tomt). - Spara kommandot.
Steg 10: Ändra filtrerade XML-data till kommaseparerade
Precis som med den fullständiga listan över anställda måste den filtrerade listan över aktiva anställda som har konverterats från XML till tabbavgränsad konverteras till kommaseparerad.
- Kopiera kommandot Ändra avgränsare - alla anställda.
- Anslut Element List to CSV - Active Employees Command till Element Change Delimiter - All Employees (Copy) Command.
- Konfigurera kommandot med hjälp av följande värden.
- Namn: Ändra avgränsare - Aktiva anställda.
- Ändra parametern Input file så att den använder Converted File Output från Element List to CSV - Active Employees Command.
- Spara kommandot.
Steg 11: Kontrollera skillnader med aktiva medarbetare
Precis som med den fullständiga listan över anställda måste den filtrerade listan över aktiva anställda som har konverterats från XML till tabbavgränsad konverteras till kommaseparerad.
- Kopiera Advanced Query - All Employees Command.
- Anslut Out i kommandogruppen till Advanced Query - All Employees (Copy) Command. Genom att koppla kommandot Advanced Query - All Employees till Group Out säkerställs att allt som är kopplat till Group Start avslutas innan kedjan går vidare till kommandona i Group Out.
- Konfigurera kommandot med hjälp av följande värden:
- Namn: Avancerad fråga - aktiva anställda.
-
I avsnittet Tables ändrar du parametern File för båda tabellerna med hjälp av följande värden:
Tabell Arkivering XML CSV-resultatutdata från den ändrade avgränsaren - Active Employees Command CSV Smart Filter Row Output från Smart Filter Rows - Endast aktiv, CSV-datakommando
- Spara kommandot.
Steg 12: Testa övningen
Nu när kedjan är klar kan du testa resultatet.
- Publicera kedjan.
- Klicka på Execute och välj sedan Run Chain.
- När kedjan har körts klart klickar du på noden Advanced Query - Active Employees .
- På fliken Outputs bekräftar du att 4 poster har matats ut.
-
Klicka på fliken Loggar och bekräfta att anställdas ID:n matchar nedanstående för de poster som returneras av frågan.
Anställdas ID 01-6875791 63-0417180 78-3600453 85-6818050
Om du vill lära dig mer om datatransformation med hjälp av kedjor kan du kolla in Connected Learning Paths - Transformation Introduction!