RPA (Robotic Process Automation) -hankkeissa automatisoidaan ihmisen tekemää manuaalista työtä. Kehittäjän näkökulmasta projektit saattavat vaikuttaa oudoilta.

Miksei toteuteta tarvittavia integraatioita ja ratkaista ongelmaa oikeasti?

Käytännössä tämä ei aina ole mahdollista. Ihmisen suorittama manuaalinen osuus saattaa olla vain pieni osa laajempaa kokonaisuutta, jonka sähköistäminen kokonaan olisi huomattavan monimutkaista. RPA tarjoaa näissä tilanteissa usein pikavoittoja.

RPA-työkalut ovat aivan oma maailmansa. Voit kuitenkin toteuttaa pieniä RPA-ratkaisuja myös Office 365:n tutuilla työkaluilla. Tänään tehdään malliksi sellainen.

Esimerkki – alihankkijoiden tunnusten tilaaminen

Kuvitellaan yritys jossa tulee ja menee henkilöitä eri alihankkijoilta. Henkilöitä aloittaa joka viikko. Jotta uusi henkilö voi aloittaa työt, tulee

  • henkilö olla lisättynä yrityksen HR-järjestelmään
  • henkilöllä olla yrityksen AD-tunnus
  • henkilöllä olla pääsy yrityksen tuntikirjausjärjestelmään
  • henkilön allekirjoittaa NDA:n

Alihankkijoiden sisäänotto on esimiesten työtä. Suoraviivaista, mutta varsin virheherkkää.

  • Esimies täyttää uuden työntekijän lomakkeen (word) ja lähettää sen HR:ään
  • 1-3 päivän kuluessa HR:stä saapuu automaattivastaus sisältäen uuden henkilön henkilönumeron
  • HR-järjestelmään luotu uusi henkilö laukaisee toisen prosessin, jonka päätteeksi (1-3 päivän kuluessa) esimiehelle tulee tieto henkilölle luodusta AD-tunnuksesta
  • Tuntikirjaustunnuksia ei voi tilata ennen kuin sekä henkilönumero että AD-tunnus ovat tiedossa. Tunnukset tilataan word-lomakkeella.
  • Kun tunnukset ovat valmiit, esimies lähettää henkilölle tervetuloviestin sisältäen ohjeet, tunnukset sekä NDA:n allekirjoitettavaksi.

Mikäli prosessin käynnistänyt esimies sairastuu, ei kukaan tiedä missä vaiheessa tunnuksen tilaaminen menee. Ja tunnuksen saamisen viivästymisellä on suora vaikutus projekteihin.

Eiköhän automatisoida esimiehen osuus prosessissa.

SharePoint-lista ja Word-lomakkeet

Aluksi tehdään muutama valmisteleva toimenpide. Luodaan SharePoint-lista, johon tallennamme väliaikaisesti henkilön tietoja.

rpa - sps lista.pngSeuraavaksi muokkaamme HR:n käyttämää henkilön perustamislomaketta. Täytetään vakiotiedot valmiiksi (esimiehen nimi, kustannuspaikka, viikkotyöaika ja sijainti) ja vaihdetaan loppujen kenttien arvoiksi kentät (Field).

Klikataan Insert-välilehdeltä pientä Explore Quick-Parts -painiketta ja valitaan Field. Valitaan tyypiksi MergeField ja nimetään se (kuvassa phone).

rpa - uuden kentän teko.png

Muokattu lomake näyttää tältä. Työntekijän tiedot ovat kenttiä, joita voimme muokata työnkulussa!

rpa - uusi työntekijä lomake.png

Valmistellaan vastaavalla tavalla Word-lomake, jolla haetaan tunnukset tuntikirjaustyökaluun.

hour reporting 1.png

Sekä työntekijälle lähetettävä salassapitosopimus.

nda.png

Tallennetaan lomakkeet OneDriveen, josta niitä on Flow:n helppo käyttää.

Vaihe 1 – Prosessin käynnistäminen

Esimies käynnistää tunnusten tilausprosessin. Luodaan painikkeella käynnistettävä työnkulku, johon esimies syöttää uuden henkilön nimen, puhelinnumeron, hetun sekä sähköpostiosoitteen.

rpa - start process 1.png

Emme pysty toteuttamaan koko prosessia yhdellä työnkululla. Tästä johtuen tallennetaan osa tiedoista jatkoa varten SharePoint -listaan.

rpa - start process 2.png

Seuraavaksi täytetään HR:n lomake henkilön tiedoilla. Haetaan mallipohja OneDrivestä ja päivitetään kenttien arvot (etunimi, sukumimi jne) oikeiksi. Tämä onnistuu helposti Plumsail:in connectorilla (maksullinen, 19$/kk).

rpa - start process 3.png

Valmis lomake lähetetään lopuksi HR:ään.

rpa - start process 4

Tässä vaiheessa alkaa odottelu. Jonka ulkoistamme senkin Flow:lle.

Vaihe 2 – Henkilö on luotu HR-järjestelmään

Esimies saa vakiomuotoisen sähköpostin heti kun henkilö on luotu HR-järjestelmään. Tarvitsemamme tieto (henkilönumero) löytyy sähköpostin otsikosta.

rpa - hr responses 1.png

Tehdään työnkulku joka poimii viestin otsikosta henkilönumeron ja tallentaa sen väliaikaiseen SharePoint-listaamme. Työnkulku käynnistyy ainoastaan HRSupport-osoitteesta saapuvista sähköposteista.

rpa - hr responses 2

Sähköpostin otsikosta pitää kaivaa esiin henkilön nimi ja henkilönumero. Mennään siitä missä aita on matalin ja oletetaan sähköpostin otsikon olevan aina muotoa: ”Uusi käyttäjä luotu (Etunimi Sukunimi:henkilönumero)”.

  • Poistetaan otsikon alusta ”Uusi käyttäjä luotu (”
  • Poistetaan otsikon lopusta ”)”
  • Jaetaan jäljelle jäänyt merkkijono kahteen osaan ”:” merkin kohdalta

Lopputuloksena on kaksi merkkijonoa. Toinen sisältää henkilön nimen ja toinen henkilönumeron.

rpa - hr responses 2b

Haetaan SharePoint-listasta kyseisen henkilön rivi ja lisätään siihen henkilönumero.

rpa - hr responses 3.png

Ja sitten jäämme odottelemaan sähköpostia, jossa on aloittavan henkilön AD-tunnus.

Vaihe 3 – Henkilölle on luotu AD-tunnus

HR:n käynnistämän AD-tunnuksen tilausprosessin päätteeksi esimies saa sähköposti-ilmoituksen alihankkijalle luodusta tunnuksesta.

rpa - ad account has been created 0.png

Tehdään kolmas työnkulku joka purkaa viestin ja hoitaa prosessin maaliin. Valitettavasti työnkulkumme kaipaamat tiedot ovat sähköpostin viesti-osassa. Tästä johtuen tietojen poimiminen on vähintäänkin mielenkiintoista. Lyhyesti:

  • Sähköposti on html-muodossa -> muutetaan viestin body tekstiksi (Html to text)
  • Haluamme päästä käsiksi viestin tiettyihin riveihin. Flow:ssa ei voi käyttää tunnettuja rivinvaihtomerkkejä, joten sellainen pitää tehdä itse...
    • Luodaan muuttujaan merkkijono, johon on käsin lyöty rivivaihto (Initialize variable)
    • Muodostetaan muuttujan merkkijonosta rivinvaihtomerkki  (compose linebreak)
  • Nyt voimme muodostaa viestistä taulukon (array), jossa viestin rivit ovat omissa soluissaan  (Split with linebreak)

Näin pääsemme käsiksi haluamiimme tietoihin.

  • Get username –toiminnossa  haetaan  sähköpostin käyttäjätiedon sisältävä rivi (User: Pekka Pekkanen) komennolla outputs(’Compose_3’)[4] 
  • Rivi jaetaan vielä kahten osaan ”:” -merkin kohdalta toiminnossa Get username array. Nyt Get username array:n outputin toinen alkio sisältää käyttäjän nimen.
  • Vastaavalla tavalla haetaan käyttäjän ad-tunnus.

rpa - ad account has been created

Ei tämä nyt aivan yksinkertaista ollut…

Flow:ta mainostetaan helppona loppukäyttäjän työkaluna. Mitä se onkin. Työnkulkujen monimutkaistuessa vaikeutuu kuitenkin valittettavasti myös niiden tekeminen.

Loppu on onneksi helppoa.

Haetaan SharePoint-listasta henkilölle aiemmin luotu henkilönumero. Hakuehtona käytetään suurella vaivalla sähköpostista äsken kaivamaamme henkilön nimeä.

rpa - ad account has been created 2.png

Meillä on vihdoin kasassa tiedot, jotka tarvitaan tuntikirjaustyökalun tunnusten hakemiseen. Täytetään tunnuslomake Plumsail:in yhdistimellä ja lähetetään se eteenpäin oikeaan osoitteeseen.

hour reporting 2.png

Vaihe 4 – Viesti uudelle työntekijälle

Lopuksi lähetetään kaikki tarpeellinen tieto uudelle alihankkijalle (cc:nä esimiehelle jotta hänkin tietää kaiken olevan valmista).

  • AD-tunnus
  • Henkilönumero
  • Liitteinä uuden työntekijän ohjeet sekä salassapitosopimus allekirjoitettavaksi

Lisäksi lähetetään esimiehelle push-notifikaatio sekä poistetaan henkilön tiedot SharePoint-listasta.

end of process.png

Usean liitteen lisääminen Flow:ssa sähköpostiin on muuten yllättävän työlästä…

Lopputulos

Miltä ratkaisu käytännössä näyttää? Esimies täyttää aluksi uuden työntekijän tiedot puhelimensa Flow-sovelluksella.

Tämän jälkeen Flow lähettää ja lukee esimiehen puolesta tunnusten luontiin liittyviä sähköposteja. Kun kaikki on valmista, saa esimies tiedon puhelimeensa. Hänelle lähetetään myös sama sähköposti kuin aloittavalle työntekijällekin.

Yhteenveto

Tämänkertaisen harjoituksen vaikein osuus oli parsia tarvittava tieto saapuvien sähköpostien sisällöstä. Lopputulos on kuitenkin varsin toimiva. Flow:lla (ja Logic Appsilla) voi mainiosti toteuttaa monimutkaisiakin automatisointeja.

Kuvat valmiista työnkuluista:

 

Tämä kirjoitus on osa laajempaa sarjaa jossa käyn läpi Office 365:n työkaluja. Mistä niissä on kyse ja miten niitä voisi hyödyntää.