Edellisessä kirjoituksessa kävimme läpi miten Flow:n ja Microsft Graphin avulla voi luoda tiimejä. Ratkaisu jäi osin vajaaksi, joten täydennetään sitä tällä kertaa seuraavin tavoin

  • Ei odoteta 15:tä minuuttia, vaan kytätään tiimin valmistumista 30 sekunnin välein
  • Lisätään luoduille tiimille luokka (classification)
  • Lisätään projekti-tiimin general-välilehdelle linkki projektityökaluun. Linkkiä klikkaamalla avautuu kyseisen projektin tiedot (url-parametrina projektin id)
  • Toteutetaan vanhentuneiden tiimien poisto

Onko tilattu tiimi jo valmis?

Alunperin odotimme työnkulussa kiltisti 15 minuuttia kloonauksen käynnistämisen jälkeen, jotta uusi tiimi on varmasti luotu.

15 minuuttia on ikuisuus. Muutetaan toteutusta hieman.

Luodaan Flow:n alussa muuttuja, jossa säilytetään tietoa onko tiimi jo luotu vai ei.

Screenshot 2018-11-26 at 7.31.38

Kloonauksen aloittamisen jälkeen käynnistämme silmukan (do until), joka päättyy muuttujan TeamStatus jonkun muun arvoin kuin running.

Silmukan alussa odotetaan 30 sekuntia, jonka jälkeen tarkistetaan onko tiimi valmis. Tätä voi kysyä osoitteesta (location), jonka saimme tiimin kloonaus -komennon paluuarvona.

Screenshot 2018-11-26 at 7.34.05.png

Tarkistuskutsun paluuarvo parsitaan Parse JSON -toiminnolla. Tämän jälkeen on helppo tarkistaa, onko luonnin tila jotain muuta kuin ”käynnissä” (running).

Screenshot 2018-11-26 at 7.34.58.png

Mikäli tila on muuta kuin ”käynnissä” (Succeeded tai Failed), päivitetään muuttujan arvoksi uusi tila. 

Screenshot 2018-11-26 at 7.36.01.png

Silmukan suorittaminen keskeytyy ja Flow jatkaa matkaa normaalisti. Mikäli kloonaus päätyy johonkin muuhun tilaan kuin Succeeded, keskeytetään Flow:n suoritus.

Screenshot 2018-11-26 at 7.36.27.png

Kokonaisuudessaan silmukka näyttää tältä.

Screenshot 2018-11-26 at 7.37.52.png

Tiimien luokittelu

Lisätään tilauslistalle sekä PowerAppsiin kenttä, joka kertoo mihin luokkaan (Classification) tiimi kuuluu.

classification teams.png

Flowssa käyttäjän valitsema luokka asetetaan parametriksi tiimin kloonaavaan REST API -kutsuun.

classification flow.png

Kas näin uusi tiimi on luokiteltuna oikein!

classification.png

Tiimin luokka voitaisiin myös päätellä käyttäjän tilauslomakkeella antamien arvoen perusteella.

Uuden välilehden lisääminen

Haluamme lisätä luotavan projekti-tiimin General-kanavaan linkin projektityökaluun. Vieläpä siten, että linkin url-parametriksi tulee projektin id. Näin työkalu avautuu aina tiimiä vastaavan projektin tietojen kohdalta.

Linkki lisätään General-kanavaan, joten tarvitsemme kyseisen kanavan id:n. Aloitetaan hakemalla kaikki juuri luomamme tiimin kanavat.

get-channels-e1543065653857.png

Käydään läpi kaikki kanavat ja katsotaan osuuko kohdalle General-kanava. Mikäli osuu, tarkistetaan olemmeko luomassa projekti-tiimiä.

Screenshot 2018-11-24 at 15.22.53.png

Jos olemme, luodaan kyseiselle kanavalle uusi välilehti (tab), jossa on linkki projektityökaluun.

Screenshot 2018-11-24 at 15.25.14.png

Ja siellä se lopulta on!

poroject tool link1.png

Myös linkin osoite on haluamamme. Tiimin tilauslomakkeella annettu projektinumero on linkissä url-parametrina.

poroject tool link.png

Vanhojen tiimien automaattinen poistaminen

Poistaminen on helpompaa, kun tiedämme poistettavan tiimin id:n. Tallennetaan se  luonti Flow:ssa tilauslistalle

Screenshot 2018-11-24 at 21.17.24.png

Tehdään uusi Flow, joka käynistyy kerran viikossa. Flow hakee tilauslistasta kaikki tilaukset, joissa tiimin viimeinen voimassaolopäivä (expiration date) on mennyt. REST API -kutsua varten lisäämme muuttujiin tarvittavat tiedot (TenantId, ClientId, Client secret) tunnistautumista varten.

Screenshot 2018-11-24 at 15.31.47.png

Käynnistetään hyväksyntätyönkulku (approval), jolla varmistetaan että tiimin todellakin saa poistaa. Hyväksyntäpyyntö lähtee tiimin alkuperäiselle tilaajalle sekä adminille. Alkuperäinen tilaaja kun on saattanut jo poistua organisaatiosta.

Screenshot 2018-11-24 at 15.34.04.png

Mikäli jompi kumpi hyväksyy poiston, niin tiimi poistetaan.

Screenshot 2018-11-24 at 15.36.28.png

Yhteenveto

Tiimien käsittelyyn julkaistut Microsoft Graph -rajapinnat ovat mainioita. Mutta eivät vielä lähellekkään täydellisiä. Lyhyen leikin aikana on selvinnyt muun muassa seuraavaa.

  1. Kloonaaminen REST API -kutsulla ei kloonaa (vielä) välilehtiä.
  2. Mikäli kloonaaminen tulee toimimaan, kuten käyttöliittymästä tehtävä kloonaaminen (Create a team using an existing team as a template), on se välilehtien osalta aika hyödytön. Se tuo mukanaan vain otsikot. Linkkien kohteet pitää kloonaamisen jälkeen käydä laittamassa käsin kuntoon.
  3. Linkit voi kuitenkin luoda automaattisesti Flow:ssa (kuten teimme projektityökalun kanssa). Tällä tavoin ei kuitenkaan ole (vielä) mahdollista luoda natiivilinkkejä esim. PowerAppsiin

 

PS. Valmiit Flow:t näyttävät kokonaisuudessaan tällaisilta.