Aiemmassa kirjoituksessani kävin läpi, miten MS Forms:in avulla voi kerätä liitetiedostoja anonyymeiltä käyttäjiltä. Esitettyyn ratkaisuun liittyy kuitenkin yksi ongelma. SharePoint-sivuston tiedostojen jako tulee sallia kaikille (anyone). Käytännössä organisaation ulkopuolisille anonymeille käyttäjille.

Tämä vaihtoehto on usein organisaatioissa rajattu ympäristötasoisesti pois, jolloin sitä ei ole mahdolllista sallia millekään yksittäiselle sivustolle.

Onneksemme meillä on vaikka mitä vaihtoehtoja. Toteutetaan tällä kertaa Power Pagesilla yksinkertainen ratkaisu, joka ajaa saman tarpeen. Eli

  • Lomake, jolla kuka tahansa voi raportoida häiriön
  • Häiriöön voi liittyä 0-n kappaletta liitteitä

Aloitetaan.

Uuden Power Pages sivuston luominen

Siirrytään make.powerpages.microsoft.com sivustolle ja valitaan sopiva ympäristö. Käytän tässä omaa kehitysympäristöäni (Timo’s Dev Environment).

Kokeneet Power Pages kehittäjät aloittanevat tyhjästä (Start from blank), mutta me oikaisemme ja käytämme jotain valmiista pohjista (Start with a template).

Valmiita mallipohjia löytyy useita. Valitaan Starter layout -vaihtoehdoista kivoimman näköinen.

Annetaan sivustolle nimi ja osoite.

Sivuston luomisessa menee hetki.

Lähtötilanne näyttää tältä.

Power Pagesilla voi toteuttaa varsin helposti staattista sisältöä esittäviä sivuja. Todellinen kauneus piilee kuitenkin sen kyvyssä hyödyntää Dataverseä. Voimme esittää Dataverse-taulujen sisältöä käyttäjille. Voimme myös sallia käyttäjien lisätä Dataverseen uusia rivejä ja/tai päivittää olemassaolevia.

Ja juuri sitä olemme nyt tekemässä. Haluamme tarjota käyttäjille tavan lisätä rivejä Dataversen häiriö (incident) -tauluun.

Uuden taulun luominen

Häiriö-taulua ei ole vielä olemassa, joten luodaan se. Siirrytään Data-osioon (1) ja valitaan uuden taulun luonti (2).

Annetaan taululle nimi. Tarkoituksemme on liittää häiriöihin liitetiedostoja, joten ruksitaan kohta ”Enable attachments”.

Lisätään häiriön kuvaus-kenttä (description).

Uuden lomakkeen luominen

Seuraavaksi luomme lomakkeen, jolla häriöitä lisätään Power Pages -sivulla. Tämä tehdään taulun Forms-osiosta (1) löytyvällä New form (2) toiminnolla.

Annetaan lomakkeelle nimi.

Poistetaan lomakkeelta aikajana (timeline) ja lisätään kuvaus-kenttä (description). Lopuksi tuttuun tapaan Save and publish.

Mikäli Dataverse ja mallipohjaiset (model-driven) sovellukset ovat entuudestaan tuttuja, ei tässä ole mitään uutta. Perustekemistä.

Lomakkeen lisääminen sivulle

Lisätään häiriö-lomake sivuston etusivulle (Home).

Lomakkeen voi luoda modernisti copilotin avulla, mutta mennään perinteisesti ja valitaan ”New form”.

Valitaan taulu, johon lomakkeella syötetyt tiedot tallennetaan (Incidents), sekä juuri tekemämme uusi lomake (New Incident). Lopuksi nimetään lomakkeesta luotava kopio.

Käydään ruksimassa liitetiedostot (attachments) päälle. Muut lomakkeen asetukset kelpaavat meille sellaisenaan.

Ja näin meillä on sivulla lomake, jolla voi lisätä uusia häiriöitä.

Käyttöoikeudet

Sivuston käyttäjillä ei ole vielä oikeuksia lisätä häiriötä. Tarvittavat oikeudet pääsee määrittelemään New permissions -painikkeesta.

Mutta mitä oikeuksia käyttäjä tarvitsee?

Access type vaihtoehdot ovat seuraavat:

  • Global access (kaikki rivit)
  • Contact access (käyttäjää vastaavaan kontakti-tietueeseen liittyvät rivit)
  • Account access (käyttäjään liittyvään asiakas (account) -tietueeseen liittyvät rivit)
  • Self access (käyttäjä pääsee muokkaamaan häntä vastaavan kontakti-tietueen tietoja)

Olemme tekemässä sivustoa tunnistautumattomille (anonymous) käyttäjlle, jolloin vaihtoehdoksi jää ensimmäinen (global access).

Käyttöoikeudeksi riittää uuden rivin lisääminen (Create). Liitteiden lisäämiseksi tarvitaan lisäksi liittämis-oikeudet (Append to).

Lopuksi lisätään rooliksi anonyymi käyttäjä (Anonymous Users).

Huomaa, ettei käyttäjillä ole oikeuksia lukea häiriöitä. Käyttäjät eivät pääse lukemaan luomiaan, muttei myöskään kenenkään muun luomia tietueita. Vaikka heillä on tauluun Global access -tyyppiset oikeudet.

Sivuston siivoaminen

Käyttämämme mallipohjan mukana sivustolle on tullut kaikkea turhaa. Etusivulla on esimerkkisisältöjä ja sivusto sisältää useita sivuja.

Poistetaan etusivua lukuunottamatta kaikki sivut.

Sekä etusivulta turhat sisällöt.

Siivouksen jälkeen sivu näyttää tältä.

Yläosan (header) muokkaus

Sivustoa tulee riisua edelleen. Yläosan oikean reunan haku ja sisäänkirjautuminen tulee poistaa. Sivustollamme on vain yksi sivu, eikä kenenkään ole tarkoitus kirjautua mihinkään.

Valitaan yläpalkista ”Edit site header”.

Avautuvasta dialogista pääsee muokkaamaan muun muassa logoa ja otsikkotekstiä. Muttei oikean reunan linkkejä. Voimme kuitenkin avata koodin Visual Studio Codella alareunan Edit code -painikkeella.

Headerin koodi (header.html) avautuu selaimeen muokattavaksi.

Ja nyt tarkkana. Jos ei tiedä mitä tekee, saa sivuston koodia muokkaamalla hajalle. Ja vaikka tietäisikin, tulisi tässä vaiheessa ryhtyä tallentamaan lähdekoodeja muutoksineen versionhallintaan.

Mutta me oikaisemme. Poistetaan tylysti kirjautumiseen liittyvät koodit.

Tallennetaan muutokset, jonka jälkeen ne synkronoidaan (sync).

Kirjautumiseen liittyvä linkki katoaa.

Haun poistaminen

Sivuston haun voi poistaa asetuksista (Set up -> Copilot -> Site search -> Enable keywoard search).

Kunhan muistaa vielä synkronoida muutokset, näyttää otsikkopalkki tältä.

Kelpaa.

Sivuston värit ja logo

Päivitetään otsikkopalkin tekstit, värit ja logo mieleiseksemme.

Loput väri- ja fonttimärittelyt tehdään Styling-osiossa.

Kirjautumisasetukset

Olemme piilottaneet kirjautumislinkin, mutta poistetaan varmuuden vuoksi vielä kaikki tunnistautumisvaihtoehdot (Security -> Identity providers). Sivustoamme käyttävät ainoastaan tunnistautumattomat käyttäjät.

Kelpaa! Huomaa että Power Pages lomakkeilla voi käyttää suoraan CAPTCHA-ominaisuutta. Sen käyttö onkin järkevää, kyseessä on kuitenkin julkinen sivusto.

Kustannukset

Mitä tällaisen sivuston pyörittäminen kustantaa?

70,20€ kuukaudessa. Sisältäen 500 käyttäjää per kuukausi.

Yhteenveto

Power Pages on erinomainen tapa rakentaa palveluja organisaation ulkopuolisille käyttäjille (tunnistetuille tai tunnistamattomille). Kunhan

  • Käyttäjämäärät ovat maltillisia
  • Palvelulla on joku yhteys Power Platformiin

Tämän jutun ratkaisu on tästä hyvä esimerkki. Käyttäjät raportoivat sivuston kautta kuukausittain maksimissaan muutamia satoja häiriöitä liitteineen. Tiedot tallentuvat suoraan Dataverseen, jossa niitä voidaan käsitellä muilla Power Platformin työkaluilla organisaation sisällä.

Tunnistetuille käyttäjille voidaan näyttää heihin liittyviä tietoja ja antaa käyttäjien jopa muokata niitä. Esimerkiksi accountiin liittyviä laitteita tms. Erittäin kätevää ja suoraviivaista toteuttaa.

Mutta toteuttaisinko Power Pagesilla kaupungin julkiset verkkosivut? No en.