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.
Seuraavaksi 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).
Muokattu lomake näyttää tältä. Työntekijän tiedot ovat kenttiä, joita voimme muokata työnkulussa!
Valmistellaan vastaavalla tavalla Word-lomake, jolla haetaan tunnukset tuntikirjaustyökaluun.
Sekä työntekijälle lähetettävä salassapitosopimus.
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.
Emme pysty toteuttamaan koko prosessia yhdellä työnkululla. Tästä johtuen tallennetaan osa tiedoista jatkoa varten SharePoint -listaan.
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).
Valmis lomake lähetetään lopuksi HR:ään.
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.
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.
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.
Haetaan SharePoint-listasta kyseisen henkilön rivi ja lisätään siihen henkilönumero.
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.
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.
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ä.
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.
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.
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ää.