Ennen vanhaan integraatio oli sitä kun toimija A siirsi tiedoston kansioon X, josta toimija B sitten prosessoi sen. Nykyään tähän törmää harvoin, mutta joissain tilanteissa vanhat kunnon siirtotiedostot ovat edelleen nopein ja helpoin tapa edetä.
Tällä kertaa tehdään flow, joka lukee paikalliselle levylle ilmestyviä tiedostoja ja käsittelee niiden sisältämiä tietoja.
Ensimmäiseksi flow’n tulee päästä kiinni paikalliseen kansioon, jossa tiedostot ovat.
Yhdyskäytävä (gateway)
Yhdyskäytävä mahdollistaa sisäverkon resurssien (on-premise tietokannat, SharePoint, tiedostot jne) käsittelyn Power Platformin työkaluilla. Se asennetaan palvelimelle, josta on pääsy sisäverkkoon. Yhdyskäytävää ei kannata asentaa työasemalle, sillä isäntäkoneen tulee olla aina päällä. Jos kone on esim lepotilassa, on myös yhdyskäytävä pimeänä.
Yhdyskäytäviä on kahta tyyppiä:
- Personal – Power BI:n (henkilökohtaiseen) käyttöön
- Standard – Kaikkien Power Platform -palvelujen käyttöön
Menemme siis standardilla.
Asennus on suoraviivaista, seuraat vain ohjeita. Mikäli asennus on organisaatiossasi sallittu ainoastaan nimetyille henkilöille (etkä ole yksi heistä), et voi tehdä asennusta.

Power Platform adminit näkevät kaikki tenanttiin liitetyt yhdyskäytävät. Salaa et siis voi tätä tehdä.

Kun käytössämme on yhdyskäytävä, voimme siirtyä seuraavaan vaiheeseen.
Paikallisen tiedoston lukeminen flow’lla
Koneellamme on kansio (BlogExample), jossa on omat alikansiot uusille (NewFiles) ja käsitellyille (ProcessedFiles) tiedostoille.

Luodaan painikkeella käynnistyvä flow ja lisätään toiminnoksi paikallisen tiedoston sisällön hakeminen (File system -> Get file content using path).

Yhteyden luominen
Seuraavaksi se hermoja raastava osuus. Luodaan liittimen (connector) tarvitsema yhteys (connection).

Seuraavat ovat helpot
- Connection name – Kuvaava nimi yhteydelle
- Root folder – C:\BlogExample (voit käyttää myös levyjaon nimeä tyyliin \\TIMONKONE\MyShare)
- Authentication Type – Windows
- Gateway – Käytettävä yhdyskäytävä
Toimenpiteet suoritetaan yhteydelle annetulla käyttäjätunnuksella. Sillä tulee olla oikeudet määriteltyyn kansioon (Root folder). Mutta missä muodossa käyttäjätunnus annetaan?

Kokeillaan suoraan pilvitunnustani, ilman domainia.

Hienoa, ei virhettä!

Mutta kun yritän selata kansioita, saan virheen.

Käyttäjätunnusta ja salasanaa ei tarkisteta yhteyden luonnissa, vaan vasta yhteyttä käytettäessä. Ja vie hermot, jos ei tiedä missä muodossa käyttäjätunnus annetaan.
Olen onnistunut luomaan toimivan yhteyden ainoastaan seuraavalla tavalla.
Avataan minkä tahansa kansion ominaisuudet (properties). Sharing-välilehdeltä löytyy Share-painike.

Painikeesta pääsee määrittelemään, keille kaikille tämä kansio jaetaan.

Ei kuitenkaan tehdä levyjakoa vaan annetaan käyttäjätunnus tässä muodossa yhteydelle.

Johan toimii!

Vihdoin pääsemme itse asiaan.
JSON-tiedoston lukeminen
Levyllämme on JSON-tiedosto, jota haluamme käsitellä flow’lla.

Asetetaan toimintoon (Get file content by using path) polku kyseiseen tiedostoon ja kokeillaan.

Tiedosto tulee sisään, mutta sitä ei tällaisenaan voi käyttää.

Tiedoston sisältö (File Content) tulee ensin muuntaa merkkijonoksi (string).
string(outputs('Get_file_content_using_path')?['body'])
Jonka jälkeen sitä voi käyttää Parse JSON -toiminnon syötteenä.

Onnistuneen parsinnan jälkeen voimme käydä JSON-tiedoston läpi ja tehdä mitä sillä nyt ikinä haluammekaan tehdä.

Käsitellyn tiedoston siirtäminen
Lopuksi siirrämme käsitellyn tiedoston NewFiles-kansiosta ProcessedFiles-kansioon. Siirto (move) -toimintoa ei löydy, joten joudumme kopioimaan tiedoston (Copy file) ja poistamaan alkuperäisen (Delete file).
Aivan ensimmäiseksi haemme tiedoston metatiedot (metadata), joiden avulla kopiointi ja poistaminen on mahdollista.

Flow’n käynnistyminen kun uusi tiedosto kopioidaan kansioon
Vaihdetaan flow käynnistymään kun NewFiles-kansioon tulee uusi tiedosto. Nyt saamme triggerin mukana tiedoston metatiedot, joten voimme hakea tiedoston sisällön sen id:n avulla (Get file content -toiminto).
Flow näyttää kokonaisuudessaan seuraavalta.

Triggeri vaikuttaa todella epäluotettavalta. Osa uusista tiedostoista jää jostain syystä käsittelemättä. Järkevämpää onkin päivystää uusia tiedostoja ajastetusti.
Uuden tiedoston / uusien tiedostojen käsittely kerran vuorokaudessa
Mikäli kansioomme (NewFilesPollingFolder) ilmestyy säännöllisesti (esim. kerran vuorokaudessa) samanniminen tiedosto, voimme muuttaa flow’n alkua hieman.

Useimmiten järkevämpää on säännöllisesti käsitellä kaikki kansioon ilmestyneet tiedostot. Se onnistuu List files in folder -toimintoa hyödyntäen.

Ajastettu kansion sisällön läpikäynti vaikuttaa huomattavasti luotettavammalta lähestymiseltä, kuin valmiin triggerin käyttäminen.
Yhteenveto
Vaikka tekeminen on siirtynyt vahvasti pilveen, tulee ajoittain eteen tarve käsitellä paikallisia tiedostoja. Tämä ei suinkaan edellytä RPA-ratkaisua, vaan yhdyskäytävä ja flow auttavat eteenpäin.
Suurin haaste on saada luotua toimiva yhteys File System -liittimelle.
Lähestymisessä on sitten omat rajoituksensa. Käsiteltävät tiedostot voivat olla enintään 30MB kokoisia.