Ilmassa on paljon puhetta siitä, miten Teamsilla korvataan perinteinen intranetti. Huumassa unohtuu, etteivät intranetit ole nopeasti mihinkään katoamassa. Useissa organisaatioissa rakennetaan paraikaa uutta uljasta intranettia.

Kiinnostavampaa onkin, miten uuden intranetin julkaisu hoidetaan parhaalla mahdollisella tavalla? Yksi keino saada käyttöönottoon nostetta, on rakentaa sen ympärille pelillistetty kisa.

Tälläkertaa toteutetaan sellainen.

Intranetin 6 ensimmäistä viikkoa -haaste

Idea on yksinkertainen. Uuden intranetin etusivulle ilmestyy viikottain uusi tehtävä. Mitä nopeammin tehtävän tekee, sitä enemmä saa pisteitä. Tehtävät liittyvät tietenkin uuden intranetin käyttöön. Kisa kestää kuusi viikkoa.

Esimerkissämme tehtävät ovat

  • Lisää itsellesi profiilikuva
  • Lähetä Teams-viesti
  • Tykkää viikon parhaasta uutisesta
  • Täydennä profiilitietosi
  • Osallistu Teams-palaveriin, videon välityksellä
  • Katso Streamista itseäsi kiinnnostava intranetin käyttöön liittyvä video

Kun viikon tehtävän on kuitannut tehdyksi, näytetään käyttäjälle pistetilanne.

Aloitetaan.

SharePoint-lista tehtävien suoritusten tallentamiseen

Viikottaisten tehtävien suorittamiset täytyy tallentaa jonnekin. Helpoimmalla päästään käyttämällä SharePoint-listaa. Listalle lisätään oma rivi kunkin viikon suorituksesta. Käytettävät sarakkeet ovat

  • Title – Henkilön sähköpostiosoite
  • DisplayName – Henkilön näyttönimi
  • Total – Henkilön kaikki tähän mennessä keräämät pisteet
  • Week Score – Henkilön tämän viikon pisteet
  • Week – Viikko, jonka pisteet tällä rivillä on

6 week sharepoint list.png

Kuvitellaan että intranetin käyttäjiä on 2000. Rivejä syntyy kisan aikana näin ollen maksimissaan 12000. Listan sarakkeet, joita käytämme PowerAppsissa suodattamaan tai järjestämään rivejä, on syytä indeksoida.

Eli sarakkeet Title ja Total.

Screenshot 2018-12-12 at 19.51.56.png

PowerApps

Luodaan tyhjä 400 x 400 kokoinen (canvas) PowerApps. Alustetaan sovelluksemme käynnistyessä (OnStart) muutamia sovelluksen toiminnalle keskeisiä tietoja.

Toimenpiteet sovelluksen käynnistyessä

Ensimmäiseksi lisätään käyttäjän sähköpostiosoite omaan muuttujaansa.

Set(UserEmail, User().Email)

Tämä tehdään, jotta voimme delegoida rivien suodattamisen käyttäjän sähköpostin perusteella SharePointille.

Seuraavaksi luodaan kokoelma (ClearCollect), johon tallennetaan kunkin kisaviikon tehtävä, sekä linkki tehtävään liittyvään videoon.

6 week powerapps 2.png

Tehtävät voisivat olla omassa SharePoint-listassaan, mutta se hidastaisi jonkun verran sovelluksen käynnistymistä. Tulemme sijoittamaan PowerAppsimme intranetin etusivulle, jolloin haluamme sen latautuvan mahdollisimman nopeasti. Kovakoodaamme siis tehtävät tällä kertaa itse sovellukseen.

Seuraavaksi määritellään, milloin haaste alkaa (FirstDayOfChallenge), sekä lisätään muuttujaan (CurrentWeek) monesko kisaviikko on menossa.

Viimeisenä haetaan kyseisen käyttäjän viimeisin tallennettu rivi (LastValue). Sitä käytetään laskettaessa käyttäjän yhteispisteitä. Huomaa että se voi olla myös tyhjä (käyttäjä ei ole tehnyt vielä yhtään viikkotehtävää).

6 week powerapps 3.png

Tietojen tallennuslomake

Sitten varsinaiseen sovellukseen. Lisätään näytölle lomake, jolla lisätään uusi rivi luomaamme SharePoint-listaan (lomakkeen Default mode = New).

6 week powerapps 1.png

Asetetaan lomakkeen kentille seuraavat oletusarvot.

  • Title: User().Email
  • DisplayName: User().FullName
  • Week: CurrentWeek (muuttuja)

Kuluvan viikon haasteesta saa pisteitä seuraavasti: Lähtöpisteet ovat 200, josta vähennetään piste per tunti (lähtien maanantaista klo 00:00).

Kaavaksi viikon pisteille tulee

Week score: 200 - DateDiff(FirstDayOfChallenge + (CurrentWeek - 1)*7 , Now(),Hours)

Tämän jälkeen on helppoa laskea tämänhetkinen yhteispistemäärä.

Total: LastValue.Total + WeekScoreValue
  • LastValue =  viime viikon tallennettu rivi
  • WeekScoreValue =yllä laskemamme kuluvan viikon pistemäärä.

Lisätään lomakkeelle painike, jolla tiedot tallennetaan.

Screenshot 2018-12-12 at 19.02.54.png

Ulkoasun viilaus

Käyttäjä ei täytä lomaketta, vaan ainoastaan kuittaa viikon tehtävän tehdyksi. Voimme siis piilottaa lomakkeen. Laitetaan tilalle kisan otsikko ja kiva kuvituskuva. Kuluvan viikon tehtävä haetaan sovelluksen käynnistyksen yhteydessä luodusta kokoelmasta LookUp -komennolla.

Screenshot 2018-12-12 at 19.07.37.png

Iso otsikko kertoo monesko kisaviikko on menossa.

Screenshot 2018-12-12 at 19.12.13.png

Show video -tekstiä klikkaamalla avautuu uuteen selainikkunaan viikon tehtävään liittyvä ohjevideo.

Screenshot 2018-12-12 at 19.13.18

Top 5 – näyttö

Sovelluksen toisella näytöllä esitetään kisan tämänhetkinen tilanne. Galleriaa lukuunottamatta sisältö on staattista. Galleriassa esitetään kokonaiskisassa Top 5 pisteet saaneet käyttäjät.

Ne löytyvät SharePoint-listasta kun

  • järjestetään rivit pisteiden mukaan laskevaan järjestykseen
  • poimitaan 5 ensimmäistä riviä

Screenshot 2018-12-12 at 19.28.18

Muutetaan ensimmäistä näyttöä vielä siten, että käyttäjän kuitatessa tehtävän tehdyksi, siirrytään TOP 5 näytölle.

Screenshot 2018-12-12 at 19.37.12

Entä jos käyttäjä on tehnyt tehtävän?

Mikäli käyttäjä on jo tehnyt tämän viikon tehtävän, tulee sovelluksen siirtyä suoraan Top 5 -näytölle.

Tarkistetaan OnStart:in lopussa, onko käyttäjän viimeisen tehtäväkuittauksen viikkonumero sama kuin kuluvan viikon numero (= käyttäjä on jo tehtävän merkinnyt suoritetuksi). Mikäli on, siirrytään suoraan Top 5 näytölle.

Screenshot 2018-12-12 at 19.40.42.png

PowerAppsin upottaminen intranetin etusivulle

Upotetaan PowerApps intranetin etusivulle, jossa se näyttää tältä.

Screenshot 2018-12-12 at 19.46.03.png

Kuitattuani tehtävän tehdyksi, näyttää intranetin etusivu minulle loppuviikon tältä. Top 5 lista päivittyy jokaisella sivulatauksella.

Screenshot 2018-12-12 at 19.48.47.png

Kun 6 viikkoa on kulunut, PowerApps poistetaan intranetin etusivulta.

Ei kauhean vaikeaa.