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
- Osoitetiedot
- Yritysten lakkaamistiedot
- Sulautumiset, uudet y-tunnukset, yritysmuodon muuttumiset
- Toimialatiedot
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.
Preview-välilehdellä pääsee kätevästi tarkastelemaan, onnistuivatko asetukset. Tässä onnistuivat – Json-data on nätisti mappautunut tehtyihin sarakkeisiin.
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.
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.