Tällä kertaa aiheena on yksi loppukäyttäjien ehdoton inhokki. Nimittäin mallipohjaisen Power Appsin käyttämä numeromuotoilu. Ellei kuulosta tutulta, niin havainnolistetaan aluksi tätä ihanuutta hieman.
Luodaan Dataverseen kaksi numeerista kenttää.
- Vuosiluku (kokonaisluku)
- Satunnainen desimaaliluku

Tehdään näille lomake ja kokeillaan.

Syötetään vuosiluku

Mutta se päivittyykin automaattisesti. Mikäs vuosiluku se tämä on?

Desimaalikentän kanssa meno on yhtä sekavaa. Syötetään luku

Ja luku päivittyy jälleen.

Huvittavia esimerkkejä voi keksiä vaikka ja kuinka. Annetaan vuosiluvuksi desimaaliluku 1550,78.

Mutta ehei, luku onkin 155,078.

Mitä ihmeen sekoilua tämä on?
Lomake muuttaa syötetyt numerot suomalaisen näkökulmasta eksoottiseen muotoon. Tämä aiheuttaa sekä hämmennystä että virheitä. No, ei se muoto nyt mikään järin eksoottinen ole. Se on English (US) -formaatti.
Mutta mistä tämä numeromuotoilu tulee? Vaikka käyttöjärjestelmä, selain ja kaikki maailman asetukset olisi väännetty käyttämään suomalaista muotoilua, niin Power Appsin lomakkeella numerot vain lällättelevät ja asettuvat erikoisiin asentoihin.
Dataversellä nimittäin on omat käyttäjäkohtaiset asetukset.
Dataverse ja käyttäjäasetukset
Avataan rattaan takaa omat asetukset (Personalization Settings).

Ja siellähän se syyllinen on! Kaikki muotoilut tehdään English (US) tyyliin.

Mutta miksi käyttäjän oletusasetus on tämä?
Asetus periytyy kyseisen ympäristön Dataverse-tietokannan kielestä. Se määritellään tietokannan luontivaiheessa, eikä sitä voi jälkikäteen vaihtaa. Oletuksena kielenä on Englanti (US).

Miksi Dataverse luodaan lähes aina englannninkielisenä?
Koska suomenkielisessä Dataversessä on sitten oikeasti (lähes) kaikki suomeksi. Kenttien näyttönimien lisäksi myös niiden sisäiset nimet. Tällaisessa ympäristössä on vaikea työskennellä, ellei ymmärrä suomea.

Vaikka ympäristön luontihetkellä kaikki sen parissa työskentelevät ymmärtäisivätkin suomea, voi tilanne olla jo vuoden päästä toinen.
Käyttäjäasetusten muokkaaminen
Ja sitten se kaikkien esittämä kysymys.
Mistä voin vaihtaa helposti kaikkien käyttäjien numeroformaatiksi suomen?
Et mistään. Ainoastaan käyttäjä itse voi vaihtaa käyttöliittymästä omia asetuksiaan.
Hienoa.
Tehdäänkin seuraavaksi tähän liittyen pari aputyökalua.
Power Apps – Käyttäjien asetusten muokkaus
Käyttäjien asetukset tallennetaan User Settings-tauluun. Se ei ole aivan tavallinen taulu, sillä sitä ei löydy olemassa olevien taulujen joukosta.

Mutta kyllä se siellä on. Sen voi lisätä canvas Power Appsiin.

Tehdään sovellus, jolla voi muokata käyttäjien asetuksia. Tarkemmin ottaen haluamme vaihtaa kaikki muotoilut suomalaisiin, eli vaihtaa käyttäjän Current Format -asetuksen.

Lyhyen tutkimisen jälkeen selviää, että käyttäjän Current Format löytyy User Settings -taulun Locale ID -kentästä. Suomi on 1035, Englanti (US) taas 1033 jne.
Lisätään sovellukseen aluksi galleria, jossa näytetään ympäristön käyttäjät.

Käyttäjiä voidaan hakea nimellä (fullname). Samalla käyttäjät, joiden etunimi alkaa ”#” merkillä, sivuutetaan.
Search(Filter(Users, !StartsWith('First Name',"#")), txtSearchText.Text, "fullname")
Lisätään gallerian oikealle puolelle lomake, jolla muokataan valitun käyttäjän asetuksia.

LocaleId on numeerinen kenttä. Luodaan valittavista arvoista otsikoineen kokoelma ja käytetään sitä combobox-kontrollissa.
Näin käyttäjä voi valita localeId:ksi selkokielisen arvon, mutta kantaan tallennetaan tarvittava numeerinen arvo.

Lomake lähetetään Tallenna-painikkeella..
SubmitForm(frmUserSettings)
Kokeillaan!
Timo Pertilän localeId on 1033 (English (US)).

Kyseisellä asetuksella numerot näyttävät tältä.

Vaihdetaan Timon localeId arvoksi 1035 (Finnish).

Nyt numerot näyttävät paljon tutummilta.

Ja Timon Current Format on päivittynyt.

Käyttöliittymän voi tehdä omien tarpeiden ja mieltymysten mukaan. Kunhan muistaa, ettei User Settings-taulussa ole käyttäjästä muuta tietoa kuin id.
Yksinkertaisimmillaan työkalu voisi näyttää esimerkiksi tältä.

Mutta tuskin haluamme asettaa käyttäjien asetuksia kohdilleen yksi kerrallaan.
Flow – Kaikkien käyttäjien asetusten vaihtaminen
Luodaan manuaalisesti käynnistyvä flow, joka hakee ympäristön kaikki käyttäjät. Lukuunottamatta kahta ensimmäistä (järjestelmän luomaa), joilla ei käyttäjäasetuksia ole alunperinkään.
Tulosjoukko sisältää niin paljon tavaraa, ettei flow selviä siitä. Rajataan se kattamaan ainoastaan käyttäjän tunnisteen (systemuserid), jonka tarvitsemme.

Päivitetään jokaisen käyttäjän asetuksia (User Settings). Huomaa että User Settings -taulun id:nä toimii käyttäjän (User) id.

Asetetaan localeId:ksi suomi (1035).

Valmista!
Flow – Uuden käyttäjän asetusten automaattinen vaihtaminen
Olemme nyt vaihtaneet olemassaolevien käyttäjien localeId-asetuksen haluamaksemme. Entäs uudet käyttäjät? Luodaan flow, joka korjaa myös ne.
Aina kun uusi käyttäjä luodaan, käydään asettamassa localeId:n arvoksi 1035.

Flow suoritetaan ainoastaan käyttäjän luonnin yhteydessä. Mikäli käyttäjä haluaa myöhemmin vaihtaa omia asetuksiaan, se on ok.
XrmToolBox
Kuten lähes kaikkea muutakin, myös käyttäjäasetuksia voi muokata XrmToolBoxin avulla. Tarvittava lisäosa on User Settings Utility.

XrmToolBoxin käyttö ei kuitenkaan aina ole mahdollista. Tällöin oman Power Appsin tekeminen asetusten muuttamiseksi on perusteltua. Onneksi ei kuitenkaan järin vaikeaa, kuten juuri näimme.