Viime viikolla Microsoft julkaisi ostaneensa Softomotive:n. Yrityksen joka on kehittänyt vuodesta 2005 asti WinAutomation-nimistä RPA (Robotic Process Automation) -tuotetta.

Olettavasti Microsoft integroi WinAutomation:in osaksi Power Automatea. Tätä ei tarvitse jäädä odottamaan, Flow:n lisensseillä (Per user plan with attended RPA) voi aloittaa WinAutomation:in käytön samantien.

Suoritetaan tällä kertaa lyhyt WinAutomation koeajo. Aiemmassa kirjoituksessa rakensimme UI Flow:lla toteutuksen, joka laskee laskimella kaksi lukua yhteen.

Onko vastaava toteutus helpompi tehdä WinAutomation:lla?

Asennus

WinAutomation:in asennus on suoraviivaista.

  1. Lataa asennuspaketti ja asenna WinAutomation Console -ohjelma.
  2. Asennuksen aikana valitaan käytettävä lisenssi (= Microsoft Power Automate)
  1. Kirjaudu sisään Office 365-tunnuksella, jolla on Per user plan with attended RPA -lisenssi (Trial riittää).
  2. Hanki WinAutomation:in käytölle hyväksyntä järjestelmän valvojalta. Jep. Tämä on se vaikein osuus.
Kuva:https://docs.microsoft.com/en-us/power-automate/ui-flows/create-processes

Valmista! Ei kun kokeilemaan.

Esimerkki – Laskin

WinAutomation Console näyttää tältä. RPA-skriptejä kutsutaaan prosesseiksi (process), jotka ryhmitellään vasemmassa reunassa näkyvään kansiorakenteeseen.

Asennuksen jälkeen kansiorakenteesta löytyy kiitettävä joukko erilaisia esimerkkejä. Niitä kahlaamalla pääsee hyvin alkuun.

Luodaan uusi prosessi (New process) laskimella suoritettavaa yhteenlaskua varten.

Prosessia voi kasata kolmella eri tavalla

  • Process Designer:illa voi rakentaa työnkulun visuaalisella työkalulla valmiita toimintoja käyttäen
  • Macro Recorder:illa voi tehdä nauhoituksen sovelluksen käytöstä
  • Web Recorder:illa voi tehdä nauhoituksen verkkosivun käytöstä

Näitä kolmea eri tapaa voi vapaasti yhdistellä prosessia tehdessä.

Aloitetaan käynnistämällä Process Designer.

  • Vasemmasta reunasta löytyvät käytettävät toiminnot
  • Keskelle muodostuu varsinainen prosessi
  • Oikeassa reunassa näkyvät käytetyt funktiot ja muuttujat

Laskimen käynnistäminen

Aluksi halumamme käynnistää windowsin laskimen.

Raahataan Run Application -toiminto vasemmasta valikosta keskelle ja syötetään avautuvaan dialogiin Application Path:ille arvo ”Calc”.

Kokeillaan heti! Klikataan Start-painiketta.

Ja laskin ilmestyy ruutuun.

Vielä vaikuttaa helpolta.

Toimintojen nauhoitus

Seuraavaksi laskemme kaksi lukua yhteen ja kopioimme tuloksen leikepöydälle.

Käynnistetään tallennus (macro recorder) ylävalikosta.

Tallennus lähtee heti käyntiin. Suoritetaan yhteenlasku, kopioidaan summa leikepöydälle ja klikataan Finish.

Prosessimme näyttää nyt tältä.

Esitystapa ei ole yhtä visuaalinen kuin UI Flow:ssa, mutta kyllä tästä ymmärtää mitä ollaan tekemässä.

Parametrit

Haluamme välittää prosessille parametrina kaksi yhteenlaskettavaa lukua. Tämän voi tehdä lukuisilla eri tavoilla. Esimerkiksi

  • Annetaan parametrit komentoriviparametreina prosessia käynnistettäessä
  • Prosessi lukee paramterit itse (esim Excelistä)
  • Käyttäjä syöttää parametrit

Valitaan viimeinen vaihtoehto. Lisätään prosessin alkuun dialogi, jossa käyttäjältä kysytään yhteenlaskettavat luvut. WinAutomation:issa on valmiina useita erilaisia dialogi-ikkunoita (Message Boxes). Halutessaan voi rakentaa jopa oman (Display Custom Dialog).

Lisätään prosessiin Display Input Dialog -toiminto. Muokataan otsikot sopiviksi ja tallennetaan käyttäjän syöttämä arvo muuttujaan Number1.

Lisätään vastaavalla tavalla dialogi toisen luvun kysymiseksi.

Huom! Voit myös kopioida toimintoja.

Vaihdetaan lopuksi nauhoituksen yhteenlaskettavat luvut käyttämään muuttujia vakioarvojen sijasta.

Tuloksen tallentaminen muuttujaan

Nyt prosessimme laskee yhteen kaksi sille annettua lukua. Tulos kopioidaan leikepöydälle. Miten saamme tuloksen muuttujaan talteen?

Tätä(kin) varten löytyy oma toimintonsa (Get Clipboard text).

Ja näin RPA-prosessimme on valmis.

Esimerkki – Fibonaccin lukujonon muodostaminen

Tehdään seuraavaksi jotain, mikä ei toistaiseksi ole UI Flow:lla mahdollista. Rakennetaan prosessi, joka muodostaa Fibonaccin lukujonon n ensimmäistä lukua. N luonnollisesti kysytään käyttäjältä.

Asetetaan fibonaccin lukusarjan kaksi ensimmäistä lukua muuttujiin (Number1 ja Number2). Alustetaan samalla lukusarjaa kuvaava muuttuja (Fibonacci).

Tämän jälkeen kysytään käyttäjältä (Display Input Dialog) montako lukusarjan lukua muodostetaan. Vastaus tulee muuttaa omalla toiminnollaan (Convert Text to Number) numeroksi.

Tämän jälkeen käynnistetään laskin (Run Application).

Hyödynnetään edellisen esimerkin kahden luvun yhteenlaskua, mutta tällä kertaa yhteenlasku suoritetaan silmukan (Loop) sisällä. Silmukka suoritetaan niin monta kertaa, kuin käyttäjä halusi lukusarjan numeroita muodostettavan.

Silmukan sisällä

  • Lasketaan yhteen Number1 ja Number2
  • Kopioidaan tulos leikepöydältä muuttujaan (Result)
  • Tyhjennetään leikepöytä (Clear Clipboard Contents)
  • Lisätään Number2 lukusarja-muuttujaan (Fibonacci)
  • Asetetaan Number1-muuttujan arvoksi Number2
  • Asetetaan Number2-muuttujan arvoksi yhteenlaskun tulos (Convert Text to Number)

Silmukan päätyttyä lisätään lukusarjan perään viimeisin tulos ja näytetään koko komeus käyttäjälle (Display Message).

Miltä ratkaisu näyttää käytännössä?

Aluksi käyttäjältä kysytään lukusarjan pituus.

Ja lopuksi esitetään muodostettu lukusarja.

Prosessi työssään näyttää tältä.

WinAutomation prosessin käynnistäminen

Prosessit voi käynnistää suoraan komentoriviltä.

Tämä on toistaiseksi ainoa tapa käynnistää WinAutomation prosessi Flow:sta käsin.

Käytännössä tehdään Flow, joka käynnistää UI Flow:n, joka taas käynnistää WinAutomation prosessin komentoriviä käyttäen.

Kätevää…

Mutta eiköhän tämä muutu.

Yhteenveto

WinAutomation vaikuttaa helppokäyttöiseltä ja monipuoliselta työkalulta. Mikä parasta, samalla työkalulla voi rakentaa sekä työasemasovelluksia että verkkosivuja käyttäviä RPA skriptejä.

WinAutomation:lla voi myös suorittaa yhdellä työasemalla useita RPA-prosesseja rinnakkain. Tämä ei UI Flow:lla ole mahdollista.

Luonnollisesti skriptejä voi suorittaa myös silloin, kun käyttäjä ei ole kirjautuneena työasemalle (unattended RPA).

Kaikki tämä nykyisillä Power Automate -lisensseillä (Per user plan with attended RPA ja Unattended RPA add-on).

WinAutomation on toiminnallisuuksiltaan päällekkäinen tuote UI Flow:n kanssa. Onkin mielenkiintoista nähdä, miten Microsoft tulee nämä tuotteet naittamaan yhteen.

Oletan että ensimmäisenä paletista häviää nykyinen UI Flow for Web Applications.