Usein on kätevää käynnistää flow canvas Power Appsista käsin. Esimerkiksi käyttäjän painettua painiketta. Monimutkaisia ja aikaavieviä toimenpiteitä voi näin suorittaa taustalla.

Valitettavasti Power Appsin ja flow’n välinen yhteys on välillä hauras. Tällä kertaa käydään läpi muutama näiden kahden loistavan työkalun yhteiskäytössä huomioitava asia.

Esimerkkisovellus

Luodaan Power Appsista käynnistettävä flow, jolla on yksi parametri (input1). Flow lukee SharePoint-listalta rivejä.

Lisäksi meillä on Power Apps, josta flow käynnistetään painikkeella.

Sovellus on valmis testattavaksi. Julkaistaan se ja jaetaan testikäyttäjälle.

Testikäytäjän avatessa ensimmäistä kertaa sovelluksen, pyytää se luvan käyttää hänen SharePoint-yhteyttään. Power Apps ei käytä SharePoint:ia mihinkään, mutta käynnistettävä flow käyttää. Ja nimenomaan käyttäjän tunnuksilla.

Power Apps tajuaa tämän ja hoitaa kaiken kuntoon flow’ta varten.

Sovellus aukeaa ja käyttäjä voi käynnistää flow’n. Juuri kuten haluamme.

Ratkaisun vieminen tuotantoon

Viedään Power Apps, flow sekä tarvittava yhteysviite ratkaisupakettina tuotantoympäristöön.

Jaetaan Power Apps samalle testikäyttäjälle. Sovellus aukeaa kauniisti, mutta painiketta painettaessa tulee virhe.

Connection not configured for this service.

Avataan Power Apps muokkaustilaan. Flow ei ole enää yhteydessä sovellukseen (Not connected).

Päivitetään flow (Refresh), jolloin yhteys korjataantuu.

Julkaistaan päivitetty sovellus ja se toimii jälleen kaikilla käyttäjillä.

Mutta eihän tässä ole mitään järkeä. Ei sovellusta voi käsin korjata jokaisen tuotantoonviennin jälkeen.

Eikä tarvitsekkaan.

Käyttoikeusroolin lisääminen

Yhteyden hajoaminen johtuu siitä, ettei käyttäjällä ole oikeutta lukea ympäristön prosesseja (joita myös flow’t ovat).

Luodaan sovelluksen käyttäjille oma käyttöoikeusrooli (Security role).

Kustomointi (Customization) -osiosta löytyy rivi prosessien (process) käyttöoikeuksille. Annetaan siihen organisaatiotason (vihreä pallo) lukuoikeudet (read).

Lopuksi luotu käyttöoikeusrooli (Canvas flow user) annetaan testikäyttäjälle.

Testataan ja todetaan että kaikki toimii. Nyt ratkaisupaketti käyttöoikeusrooleineen voidaan viedä tuotantoon.

Annetaan käyttöoikeusrooli (Canvas flow user) testikäyttäjälle myös tuotantoympäristössä.

Sovellus käynnistyy virheettä ja painikkeen painaminen toimii.

Painiketta painettaessa flow käynnistyy kuten pitääkin.

Hienoa! Nyt voimme tuoda sovelluksestamme uusia versioita tuoantoon ilman että tuonnin jälkeen tarvitsee tehdä manuaalisia korjauksia.

Mahdolliset ongelmat eivät kuitenkan jää tähän.

Flow’n muokkaaminen – Uusi yhdistin

Lisätään työnkulkuun uusi toiminto (OneDrive).

Päivitetty flow halutaan viedä tuotantoon. Myös sovellukseen on tehty muutoksia, mutta ne eivät ole valmiita. Päätetään paketoida flow omaan ratkaisupakettiinsa ja viedä tuotantoon ainoastaan sen.

Tuotantopäivityksen jälkeen testikäyttäjämme saa soveluksessa nappia painaessaan virheen.

PA-Flow.Run failed: _scrubbedSensitiveData_

Flow’ta tarkasteltaessa huomaamme käynnistimessä (trigger) olevan jotain vikaa.

Epäonnistunutta ajoa tarkasteltaessa näemme mistä on kyse. Flow ei pysty yhdistämään käyttäjän OneDrive -yhteyttä flow’n käyttämään yhteysviitteeseen (connection reference).

Tämä nimittäin tehdään Power Appsin käynnistyessä. Uusia yhdistimiä ei voi lisätä Power Appsista käynnistettävään flow’hun ilman että kohdeympäristöön viedään myös flow’ta kutsuva Power Apps.

Tätä ennen tulee päivittää Power Appsissa flow, johon uusi yhteysviite on lisätty.

Vasta tämän jälkeen Power Apps tajuaa, että käyttäjällä tulee olla myös flow’ssa käytettävä OneDrive-yhteys. Uudelleenjulkaistua Power Appsia avatessa kysytään käyttäjältä lupa käyttää OneDrive -yhteyttä.

Tämän jälkeen sovellus toimii.

Mitä voin tehdä ilman että kaikki hajoaa?

Ei syytä huoleen, mikäli

  • käyttäjillä on tarvittava käyttöoikeusrooli
  • päivität Power Appsin sisällä flow-yhteydet muutosten jälkeen
  • viet seuraavaan ympäristöön aina sekä flow’t että Power Appsin

Mutta voinko tehdä joitain muutoksia siten, että ratkaisupaketti sisältää ainoastaan muuttuneet osat?

Voit.

Uusi yhteysviite kiinteällä yhteydellä

Lisätään flow’hun toinen SharePoint-toiminto. Tämä käyttää omaa yhteysviitettään (SharePoint Fixed conn).

Määritellään flow’n asetuksista (Run only users – Edit) SharePoint-yhteys käyttämään aina minun yhteyttä. Ei siis käyttäjän omaa, kuten oletuksena tehdään.

Meillä on uusi yhteysviite, mutta se ei käytä käyttäjän yhteyttä. Voimmeko viedä tuotantoon pelkän flow’n?

Voimme. Kaikki toimii ilman ongelmia.

Flow’n muokkaaminen

Flow’hun voi lisätä vapaasti uusia toimintoja (action).

Kunhan ei lisää samalla uusia yhteysviitteitä, voi flow’n viedä seuraavaan ympäristöön ilman sen käynnistävää sovellusta.

Ja uusia yhteysviitteitäkin voi luoda, mikäli ne käyttävät kiinteää yhteyttä (edellinen esimerkki).

Muutos Power Appsiin ja vienti ilman flowta?

Power Appsia voi muokata mielin määrin ja viedä sen seuraavaan ympäristöön ilman siihen liitettyjä työnkulkuja.

Poikkeus: Mikäli sovellukseen on lisätty uusia työnkulkuja, tulee ne luonnollisesti viedä myös.

Flow’n parametrien muutos

Mikäli flow’hun lisätään uusia parametreja tai sen paluuarvojoukkoa muutetaan, tulee luonnollisesti päivittää myös Power Apps ja viedä sekä sovellus että työnkulku.

Yhteenveto

Mikä tämän kaiken opetus on?

  1. Mikäli (canvas) Power Appsista käynnistetään työnkulkuja, muista varmistaa että käyttäjillä on tarvittava käyttöoikeus.
  2. Mikäli mahdollista, pidä Power Apps ja työnkulut samassa ratkaisupaketissa ja vie ne aina yhdessä.
  3. Mikäli lisäät työnkulkun uusia yhdistimiä, muista päivittää flow myös Power Appsissa.
  4. Mikäli flow’n parametrit tai Power Appsille palauttaman tiedon rakenne muuttuu, muista päivittää flow myös Power Appsissa.
  5. Mikäli flow ei käynnistykään Power Appsista, älä korjaa sitä ko ympäristössä vaan kehitysympäristössä ja asenna uudelleen.

Tekemisen iloa!