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

  • 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.

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.

2 comments on “Asiakastietojen rikastaminen avoimella PRH-datalla SSIS:ssä

  1. Asko Kauppinen on

    R kielellä voi myös demota tätä, joskin olen havainnut että tosi isossa luupissa käy poikkeuksetta niin että jollain kierroksella ei PRH:n palvelin prosessoi kyselyä ja tulee virhetilanne.

    Vastaa
  2. Jani Liimatta on

    Testasin luupata pariin otteeseen 2000:lla y-tunnuksella, jokainen luuppi teki 5 samanaikaista rest-kutsua. En saanut virhetilannetta syntymään.

    Vastaa

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Yhteydenotto

Mikäli olet kiinnostunut yrityskohtaisista palveluista tai sinulla kysyttävää palvelujemme sisällöstä, niin ota yhteyttä oheisella lomakkeella tai soita Mikalle numeroon 040 845 8432.

Please leave this field empty.