Kävin viime vuonna useassa SharePoint Saturday:ssa puhumassa Power Appsista, Flow:sta sekä siitä, miten niitä organisaatiossa hallitaan.

Osallistumissani tapahtumissa kerättiin palautetta esityksistä eri tavoin, mutta pisimmän korren vei SharePoint Satruday Munchen. Siellä jokaisen luennon jälkeen salista poistuttaessa vastassa oli henkilö tabletin kanssa. Tabletilta jokainen sai arvostella esityksen käyttäen neljää tuttua hymynaamaa (kuva happyornot:in vastaavasta ratkaisusta).

HappyOrNot_careers

Kuva: https://www.happy-or-not.com/en/open-position/field-sales-manager-uk/

Menetelmä tuntui toimivalta ja esiintyjät saivat kaipaamansa palautetta. Käytettävyydeltään ratkaisu oli hieman kömpelö. Käyttälle ei esimerkiksi näytetty, oliko hänen antamansa palaute rekisteröity vai ei.

Annoinkin vahingossa päivän ensimmäiselle esitykselle palautteeni viidesti.

Tällä kertaa toteutetaan vastaa ratkaisu Power Appsilla. Tietenkin hieman parempi.

Tietojen tallennus – SharePoint

Luodaan ensimmäiseksi esityksiä ja niiden saamia palautteita varten SharePoint -lista, jonka sarakkeet ovat

  • Title (esityksen otsikko)
  • Presenter (esityksen pitäjä)
  • Green (montako vihreää palautetta esitys sai)
  • LightGreen (montako vaaleanvihreää palautetta esitys sai)
  • LightRed (montako vaaleanpunaista palautetta esitys sai)
  • Red (montako punaista palautetta esitys sai)

sessionfeedbacksharepoint

Power Apps – Esityksen valinta

Luodaan tyhjä Canvas Power Apps ja lisätään siihen galleria, jonka tietolähteenä on juuri tekemämme SharePoint-lista.

Näyttökuva 2019-12-20 kello 17.31.04.png

Tältä aloitusnäytöltä avustaja valitsee, minkä esityksen palautteita hän seuraavaksi kerää.

Toteutetaan palautepainikkeet Galleriana. Luodaan sitä varten Power Appsin käynnistymisen (OnStart) yhteydessä kokoelma. Se sisältää neljän painikkeen tiedot (tunniste, ikoni ja väri).

ClearCollect(colButtons;
 {
   ID: "Green";
   icon: EmojiSmile;
   color: RGBA(54;176;75;1)
 };
 {
   ID: "LightGreen";
   icon: EmojiSmile;
   color: RGBA(187;221;140;1)
 };
 {
   ID: "LightRed";
   icon: EmojiNeutral;
   color: RGBA(251;188;159;1)
 };
 {
   ID: "Red";
   icon: EmojiSad;
   color: RGBA(184;0;0;1)
 }
)

Näyttökuva 2019-12-20 kello 17.45.52.png

Käyttäjän valitessa aloitusnäytön (Screen2) galleriasta esityksen, asetetaan valitun rivin tiedot muuttujaan ja siirrytään seuraavalle näytölle (jonka olen tehnyt jo valmiiksi, Screen1).

OnSelect:  Set(varSelectedSession; galPresentations.Selected);; Navigate(Screen1; ScreenTransition.Cover)

Näyttökuva 2019-12-20 kello 17.34.54.png

Hypätään seuraavaksi päänäyttöön, jossa kerätään valitusta esityksestä palautetta.

Power Apps – Esityksen arvostelu

Lisätään Power Appsiin toinen näyttö (Screen1) ja siihen tyhjä vaakasuuntainen galleria.

Gallerian tietolähteenä on Power Appsin käynnityksen yhteydessä luotava kokoelma (colButtons).

Näyttökuva 2019-12-20 kello 17.53.20.png

Lisätään galleriaan ympyrä (Lisää -> Kuvake -> Ympyrä).

Asetetaan ympyrän leveydeksi ja korkeudeksi 260, sekä reunan paksuudeksi 10.

Näyttökuva 2019-12-20 kello 17.56.39.png

Asetetaan ympyrän väriksi kokoelman color-kenttä. Painikkeet alkavat hahmottumaan.

Näyttökuva 2019-12-20 kello 17.59.11.png

Viimeistellään painikkeet lisäämällä niiden sisään ikoni, jonka kuvake on kerrottu värin tavoin kokoelmassa (ThisItem.icon).

Näyttökuva 2019-12-20 kello 18.02.35.png

Lisätään näytölle

  • valitun esityksen otsikko (varSelectedSession.Title)
  • valitun esityksen pitäjä (varSelectedSession.Presenter)
  • pyyntö arvostella juuri nähty sessio

Näyttökuva 2019-12-27 kello 19.10.38.png

Tämähän näyttää jo lähes valmiilta.

Vielä kun saadaan painikkeiden painallukset rekisteröityä jotenkin.

Power Apps – Palautteiden tallennus

Lisätään painikkeen sisällä olevaa ikonia painettaessa (OnSelect -tapahtuma) painikkeen tunnus (ID) kokoelmaan (colFeedbacks).

OnSelect: Collect(colFeedbacks; {response: ThisItem.ID})

Näyttökuva 2019-12-27 kello 19.14.36.png

Nyt jokainen ikonin painallus tallentuu kokoelmaan.

Tallennetaan vastaukset SharePoint-listall vasta kaikkien halukkaiden annettua palautetta. Tallennus tehdään esiintyjän nimeä painamalla. Kikan tietää ainoastaan avustaja, joka pitelee tablettia vieraiden antaessa palautetta.

Näyttökuva 2019-12-27 kello 19.20.49.png

Tallennuksessa tallennetaan hymynaamojen painokerrat esitystä vastaavalle SharePoint listan riville. Tämän jälkeen tyhjennetään palautteet sisältävä kokoelma (colFeedbacks) ja palataan aloitusnäyttöön (Screen2).

Patch(SessionFeedback;varSelectedSession;
 {
   Red: CountIf(colFeedbacks;response = "Red");
   LightRed: CountIf(colFeedbacks;response = "LightRed");
   LightGreen: CountIf(colFeedbacks;response = "LightGreen");
   Green: CountIf(colFeedbacks;response = "Green")
 }
);;
Clear(colFeedbacks);;
Navigate(Screen2;ScreenTransition.CoverRight)

Tallennetut palautteet löytyvät SharePoint listalta.

Näyttökuva 2019-12-27 kello 19.26.34.png

Annetut palautteet on helppo näyttää myös sovelluksen etusivulla. Lisätään gallerian riville palautepainikkeita vastaavat ympyrät ja niiden sisään annettujen palautteiden lukumäärät (ThisItem.Green, ThisItem.Red jne).

Näyttökuva 2019-12-27 kello 19.31.39.png

Power Apps – Onnistuneen palautteen antamisen visualisointi

Esikuvana toimineen sovelluksen ongelmana oli, ettei käyttäjä tiennyt oliko palaute rekisteröity vai ei.

Hoidetaan tämä näytölle ilmestyvällä (itsestään katoavalla) kiitos-viestillä.

Tarvitsemme ajastimen, joka käynnistyy ikonia painettaessa. Se onnistuu lisäämällä ikonin OnSelect-tapahtumaan komennot, joilla asetetaan muuttuja (varStartTimer) ensin epätodeksi ja heti perään todeksi.

Set(varStartTimer; false);; Set(varStartTimer; true)

Näyttökuva 2019-12-27 kello 19.36.47.png

Lisätään näytölle ajastin (timer) jonka Start-ominaisuus saa arvokseen juuri luomamme muuttujan (varStartTimer) ja kesto (duration) 700 millisekuntia.

Näyttökuva 2019-12-27 kello 19.40.01.png

Nyt palautenapin painaminen käynnistää 700 millisekuntia kestävän ajastimen.

Seuraavaksi lisätään näytölle iso kiitosviesti.

Näyttökuva 2019-12-27 kello 19.44.20.png

Kiitosviesti on näkyvissä ajastimen arvon ollessa suurempi kuin 0, mutta pienempi kuin 700 (eli ajastimen ollessa käynnissä).

Näyttökuva 2019-12-27 kello 20.57.53.png

Kiitosteksti on väriltään musta, mutta sen läpinäkyvyys kasvaa ajastimen arvon kasvaessa.

Näyttökuva 2019-12-27 kello 20.59.27.png

Näin käyttäjä tietää palautteen menneen perille.

Lopputulos näyttää tältä.