SharePointin listat ovat aina olleet suosittu alusta erilaisia pienille ja isoille ratkaisuille. Pikkujouluihin ilmoittautuminen, tilausten käsittely, palautteiden kerääminen jne. Kekseliäisyys on rajana ja muutama hyvinkin luova ratkaisu on tullut nähtyä.

SharePoint listoissa on kuitenkin aina ollut erilaisia rivimääriin liittyviä rajoitteita.

Alunperin hyvin toiminut ratkaisu voi ajan myötä muuttua kelvottoman hitaaksi tai pahimmillaan lakata toimimasta kokonaan.

Ratkaisun tekijä ei ehkä huomannut tiedustella, millaisiin rivimääriin tulee varautua. Usein ratkaisun hankkijallakaan ei ole käsitystä paljonko niitä rivejä tulee viikossa, kuukaudessa tai vuodessa.

Suuret datamäärät eivät ole ongelma jos niihin varaudutaan. Yksi suoraviivainen varautumiskeino on tarpeettomien rivien hävittäminen. Miten tämä toteutetaan Flown avulla?

Esimerkki – SharePoint listan siivoaminen

SharePoint lista

Esimerkin listana toimii tilauslista, johon tulee kuukaudessa 1000 tilausta.

Näyttökuva 2017-11-26 kello 13.58.56

Päätän että yli 90 päivää vanhoja tilauksia ei tarvitse säilyttää.

Miten vanhojen rivien tuhoaminen kannattaa toteuttaa?

Rivit tuhoava Flow

Helpointa on tehdä säännöllisesti, vaikka joka toinen päivä, käynnistyvä Flow-työnkulku, joka poistaa 90 päivää vanhat tilausrivit.

Ensimmäinen mieleen tuleva Flow:n ratkaisumalli on:

  • hakea kaikki listan tilausrivit
  • käydä ne yksitellen läpi
  • tarkistaa onko luontipäivä vanhempi kuin 90 päivää
  • mikäli on, tuhotaan rivi

Listassa on kuitenkin aina keskimäärin 3000 riviä, joten tämä lähestyminen generoi suuren määrän Flow-tapahtumia. Näistä tapahtumista syntyy jossain kohtaa oikeaa laskua.

Tehdään sama asia fiksummin ja käytetään OData filtteröintiä.

  • Määritellään työnkulun käynnistyvän joka toinen päivä
  • Alustetaan muuttujan archievedate arvoksi päivämäärä nykyhetkestä 90 päivää taaksepäin (addDays(utcNow(),-90, ’g’)).

Näyttökuva 2017-11-26 kello 14.13.36.png

Haetaan seuraavaksi tilaus-listalta kaikki rivit joiden luontipäivä on pienempi kuin äsken alustamamme archievedate. Tämä tehdään ODATA filtterin (Filter Query) avulla.

Näyttökuva 2017-11-26 kello 14.16.07.png

Nyt kysely palauttaa 3000 rivin sijasta ainoastaan rivit jotka pitää poistaa!

Poistetaan lopuksi rivit käyttäen Delete Item -toimintoa.

Näyttökuva 2017-11-26 kello 14.18.30.png

Samaa logiikkaa voi käyttää rivien siirtämiseksi erilliseen ”arkisto” SharePoint listaan, mikäli rivit halutaan poistaa aktiivinäkymästä mutta kuitenkin säilyttää. Tai johonkin Azuren tarjoamaan tietokantaan.

Yhteenveto

Suosittelen tutustumaan OData:an mikäli työskentelet Flow / Logic Apps -työnkulkujen parissa. Sitä käyttäen voit usein yksinkertaistaa työnkulkujasi. Operoit työnkulun sisällä vain sillä tietojoukolla, mikä kussakin tilanteessa on tarpeellinen.