Excel vs Alteryx – Del 5: Hämta data från webtjänster

24 januari 2017

I Excel har det länge funnits möjlighet att koppla upp sig mot olika källor på nätet med så kallade webbfrågor. I detta inlägg tittar vi närmare på hur vi med hjälp av Alteryx kan bygga liknande funktionalitet och med enkelhet bygga på med ytterligare data från en extern data-leverantör och använda det i vår analys.

Vi fortsätter bygga på vårt flöde från tidigare blogginlägg men har nu fått en fråga från chefen om att rapportera resultatet från våra topp-kunder i Euro enligt riksbankens medelkurs för december. Denna information publiceras via ett så kallat API på riksbankens hemsida. Något som vi med enkelhet kan använda i Alteryx. (mer info på http://www.riksbank.se/sv/Rantor-och-valutakurser/Web-Services/)

Alteryx Download Tool

Det verktyg som vi denna gång ska använda heter Download och är huvudverktyget i Alteryx för att hämta data från internet och kan användas för allt ifrån att läsa av websidor till att koppla upp mot tjänster.

Konfigurera Download Tool

Första steget är att använda verktyget Text-input för att skapa en manuell variabel i form av en tabell för att ha länken till riksbankens tjänst. (Skriv in: http://swea.riksbank.se:80/sweaWS/services/SweaWebServiceHttpSoap12Endpoint)

När vi nu har länken kan vi koppla denna till verktyget Download

Nu behöver vi förbereda download tool för att skicka en fråga till Riksbanken, detta gör vi genom att lägga till en header i vår körning genom att på fliken Headers lägga till ”Content-Type”, ”text/xml; charset=UTF-8”. Detta berättar för Riksbankens tjänst vilket format vår fråga kommer att skickas som.

Definiera frågan

Nästa steg är att definiera frågan till Riksbankens tjänst och be om kurserna för december 2016. Detta görs genom ett så kallat SOAP-meddelande, som går att läsa mer om och hur de ska definieras på Riksbankens hemsida. I vårt exempel blir det enligt nedan.

<soap:Envelope xmlns:soap=”http://www.w3.org/2003/05/soap-envelope” xmlns:xsd=”http://swea.riksbank.se/xsd”>
<soap:Header/>

<soap:Body>

<xsd:getAnnualAverageExchangeRates>
<year>2016</year>
<month>12</month>
<languageid>en</languageid>
</xsd:getAnnualAverageExchangeRates>

</soap:Body>

</soap:Envelope>

Vilken vi för in i Download verktyget enligt nedan:


Hämta Webdata

När vi nu kör kommer vi få ett data-set med tre kolumner

  • URL – Adressen vi anropat
  • DownloadData – Svaret från Riksbanken i formen av ett XML meddelande. Detta returnerar data i två nivåer, Valutainformation med underliggande kurser.
  • DownloadHeaders – Sammanfattningen av det anrop vi gjort, om vi gjort rätt får vi en statuskod 200 som synes nedan.

Anpassa ditt hämtade webdata

Nästa steg är att konvertera XML-meddelandet vi fått i DownloadData till en form vi kan använda oss av. Det gör man med hjälp av verktyget XML-parse som omvandlar XML till användbara kolumner. Vi drar in XML-parse och väljer DownloadData som fältet som ska hanteras. Detta ger oss information om valutan, vi klickar även in ”Return Outer XML” för att kunna utföra ytterligare XML-hantering och få fram kurserna.

Eftersom det meddelande vi fått har två nivåer behöver vi ytterligare ett XML-parse verktyg för att få ut växlingskurserna. Denna gång väljer vi fältet resultrows_outerxml för hantering.

När vi nu kör flödet kan vi se att vi fått ett par nya kolumner, b.la. seriesname, valuta, samt average, medelkurs för december 2016.

För att förenkla jobbet framåt lägger vi nu in ett Select-verktyg. Med detta kan vi välja ut de kolumner vi vill arbeta med. Genom att välja bort oanvända kolumner sparar vi både minne samt förenklar jobbet framåt.

Vi väljer nu bara ut seriesname, unit samt average. Vi ändrar även datatypen för average till float så att vi kan använda det fältet för beräkningar.

Nästa steg är att lägga på ett filter så att vi bara får ut kursen för EUR.

Kombinera din webdata med befintligt flöde

När detta är gjort är vi redo att kombinera vårt tidigare flöde med det som hämtar valutakurser. Det gör vi genom att använda verktyget Append-fields. Det fungerar genom att den för varje rad i T lägger på kolumnerna från S.

Som synes nedan har vi nu kombinerat valutainformationen med det tidigare försäljningsdatat.

Sista steget nu är att använda valutakursen och räkna ut ett nytt fält kallat Sum_Belopp_EUR genom att använda ett Formula-verktyg.

Slutresultat

Vi har nu fått fram ett flöde som kombinerar våra tre datakällor och räknar fram det nya fältet, sum_belopp_eur med beloppet i euro.

Läs gärna mina andra delar i serien om Alteryx och Excel:
Excel vs Alteryx – Del 1: Hur gör man VLOOKUP i Alteryx?
Excel vs Alteryx – Del 2: Vad är Alteryx motsvarighet till Excels Pivotering?
Excel vs Alteryx – Del 3: Formler och skript
Excel vs Alteryx – Del 4: Filtrering av data i Alteryx

Redo att testa Alteryx?
Läs mer, ladda ner och testa gratis i 2 veckor här