Pobieranie wartości kolumny liczbowej w Power Apps

W dzisiejszym wpisie chciałbym zwrócić uwagę na istotną kwestię interpretacji danych przez Power Apps w zależności od ustawień języka regionalnego przeglądarki użytkownika końcowego.

Inne ustawienia regionalne użytkownika, niż zakładamy tworząc aplikację mogą spowodować występowanie błędów wpływających na działanie aplikacji.

W jednym z rozwiązań natknąłem się na problem wynikający ze zmiany języka przeglądarki użytkownika uruchamiającego Power Appkę.

posłużę się tym konkretnym przykładem.

W Power Apps pobieram dane z listy SharePoint’owej z listą produktów. Mamy zatem kolumnę liczbową z ilością danego produktu, a wartości, które może ona przyjmować są również liczbami dziesiętnymi. Ustawienia separatora to „’.”, a dla liczb tysiąca nie stosujemy przerw.

Za pomocą Gallery List wyświetlam te dane, zatem możemy mieć np. produkt: „Jabłka” o wartości „ilości” 1234.56 (w domyśle kg).

Powiedzmy, że chcemy wykorzystać wartość ilości w jednej z formuł.

okazuje się, że dla ustawień regionalnych en-EN użycie funkcji Value() działa poprawnie i zwraca nam liczę 1234.56, natomiast już dla ustawień pl-PL zwraca błąd (Error) i użytkownik otrzymuje komunikaty błędów.

Rozwiązanie:

Należy wiedzieć, że wartość liczbowa kolumny SharePoint’owej jest niezależnie od ustawień języka przekazywana w postaci tekstu w układzie 15 znaków. tzn. mając liczbę 12 tak naprawdę pobieramy ją w Power Appce jako „12.000000000000” a liczbę 1234,56 jako tekst: „1234.56000000000”

Dzięki temu chcąc np. porównać pobraną wartość z SPO listy „Ilość” z jakąś zmienną vLiczbaPorownywana możemy użyć uniwersalnego zapisu:

Funkcja ta zamienia naszą zmienna liczbową na format tekstu 15 znakowego – uzupełnia go odpowiednią ilością zer.

O czym należy pamiętać:

Przede wszystkim robiąc aplikacje należy zwrócić uwagę w jakich ustawieniach regionalnych będzie pracował użytkownik końcowy i pod to dostosować rozwiązanie, a najlepiej zrobić to jak najbardziej uniwersalnie.

Powyżej opisałem tylko 1 z przykładów, ale mogą mieć miejsce też inne np. wykorzystanie w aplikacji nazw dni tygodnia. W każdym języku zachowa się to inaczej. Warto mieć to na uwadze i np. wdrożyć praktykę testowania rozwiązania również w innych ustawieniach regionalnych.