8. Riku Honkanen
Robotit hajoavat muutoksiin
Melkein mikä tahansa muutos ympäristössä voi hajottaa
robotin toiminnan
Virheiden hallinta ja ennakointi on perinteistä
ohjelmistokehitystä vaikeampaa
On mahdotonta ennakoida kaikkia vaikuttavia muutoksia
Toteutuksissa pitää miettiä aika laajasti mikä voisi mennä
pieleen ja miten huomataan, että jotain on mennyt pieleen
9. Riku Honkanen
Automatisoidun sovelluksen
päivitykset
Automatisoidun sovelluksen ohjelmistopäivitykset voivat
koska tahansa hajottaa robotin
Ohjelmistopäivityksissä valmistajat yleensä keskittyvät
pitämään integraatioissa käytettävät ohjelmarajapinnat ehjinä,
mutta käyttöliittymämuutoksia saatetaan tehdä koska tahansa
Esimerkiksi uuden kentän/napin lisääminen käyttöliittymään
voi muuttaa asettelua tai id-tunnisteita oleellisesti
Suurempi käyttöliittymän ”face lift” voi olla robotille tuhoisa
10. Riku Honkanen
Sovellusten sisäiset muuttujat
Automatisoiduissa sovelluksissa voi
normaaliprosessissakin olla muuttuvia
käyttöliittymäelementtejä
Esimerkiksi häiriötiedote tai muu ajankohtainen tiedote
voi ilmaantua sovelluksessa ruudulle toisinaan
Muuttunut varmenne tai vastaava, voi vaatia käyttäjältä
vahvistusta ennen käytön jatkamista
Sovelluksen versiopäivityksiin liittyvät dialogit
Vanhentuvien salasanojen hallinta
12. Riku Honkanen
Palvelinpäivitykset
Windows Update dialogit estävät kaiken muun koneen
käytön, kunnes ne on suljettu
Muut erilaiset palvelinympäristön päivitykset voivat
vaikuttaa robottien ajoon:
Uudet ohjelmistot voivat tuoda näytölle erilaisia
ponnahdusikkunoita
Selaimen versiopäivitykset
Selainlaajennukset
Isommat käyttöjärjestelmäpäivitykset
13. Riku Honkanen
Robottiohjelmiston päivitykset
Myös robottien kehitykseen käytettävän teknologian
päivitykset saattavat rikkoa aiemmin tehtyjä robotteja.
Jotkin aiemmat toiminnot voivat muuttua tai jäädä pois
käytöstä.
Miten varmistetaan, että kaikki aiemmat toteutukset
toimivat edelleen?
Ohjelmisto pitäisi päivittää kaikkiin ympäristöihin
hallitusti ja suunnitellusti (kehitysympäristöt tuotanto)
14. Riku Honkanen
Ympäristöerot
Jos samaa robotisoitua prosessia ajetaan eri palvelimilla,
on näiden oltava identtiset. Huomioitava esim:
Käyttöjärjestelmä
Selain
Kieli- ja maa-asetukset
Resoluutio
Tarvittavat työasemasovellukset
Erot kehitysympäristön / testi / tuotannon välillä
15. Riku Honkanen
Viiveiden hallinta
Yllättävät viiveet sovelluksissa / palvelimella voivat johtaa
timeout-ongelmiin
Mieti voiko prosessi hidastua ajan myötä esim.
datamäärän kasvaessa ja mitä kohtia se voi rikkoa
automatisoinnista?
Voiko tietoliikenneyhteydet, ohjelmistopäivitykset tai
palvelimen kuorma hidastaa sovellusta joissain tilanteissa?
17. Riku Honkanen
Onko robotti edes oikea ratkaisu
Kun kädessä on vasara, niin kaikki näyttää nauloilta
Voisiko kyseisen prosessin automatisoida jotenkin
muutoin (integraatiovälineet, BPM työkalut, vaihtamalla
sovellusta)
Onko robotista riittävä hyöty vs. mahdolliset ylläpidon
kustannukset
Onko kyseinen prosessi ylipäätään optimaalinen tai
tarpeellinen
18. Riku Honkanen
Robotisoi vain oleellinen
Robotisointi liittyy usein laajempaan prosessiin, jota
halutaan tehostaa
Robotisointi voi kannattaa joskus tehdä prosessille
päästä päähän. Toisinaan kannattavampaa on antaa
robotille vain osaprosessin automatisointi.
On ok, että kaikkia vaiheita ei saada robotisoitua. Silti
voidaan saavuttaa merkittävää tehokkuutta eikä luoda niin
suurta riskiä ja painetta robotin ylläpidolle.
19. Riku Honkanen
Ympäristöjen vakiointi
Etenkin kehitysympäristön ja palvelinympäristöjen välillä
mietittävä
Kieli- ja maa-asetukset voivat olla oleelliset esim. pvm-
kentissä tai käyttöliittymä-elementtien tunnistamisessakin
Käyttöjärjestelmäversiot
Selainversiot
Vaihtelevat resoluutiot voivat vaikuttaa siihen mitä
näytöllä näkyy. Esimerkiksi vierityspalkkien käyttö.
20. Riku Honkanen
Ohjelmistopäivitysten hallinta
Windows Updatet pois päältä ja suunniteltu prosessi,
koska nämä päivityskatkot tehdään
Vastaavasti automatisoitavien sovellusten automaattiset
päivitykset kannattaa kytkeä pois päältä, jos mahdollista
Jos useat robotisoidut prosessit käyttävät paljon samoja
sovelluksia (esim. selain tai Excel) on näiden päivitykset
mietittävä tarkasti, koska vaikuttavat laajasti prosesseihin.
21. Riku Honkanen
Käyttöliittymäelementtien tunnistus
Mieti erittäin tarkkaan käyttöliittymäelementtien
tunnistamisessa käytetyt valitsimet.
Esim. HTML-elementti: <button type="button" class="alert__close"
data-dismiss-permanent="1" data-
dismiss="#alert_636725245780238846405025623">×</button>
Tämä olisi liian spesifi kokonaisuudessaan. Toisaalta <button
type=”button”/> liian laaja.
Löydettävä valitsin, joka on riittävän tarkka, mutta ei hajoa
heti kaikista käyttöliittymän muutoksista.
22. Riku Honkanen
Minimoi riippuvuus käyttöliittymästä
Lähtökohtaisesti roboteilla automatisoidaan
käyttöliittymiä
Muuttuvat tai epäluotettavat käyttöliittymät kuitenkin ovat
usein juuri se syy mihin robotit kaatuvat
Muista edelleen hyödyntää niitä vahvuuksia, joita
perinteisellä koodaamisella pystytään tekemään
Käytä API-rajapintoja, kun mahdollista
Käytä tarvittaessa räätälöityjä koodipätkiä osana prosessin
käsittelylogiikkaa
Hyödynnä helposti luettavia datalähteitä (kannat, tiedostot)
mieluummin, kuin käyttöliittymästä luettavaa dataa, jos mahdollista
23. Riku Honkanen
Yksinkertaista käyttötapausta robotille
Usein automatisoitavissa prosesseissa voidaan helpottaa
robotin työtä verrattuna ihmisen luonnolliseen toimintatapaan
Esimerkiksi voidaan luoda uusi raportti, joka muodostaa
robotille työjonon
Joissain tapauksissa voidaan luoda personoitu näkymä tai
käyttöliittymä robotille, joka sisältää vain automatisointiin
tarvittavat tiedot.
Robotti voi helposti käyttää taustalla muita datalähteitä, jotka
eivät ihmiselle olisi luontevia (APIt, tietokannat, Excelit, ym.)
24. Riku Honkanen
Pikakomentojen ja näppäinkomentojen
hyödyntäminen
Sovellusten pikakomentojen hyödyntäminen kannattaa
Helppo koodata robotille
Toimivat käyttöliittymässä nopeasti
Muuttuvat harvoin
Kenttien väliset siirtymätkin voi olla helpompi tehdä
sarkain- tai nuoli-näppäimillä verrattuna kenttien
tunnistamiseen
25. Riku Honkanen
Poikkeustenkäsittely
Poikkeustenkäsittely täytyy huomioida robottiprosessien
toteutuksessa aivan kuten perinteisessä ohjelmoinnissakin
Robottien osalta täytyy kuitenkin keskittyä miettimään
enemmän mikä kaikki ympäristössä voi muuttua eikä
ainoastaan ohjelman sisäistä logiikkaa.
Ennustaminen on vaikea laji, mutta skeptisyyttä kannattaa
harrastaa eikä tyytyä siihen, että robotti toimii ainoastaan
happy days -skenaariossa.
27. Riku Honkanen
Oma ”framework” robottiprosesseille
Toteuta oma template, jonka pohjalta kaikki robotti-
prosessit toteutetaan
Templaten pitäisi sisältää kaikki ne asiat, jotka toistuvat
prosessista toiseen ja helpottavat ylläpitoa
Esimerkiksi:
Konfiguraatioiden/parametrien hallinta
Lokittaminen
Mitä tehdään prosessin epäonnistuessa
Mitä tehdään prosessin onnistuessa
28. Riku Honkanen
Prosessien dokumentointi
Dokumentoi automatisoidut prosessit vakioidulla
templatella
Kirjaa ylös esim.:
Sovellukset, joita robotti käyttää
Prosessiin liittyvät ajastukset
Käytettävät datalähteet
Robotin käytössä olevat käyttäjätunnukset
Miten valvotaan
Näin muutostilanteissa näet nopeasti mihin muutos voi
vaikuttaa
29. Riku Honkanen
Salasanojen ja tunnusten hallinta
Robotisoidut prosessit tarvitsevat käyttäjätunnuksia ja
salasanoja kyseisiin järjestelmiin
Mieti tarkkaan miten tunnukset ja salasanat tallennetaan
prosesseille ja miten näitä jaetaan robotteja toteuttavien
kesken.
Robottiteknologiat sisältävät usein ratkaisuja salasanojen
hallintaan, mutta myös Windows Credential Managerilla
pääsee alkuun
Mieti miten vanhenevat salasanat saadaan hallittua
31. Riku Honkanen
Automatisoidut prosessit unohtuvat
Kun jokin ihmisen aiemmin tekemä prosessi automatisoidaan
on seuranta alussa helppoa. Työtä tehnyt ihminen kontrolloi
tällöin, että työt rullaavat oikein.
Kun aikaa kuluu ja ongelmia ei heti ilmene, ei ihminen enää
mieti aktiivisesti kyseistä prosessia.
Jos robotti vikaantuu vasta pitkän ajan päästä, voidaan
toipumisessa törmätä haasteisiin:
Muistaako työtä tehnyt henkilö enää prosessia hyvin?
Onko työtä aiemmin tehnyt henkilö enää talossa? Jos ei, onko jollekin
perehdytetty, että tällainen prosessi on automatisoitu?
Onko toteutuksen aiemmin tehnyt henkilö vielä talossa? Jos ei, onko
dokumentaatio riittävällä tasolla?
32. Riku Honkanen
Epäonnistuneen / onnistuneen
prosessin valvonta
Robotisoitavissa prosesseissa pitäisi aina olla huomioitu,
miten välitetään tieto onnistumisesta
Lähetetäänkö sähköposti yhteenveto johonkin osoitteeseen?
Rakennetaanko dashboard, jossa näkyy prosessien statukset
Mahdollista myös toteuttaa robottiprosessi valvomaan
muita robottiprosesseja
33. Riku Honkanen
Robotin valvonta
Robotteihin liittyvien palveluiden käynnissä pysymistä
voidaan valvoa yleensä samoilla IT-välineillä, kuin
muutakin palvelinvalvontaa tehdään
Virhetilanteita voi tulla myös robottien käynnistyksessä,
ennen kuin itse prosessia päästään ajamaan
Huomioitava robottiteknologian omat lokit ja niiden valvonta
34. Riku Honkanen
Robottien lokit
Varmistakaa, että robotisoiduissa prosesseissa
muodostetaan riittävän tarkka loki siitä, missä vaiheessa
automatisoitu prosessi on koko ajan menossa.
Jos käytössä on jokin lokien hallintatuote, kannattaa sekä
robottien että robotisoitujen prosessien lokit ottaa sen
piiriin
Ellei keskitettyä lokienhallintaa ole, on mietittävä rutiinit,
joilla lokeja ja prosessien ajoja seurataan
35. Riku Honkanen
Kuvankaappaus virhetilanteesta
Kullanarvoinen vinkki on laittaa robotti ottamaan aina
kuvankaappaus, kun prosessi epäonnistuu
Kuvankaappaus virhehetkeltä kertoo usein välittömästi
minkä takia prosessi on epäonnistunut – esimerkiksi
ruudulla näkyvä yllättävä dialogi-ikkuna
Huomioi tietosuoja