Maailmasta ei tule erilaiset Excelit loppumaan. Tällä kertaa ihmetelläänkin Excel-tiedostoihin liittyvää automaatiota.

Esimerkkiongelmamme on seuraava.

Meillä on useita (identtisiä) Excel-tiedostoja, joilla tehdään valmistelutyötä. Valmistelun lopuksi valituista Excelin riveistä luodaan rivejä SharePoint-listalle, jossa työ sitten jatkuu eri muodossa.

Karkeasti ottaen näin.

Mikä olisi kätevin tapa kopioida valitut rivit automaattisesti Excelistä SharePointiin?

Flow’n käynnistäminen

Mietitään kuitenkin ensin, miten loppukäyttäjä käytännössä siirron käynnistää. Tämä nimittäin määrittää, mitä käynnistintä (trigger) flow käyttää.

Vaihtoehto 1 – Flow’n upottaminen Exceliin

Ensimmäinenä tulee mieleen hyödyntää Exceliin kytkettyä flow’ta. Avataan yksi Excel-tiedostoista ja asennetaan Power Automate for Excel Add-in.

Avataan flow Data-välilehdeltä. Huomaamme, ettei tähän Exceliin ole liitetty yhtään työnkulkua.

Kyllä. Mikäli Exceleitä on useita, tulee jokaista varten luoda oma flow. Ei houkuttele.

Katsotaan silti miten tämä tehdään.

Käynnistetään flow For a selected row -triggerillä. Samalla määritellään mihin Excel-tiedostoon ja sen taulukkoon (table) flow kytketään.

Tämän jälkeen flow’ssa lisätään Excelistä valittu rivi SharePoint-listalle (create item).

Nyt voimme valita taulukon rivejä Excelissä ja käynnistää flow’n. Suoraan Excelissä!

Flow suoritetaan erikseen jokaiselle valitulle riville.

Lopputuloksena SharePoint-listalle lisättiin kaksi riviä. Kuten haluttiin.

Ihan näppärää, mutta…

  • Jokaisen käyttäjän tulee asentaa Exceliin Power Automate Add in
  • Jokaiselle Excel-tiedostolle tulee rakentaa oma flow

Lisäksi flow’t on tehtävä Default-ympäristöön.

Ei jatkoon.

Vaihtoehto 2 – Flown käynnistys SharePointin dokumenttikirjastosta tai listasta

Entä jos siirto käynnistyisi dokumenttikirjastosta, jossa Excelit sijaisevat? Luodaan flow, joka käynnistyy kun dokumenttikirjastosta valitaan tiedosto (For a selected file).

Flow ilmestyy tarjolle, kun kirjastosta valitaan yksi tai useampi tiedosto.

Flow’sta käynnistyy jälleen oma suoritus kutakin valittua tiedostoa kohden.

Sama voidaan tehdä myös kohdepäästä. Listalta, jonne rivit lopulta lisätään. Tällöin flow käynnistyy SharePointin For a selected item -triggerillä.

Nyt flow käynnistetään listalta, jonne rivit lopulta luodaan.

Molemmissa tavoissa käyttäjän tulee ensin merkitä Excelissä rivit valmiiksi siirtoa varten (isReady). Muuten flow ei tiedä, mitkä rivit halutaa siirtää.

Mutta nyt flow ilmestyy tarjolle vasta kun listalta/dokumenttikirjastosta on valittu vähintään yksi rivi. Esimerkissämme hieman hankalaa. Haemme ratkaisua, jossa flow’n voi käynnistää helposti yhdestä paikasta, se käy läpi kaikki Excel-tiedostot ja tekee tarvittavat siirrot.

Ai niin. Listan valitusta rivistä käynnistyvät flow’t ovat nekin kaikki default-ympäristössä.

Vaihtoehto 3 – Painikkeella käynnistäminen

Tehdään lopulta Power Appsilla käynnistettävä flow, joka suorittaa tietojen siirron Exceleistä SharePoint-listalle.

Tämän jälkeen tehdään yksinkertainen Power Apps, jolla flow käynnistetään.

Upotetaan Power Apps SharePoint-sivulle. Sinne samalle, jossa Excelit ja SharePoint-lista sijaitsevat.

Käyttäjän tarvitsee vain painaa painikkeesta, jolloin kopiointi Exceleistä SharePoint-listalle käynnistyy.

Mikä parasta, sekä flow että Power Apps voivat sijaita missä tahansa ympäristössä.

Olemme löytäneet mieluisan tavan käynnistää siirto. Katsotaan vielä, miten varsinainen Excelien läpikäynti toteutetaan.

Usean Excelin käsittely flow’lla

Flow kännistyy Power Appsista. Ensin listaamme Excelit sisältävän dokumenttikirjaston (Lot of excels) tiedostot Get files -toiminnolla.

Kunkin tiedoston kohdalla haetaan sen sisältämät taulukot (Get tables).

Läpikäytävissä Exceleissä tulee kaikissa olla samanniminen taulukko (BuMonthly).

Sillä seuraavaksi etsimme Excelistä tuon kyseisen taulukon (Filter array).

Ja listataan löydetystä taulukosta valmiiksi merkityt rivit (isReady eq ’Yes’).

Emme halua luoda rivejä SharePointiin, mikäli ne on jo aiemmin luotu. Exceleissämme ei ole rivejä samalla BU ja kuukausi yhdistelmällä, joten tarkistetaan löytyykö SharePoint-listalta rivi samalla BU ja kuukausi yhdistelmällä.

Mikäli riviä ei löydy (tulosjoukon pituus = 0), lisätään sellainen. Riville tallennetaan tiedoksi myös, mistä excel-tiedostosta rivi on tullut (source).

Valmista!

Flow näyttää kokonaisuudessaan seuraavalta.

Excel ilman taulukkoa?

Flow osaa käsitellä Excel-tiedoston rivejä ainoastaan, mikäli ne ovat taulukossa (table). Entäpä jos Excel onkin esimerkiksi lähetetty jostain järjestelmästä, eivätkä rivit ole taulukossa?

Tähän tyyliin.

Ei hätää. Voit luoda flow’lla tämän puuttuvan taulukon (Create table). Tällöin tulee tietää mistä solusta taulukko alkaa ja mihin se loppuu (Table range),

Taulukon voi nimetä (Table name) ja sarakeotsikot (Columns names) voi määritellä vapaasti.

Toiminnon suorituksen jälkeen Excel näyttää seuraavalta.

Nyt voimme käsitellä sen rivejä normaaliin tapaan flow’lla.

Rajoituksia

Excel-yhdistin on todella näppärä, mutta sen kanssa työskennellessä on hyvä olla tietoinen sen rajoituksista. Esimerkiksi seuraavista.

  • Se on hidas. Siis todella hidas
  • Excel-tiedosto voi olla enintään 25MB kokoinen
  • Voit suodattaa Excel-taulukon rivejä OData:lla. Mutta voit käyttää ainoastaan yhtä rajausta.
  • Oletuksena taulukon rivejä listataan ainoastaan 256. Sivutusta hyödyntäen saadaan ulos 100 000 riviä.
  • Exceliin kirjoittaminen on hidasta. Uudet rivit voivat ilmestyä Exceliin vasta 30 sekunnin päästä kirjoitustoiminnon suorituksesta
  • Flow lukitsee Excel-tiedoston pitkähköksi aikaa (jopa 6 min)

Excel Online yhdistin voi tehdä 100 toimintoa 60 sekunnin ikkunassa. Tämän jälkeen sen toimintaa aletaan rajoittamaan (throttling).

Rajoituksistaan huolimatta loistava yhdistin. Sillä Exceleitä on kaikkialla.