07.01.2016

Asiakastietojen rikastaminen avoimella PRH-datalla SSIS:ssä

ERP:in ja CRM:n asiakastiedot ovat monasti rämettyneitä. Yritysasiakkaiden tiedot on onneksi helpompi päivittää ajan tasalle kuin kuluttaja-asiakkaiden. Tässä käydään teknisesti läpi miten PRH:n tarjoamaa avointa dataa voidaan käyttää SSIS-välineillä. Tavoite on siis päivittää yritysasiakkaiden tiedot ajantasaisiksi.

PRH on julkaissut JSON-rajapinnan kautta YTJ-tietopalvelun sisältämän datan. Tätä kautta saadaan näppärästi, halvalla ja vaikka päivittäin yritysten

Eli ne olellisimmat. Liikevaihtotiedot, tulostiedot, luottokelpoisuudet jne. täytyy toki ostaa erikseen esim. Asiakastiedolta tai Fonectalta – mutta tärkeintä on toki ensin päästä tilanteeseen, jossa asiakkaiden joukossa ei ole esim. päättyneitä y-tunnuksia.

PRH:lla on tarjolla näppärä käyttöliittymä datan tarkastelemiseen http://avoindata.prh.fi/ytj.html, jossa avointa rajapintaa pääsee testaamaan.

Tässä demossa käytetään Pragmatic Worksin Task Factoryyn kuuluvaa Rest Source:a datan lukemiseksi SSIS:ään. Ilmainen avoimen lähdekoodin komponenttikin on tähän olemassa, esim. https://jsonsource.codeplex.com/, toki tuollaisen koodailee itsekin aikan nopeasti. Valmista, natiivia Json-tietolähdettä ei SSIS:stä löydy.

Homma lähtee asentamalla Pragmatic Works Task Factory (TF). Kehityskäytössä TF ilmainen. Tuotantokäytössä Rest Source:n sisältävä versio TF:stä kustantaa luokkaa 1500 USD. Task Factoryyn sisältyy monta muutakin hyvin hyödyllistä komponenttia.

Yritystietojen haku massana PRH:lta

Itse Json-datan lukeminen ei vaadi juurikaan asetuksia Connection Manageriin, koska tässä tapauksessa data on avointa, eikä käyttäjätunnistusta tarvita. Endpoint URL:nä voi käyttää suoraan esimerkkiä PRH:n sivuilta. Se rajoittaa testattaessa yritysmäärää sopivasti.

Root Json Path on PRH-datan tapauksessa ‘results’.

Lisäksi on määriteltävä Column Name:t sekä Token Path:it. Eli Column Name on sarakkeen nimi, joka tulee komponentista ulos – ja Token Path viittaa Json-määrittelyyn.

Rest Source

 

Preview-välilehdellä pääsee kätevästi tarkastelemaan, onnistuivatko asetukset. Tässä onnistuivat – Json-data on nätisti mappautunut tehtyihin sarakkeisiin.

Rest Source Preview

Yritystiedot sisältävät varsin rajoitetusti tietoa. Tarkempien yritystietojen hakuun on käytettävä toista rajapintaa – jossa täytyy parametroida kyseltävä yritys.

Tästä eteenpäin data luonnollisesti kirjoitetaan tietokantaan – ja jatkokäytetään tarvittavilla tavoilla. Perus-SSIS:ään tai SQL:ään ei tässä kohtaa mennä.

 

Olemassaolevien asiakastietojen rikastaminen

Olemassaolevien yritystietojen rikastaminen on tehtävä siis yksi yritys kerrallaan. Eli SSIS-komponentteja käytettäessä on kätevintä sijoittaa TF Rest Source For Each-loopin sisälle. On siis tehtävä yksi kutsu per yksi yritys – ja parametroitava y-tunnus. Esimerkissä on luotu muuttuja BusinessID, jonka avulla Rest-rajapinta hakee yhden yrityksen tiedot kerrallaan.

Esimerkiksi businessIdChanges-kohta Json:ista saadaan otettua talteen määrittelemällä Root Json Path ‘..businessIdChanges’. Alla on määritelty käyttöön sarakkeet NewBusinessId – eli uusi Y-tunnus, syykoodi, muutospäivä sekä vanha Y-tunnus.

Rest Company

Valmiskomponentin huono puoli on se, että jokaista path-kohtaa kohti täytyy tehdä oma source – ja yhdistää ne SSIS:n Data Flow:ssa. Ja toki noita kutsuja PRH:n sivuille tulee minimissään 1/asiakasyritys – eli tuhansien yritysten tietojen haku voi viedä hetken. Jos tarvittavaa dataa on useammasa path:issa Json:in sisällä, on tällä komponentilla käytännössä tehtävä useampi rest-kysely PRH:n palvelimelle per asiakasyritys.

Share
Contact Person

Blog writer

Jani Liimatta

Vincit Bilot

Bilot & Vincit have joined forces!

See where the story continues 

You have Successfully Subscribed!

Vincit Bilot

Bilot & Vincit have joined forces!

See where the story continues 

You have Successfully Subscribed!