I denne Connected Learning Path skal vi lage en kjede som illustrerer hvordan du konverterer en XML-fil til CSV. Vi vil også utforske hvordan man kan sammenligne datasett for å isolere forskjeller.
| Primært læringsmål | XML-kontakten |
| Sekundære læringsmål | Smartfiltre for tabelltransformasjon, endring av skilletegn og avanserte søkekommandoer |
| Forutsetninger | Konfigurere XML Connector-tilkobling |
| Støttemal | CLP | Tilgang til XML-data |
Trinn 1: Opprett en kjede
- Legg til en ny Chain, og gi kjeden et navn: CLP | Accessing XML Data.
- Opprett to Chain-variabler på følgende måte:
- Under Kjedevariabler klikker du på plusstegnet (+) to ganger.
- Bruk følgende navn og verdier for variablene:
- XML-variabel
- Navn: cv-XML-Employee
- Verdi: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employees.xml
- CSV-variabel
- Navn: cv-CSV-Employee
- Verdi: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employee_detail.csv
- XML-variabel
- Redd kjeden.
Trinn 2: Hent data i CSV-format
Bruk HTTP Connector til å hente data om antall ansatte i CSV-format. I senere trinn vil vi hente inn lignende informasjon om antall ansatte i XML-format og deretter sammenligne datasettene for å identifisere forskjeller.
- Legg til en GET -kommando fra HTTP Connector til Start-noden.
-
Konfigurer kommandoen ved hjelp av følgende verdier:
Navn GET - Antall ansatte i CSV-format Brukernavn <la stå tomt> Passord <la stå tomt> CA-sertifikat <la stå tomt> Sertifikat <la stå tomt> Sertifikatets private nøkkel <la stå tomt> Vis svar Kontrollert URL cv-CSV-Employee Kjedevariabel Forespørselsstreng <la stå tomt> Innholdstype tekst/csv Svar <la stå tomt> - Lagre kommandoen.
Trinn 3: Hent data i XML-format
Bruk HTTP Connector til å hente inn data om antall ansatte i XML-format. Som nevnt i trinn 2 vil vi i et senere trinn sammenligne XML-datasettet med CSV-datasettet for å identifisere forskjeller.
- Legg til en GET -kommando fra HTTP Connector i kjeden.
- Koble startnoden (GET - Headcount i CSV-format) til kommandoen GET.
-
Konfigurer kommandoen ved hjelp av følgende verdier:
Navn GET - Antall ansatte i XML-format Brukernavn <la stå tomt> Passord <la stå tomt> CA-sertifikat <la stå tomt> Sertifikat <la stå tomt> Sertifikatets private nøkkel <la stå tomt> Vis svar Kontrollert URL cv-XML-Employee Kjedevariabel Forespørselsstreng <la stå tomt> Innholdstype application/xml Svar <la stå tomt> - Lagre kommandoen.
Trinn 4: Konverter XML-filen til avgrenset
Bruk XML Connector til å konvertere XML-dataene til et CSV-format, slik at vi kan utnytte kommandoer senere i kjeden som forventer data i et avgrenset format.
- Legg til en Element List to CSV Kommando fra XML Connector til kjeden.
- Koble kommandoen GET - Headcount in XML Format til kommandoen Element List to CSV.
- Konfigurer kommandoen ved hjelp av følgende verdier:
- For parameteren Input File velger du Response Output fra kommandoen GET - Headcount in XML Format.
- La parameteren Input Text stå tom.
- For parameteren Path to root skriver du inn følgende konvoluttinformasjon:
/employee_data/employee - Merk av for parameteren Preview Result.
-
For Kolonner klikker du på Legg til -knappen 12 ganger.
For hver av kolonnene som er lagt til, skriver du inn navnet på feltet fra dataposten som ble forhåndsvist i forrige trinn, både i feltene Column Name og XPath.
Eksempel: emp_id⚠️ XPath-feltet skiller mellom store og små bokstaver og må stemme overens med konvolutten.
- For parameteren Flerverdiskilletegn angir du en pipe (|).
- Lagre kommandoen.
- Publiser, utfør og kjør kjeden.
-
Se gjennom fanen Log i Element List to CSV - All Employees Kommandonode, og bekreft at det vises en liste over ansatte.
⚠️ Ikke hopp over utførelsen og resultatgjennomgangen av dette trinnet, da en kopi av denne kommandoen vil bli opprettet i kjeden, og eventuelle feil må korrigeres på tvers av flere forekomster av kommandoen.
Trinn 5: Endre den konverterte XML-filen fra tabulatoravgrenset til kommaseparert
Bruk Tabular Transformation Connector til å konvertere utdataene som genereres fra XML-konverteringen fra et tabulatoravgrenset format til et kommaseparert format.
- Legg til en Change Delimiter Command fra Tabular Transformation Connector til kjeden.
- Koble kommandoen Element List to CSV - All Employees til kommandoen Change Delimiter.
- Konfigurer kommandoen ved hjelp av følgende verdier:
- Navn: Endre skilletegn - Alle ansatte
- Inndatafil: Konvertert fil Utdata fra Element List til CSV - Alle ansatte Kommando
- Skilletegn for inndata: \t
- Skilletegn for utdata:, (komma)
- Lagre kommandoen.
Trinn 6: Sammenlign CSV- og XML-datasettene for å identifisere forskjeller
Bruk Advanced Query til å systematisk identifisere forskjeller mellom XML- og opprinnelige CSV-datasett. I dette eksemplet identifiserer du alle poster i XML-datasettet som er forskjellige fra eller mangler i CSV-datasettet. Eventuelle ekstra poster som finnes i CSV-datasettet, men som ikke finnes i XML-datasettet, vil ikke bli identifisert ved hjelp av denne øvelsen.
- Legg til en Advanced Query Command fra Tabular Transformation Connector til kjeden.
- Koble kommandoen Change Delimiter - All Employees til kommandoen Advanced Query.
- Gi kommandoen et navn: Avansert spørring - Alle ansatte.
- I delen Tables klikker du på knappen Add for å legge til en ny fane.
- For det første bordet:
- Angi CSV-resultat Utdata fra Endre skilletegn - alle ansatte Kommando.
- Angi XML som Tabellnavn.
- For den andre tabellen:
- Angi Response Output fra kommandoen GET - Headcount in CSV Format.
Angi CSV som Tabellnavn. - Skriv inn følgende i Query-parameteren:
Velg * fra XML Unntatt Velg * fra CSV - I feltene Input Delimiter og Output Delimiter angir du Comma.
- Merk av for Forhåndsvisning av resultater.
- Angi Response Output fra kommandoen GET - Headcount in CSV Format.
- For det første bordet:
- Lagre kommandoen.
- Publiser, utfør og kjør kjeden.
-
Se gjennom fanen Log i Advanced Query - All Employees Command node, og bekreft at medarbeider-ID-ene stemmer overens med postene som returneres av spørringen.
Ansattes ID 01-6875791 10-4199621 38-3932553 63-0417180 78-3600453 85-6818050 97-2828467
Trinn 7: Legg til en kommandogruppe
Legg til en kommandogruppe i kjeden for å organisere kommandoer på en bedre måte. Selv om dette trinnet er påkrevd i forbindelse med denne øvelsen, er det ikke et teknisk krav for kjeden. Dette trinnet er kun for å illustrere muligheten til å organisere noder i en kjede.
- Legg til en Command Group i kjeden.
- Koble kommandoen GET - Headcount in XML Format til In-seksjonen i kommandogruppen.
- Klikk på Kommandogruppen, og velg deretter dråpeikonet for å endre kommandofargen til red.
- Gi gruppen et navn: Aktive ansatte.
Trinn 8: Filtrer CSV-data kun for aktive ansatte
Bruk et smartfilter for å beholde bare de medarbeideroppføringene der medarbeideren er aktiv. Når vi definerer filteret, antar vi at det at feltet avsluttet (terminert) er tomt, betyr at den ansatte er aktiv.
- Legg til en Smart Filter Rows -kommando fra Tabular Transformation Connector til kjeden.
- Koble Group Start fra kommandogruppen til Smart Filter Command.
- Konfigurer kommandoen ved hjelp av følgende verdier:
- Gi kommandoen et navn: Smartfilterrader - CSV-data - Aktive ansatte.
- For parameteren Input file velger du Response Output fra kommandoen GET - Headcount in CSV Format.
- La filparameteren Output stå tom.
- Angi Komma som Skilletegn.
- I delen Filters utfører du følgende trinn:
- Klikk på knappen Add på Text filtre.
- I parameteren Kolonnenavn skriver du inn med betegnelsen.
- Merk av for Case Insensitive.
- Velg Equals fra rullegardinmenyen Condition.
- I parameteren Compare Text skriver du inn true.
- Merk av for alternativet Not.
- La avkrysningsruten Trim være avmerket.
Dette filteret vil nå identifisere alle poster der feltet "termed" ikke inneholder en verdi på true (det vil si at det inneholder "false" eller er tomt).
- La alternativet Forhåndsvisning av resultat være avmerket.
- Alternativet Inverse gjør at Smartfilteret enten beholder (avkrysset) eller fjerner (ikke avkrysset) alle rader som samsvarer med filterkriteriene. I denne øvelsen ønsker vi å beholde alle radene der feltet "termed" har verdien true eller blank.
For å oppnå dette merker du av for Inverse. - Lagre kommandoen.
Trinn 8: Filtrer CSV-data kun for aktive ansatte
Bruk et smartfilter for å beholde bare de medarbeideroppføringene der medarbeideren er aktiv. Når vi definerer filteret, antar vi at det at feltet avsluttet ("termined") er tomt, betyr at den ansatte er aktiv.
- Legg til en Smart Filter Rows -kommando fra Tabular Transformation Connector til kjeden.
- Koble Group Start fra kommandogruppen til Smart Filter Command.
- Konfigurer kommandoen ved hjelp av følgende verdier:
- Gi kommandoen et navn: Smartfilterrader - CSV-data - Aktive ansatte.
- For Input file, velg Response Output fra kommandoen GET - Headcount in CSV Format.
- La filparameteren Output stå tom.
- Angi Komma som Skilletegn.
- I delen Filters,
- Klikk på knappen Add på Text filtre.
- I parameteren Kolonnenavn skriver du inn med betegnelsen.
- Merk av for Case Insensitive.
- Velg Equals fra rullegardinmenyen Condition.
- I parameteren Compare Text skriver du inn true.
- Merk av for alternativet Not.
- La avkrysningsruten Trim være avmerket.
Dette filteret vil nå identifisere alle poster der feltet "termed" ikke inneholder en verdi på true (det vil si at det inneholder "false" eller er tomt).
- La avmerkingsboksen Preview Result være merket av (avkrysset).
- Alternativet Inverse gjør at Smartfilteret enten beholder (avkrysset) eller fjerner (ikke avkrysset) alle rader som samsvarer med filterkriteriene. I denne øvelsen ønsker vi å beholde alle radene der feltet termed har verdien true eller blank. For å oppnå dette merker du av for Inverse.
- Lagre kommandoen.
Trinn 9: Filtrer XML-data mens du konverterer til avgrenset
I dette trinnet filtrerer vi XML-dataene mens vi konverterer dem til et avgrenset format for å identifisere kun aktive ansatte. Dette datasettet vil deretter bli sammenlignet med det filtrerte CSV-datasettet for å identifisere forskjeller.
- Kopier Element List til CSV - Alle ansatte Kommando.
- Koble Group Start fra Command Group til Element List to CSV - All Employees (Copy) Kommando.
- Rediger kommandoen, og gi den et navn: Element List to CSV - Active Employees.
- I parameteren "Path to root" skriver du inn følgende.
/employee_data/employee[termed!='true']
Dette vil nå identifisere alle poster der feltet "termed" ikke inneholder en verdi på true (det vil si at det inneholder "false" eller er tomt). - Lagre kommandoen.
Trinn 10: Endre de filtrerte XML-dataene til kommaseparert
I likhet med den fullstendige ansattlisten må den filtrerte listen over aktive ansatte som er konvertert fra XML til tabulatorseparert, konverteres til kommaseparert.
- Kopier kommandoen Change Delimiter - All Employees.
- Koble Element List to CSV - Active Employees Command til Element Change Delimiter - All Employees (Copy) Command.
- Konfigurer kommandoen ved hjelp av følgende verdier.
- Navn: Endre skilletegn - Aktive ansatte.
- Endre parameteren Input file til å bruke Converted File Output fra kommandoen Element List to CSV - Active Employees.
- Lagre kommandoen.
Trinn 11: Se etter forskjeller med aktive medarbeidere
I likhet med den fullstendige ansattlisten må den filtrerte listen over aktive ansatte som er konvertert fra XML til tabulatorseparert, konverteres til kommaseparert.
- Kopier kommandoen Advanced Query - All Employees.
- Koble Out i kommandogruppen til kommandoen Advanced Query - All Employees (Copy). Ved å koble kommandoen Avansert spørring - Alle ansatte til Gruppe ut sikrer du at alt som er koblet til Gruppestart, avsluttes før kjeden går videre til kommandoene i Gruppe ut.
- Konfigurer kommandoen ved hjelp av følgende verdier:
- Navn: Avansert spørring - aktive ansatte.
-
I delen Tables endrer du parameteren File for begge tabellene ved å bruke følgende verdier:
Tabell Fil XML CSV-resultatutdata fra kommandoen Endre avgrensning - aktive ansatte CSV-fil Smartfilterradutdata fra Smartfilterrader - Kun aktiv, CSV-datakommando
- Lagre kommandoen.
Trinn 12: Test øvelsen
Nå som kjeden er ferdig, kan du teste resultatet.
- Publiser the Chain.
- Klikk på Execute og velg deretter Run Chain.
- Når kjeden er ferdig kjørt, klikker du på noden Advanced Query - Active Employees.
- På Utdata -fanen kan du bekrefte at 4 poster ble sendt ut.
-
Klikk på fanen Logger, og bekreft at medarbeider-ID-ene stemmer overens med postene som spørringen returnerer.
Ansattes ID 01-6875791 63-0417180 78-3600453 85-6818050
Hvis du vil lære mer om datatransformasjon ved hjelp av kjeder, kan du sjekke ut Connected Learning Paths - Transformation Introduction!