Edellisessä kirjoituksessani Hyvästi InfoPath, tervetuloa PowerApps! (Osa 2) esittelin SharePointin uutta muokattava lomake -toiminnallisuutta. Mikäli et ole lukenut sitä vielä niin tee se nyt. Tässä kirjoituksessa käydään läpi miten ensimmäisessä osassa esitelty PowerApps-toteutus on tehty.
PowerApps toteutus – Työntekijän nettiyhteyden tilaaminen
Aloitetaan luomalla muokattu lomake listan PowerApps-valikon alta.
PowerApps miettii hetken ja luo listan pohjalta sovelluksen.
Luotu sovellus toimii samalla lailla kuin SharePoint-listan vakiolomake. Tästä voi sitten lähteä haluamaansa suuntaan.
Aloitetaan tekemällä Flow-blogista löytyvän ohjeen mukaan omat näytöt:
- uuden rivin luomiselle (CreateScreen)
- rivin tietojen katselulle (ShowScreen)
- rivin tietojen muokkaamiselle (EditScreen)
Ja sitten muokkaamaan. Pudotetaan aluksi uuden rivin lisäys -näytöltä kaikki ylimääräinen pois. Lisätään samalla lomakkeelle otsikko (Hakemus – netti).
Tietojen katselunäyttö vaatii jo enemmän tekemistä.
Lisätään ShowItemForm:iin CreatedBy (lomakkeen luoja) kohdalla näytettäviksi arvoiksi DisplayName sekä Picture. Piilotetaan lopuksi kyseinen kenttä varsinaiselta lomakkeelta asettamalla sen Visibile arvoksi off.
Lisätään lomakkeelle kuva (Insert – Media – Image) ja annetaan kuvan osoitteeksi Author_Image. Joka on juuri äsken lisäämämme CreatedBy-kentän (henkilö) Picture arvo (osoite henkilön profiilikuvaan). Monimutkaista? Älä huoli, tekemällä avautuu paremmin.
Nyt lomakkeella näkyy tilaajan kuva.
Logiikan rakentamisen helpottamiseksi muutetaan SharePoint listaa siten että jokaisella tilauksen tilalla on oma yes/no -tyyppinen kenttänsä:
- New: yes/no
- Approved: yes/no
- Rejected yes/no
- Ordered yes/no
Katselunäytöllä on leveä värillinen laatikko, joka kertoo käyttäjälle tilauksen tilan. Itseasiassa lomakkeella on jokaista tilaa varten samankokoinen laatikko samassa kohdassa. Laatikoiden näkyvyys määräytyy tilauksen tilan mukaan.
Kuvassa on näkyvillä ”Tilattu”-laatikko, jonka Visible-arvo on sama kuin Delivered_Yes_No -kontrollin arvo (= SharePoint listan Ordered-kenttä).
Miten Approve, Reject ja Mark as ordered -painikkeiden näkyvyyttä hallitaan? Painikkeen näkyvyys riippuu tilauksen tilasta. Esimerkiksi Approve-painike näkyy (Visible-arvo) ainoastaan mikäli kentät approved, rejected ja ordered sisältävät arvon false.
Muut painikkeet vastaavalla tavalla.
Tilauksen tilan vaihtamiseksi tarvitaan avuksi muuttujaa. Käyttäjän painaessa Approve-painiketta, asetetaan Approved-muuttujan arvoksi true.
Sillä on välitön vaikutus lomakkeen piilotettuun Approved-kenttään, joka saa arvonsa samaisesta Approved-muuttujasta.
Approve-painiketta painamalla tilauksen Approve-kentän arvoksi vaihtuu true ja lomake tallentuu.
Vastaavalla tavalla on toteutettu Reject ja Mark as ordered -painikkeet
Arvaatkin varmaan jo miten piilotetaan kenttiä tilauksen tekijältä. Vertaillaan onko nykyisen käyttäjän sähköpostiosoite eri kuin lomakkeen lähettäjän sähköpostiosoite. Vertailu asetetaan piilotettavan kentän Visible -arvoksi. Ja kas, kenttä katoaa näkyvistä mikäli tilausta katsoo sama henkilö kuin joka sen on alunperin lähettänyt.
Valmista!