Po co w ogóle zmienne?
Zmienna to nazwane miejsce w pamięci, gdzie możesz przechować jakąś wartość — tekst, liczbę, obiekt z danymi lub całą kolekcję wierszy. W Power Apps i Power Automate zmienne pozwalają przekazywać dane między ekranami, przechowywać tymczasowe wyniki obliczeń i optymalizować liczbę zapytań do źródeł danych.
Zrozumienie typów zmiennych i ich zasięgów to fundament pisania wydajnego i poprawnego kodu w Power Fx.
Trzy typy zmiennych w Power Apps
1. Zmienne globalne — Set()
Zmienne globalne są dostępne na wszystkich ekranach aplikacji przez cały czas jej działania. Tworzy się je funkcją Set():
Set(varZmiennaGlobalna, User().Email)
Kiedy ich używać:
- Przekazywanie danych między ekranami (np. zaznaczony element galerii)
- Przechowywanie wartości, z której korzysta wiele widoków
- Sterowanie widocznością elementów w całej aplikacji
Uwaga: unikaj używania zmiennych globalnych tam, gdzie wystarczy zmienna lokalna. Niepotrzebne przechowywanie wartości w zmiennej globalnej może powodować trudne do wykrycia błędy, gdy dana wartość "wycieknie" do innego widoku.
2. Zmienne kontekstowe (lokalne) — UpdateContext()
Zmienne lokalne są widoczne tylko na ekranie, na którym zostały zdefiniowane. Tworzy się je funkcją UpdateContext():
UpdateContext({varZmiennaLokalna: User().Email})
Kiedy ich używać:
- Sterowanie stanem w obrębie jednego ekranu (np. ukrywanie sekcji, wyświetlanie trybu edycji)
- Przechowywanie tymczasowych wartości, które nie są potrzebne nigdzie indziej
- Zwiększanie bezpieczeństwa i czytelności kodu — ograniczony zasięg zmniejsza ryzyko przypadkowego wpływu na inne widoki
3. Zmienne kolekcyjne — Collect()
Kolekcje przechowują wiele wierszy danych — analogicznie do tabeli lub arkusza. Tworzy się je funkcją Collect():
Collect(varZmiennaKolekcyjna, ZgloszeniaIT)
Zasięg kolekcji jest globalny — dostępna jest na wszystkich ekranach. Typowe zastosowanie: pobranie danych ze źródła (SharePoint, Dataverse) raz na starcie aplikacji i praca na lokalnej kopii. Dzięki temu:
- Aplikacja nie wysyła zapytania do serwera przy każdym przejściu między widokami
- Działanie jest szybsze i płynniejsze dla użytkownika
- Można modyfikować dane lokalnie przed ewentualnym zapisem
Zmienne w Power Automate
W Power Automate zmienne inicjalizuje się akcją Initialize Variable na początku przepływu, jawnie określając ich typ:
- String — tekst
- Integer / Float — liczby całkowite i zmiennoprzecinkowe
- Boolean — prawda / fałsz
- Array — tablica (odpowiednik kolekcji z Power Apps)
- Object — obiekt (np. jeden wiersz z listy SharePoint)
Na zmiennych można wykonywać operacje:
- Set Variable — nadpisanie całej wartości zmiennej
- Append to Array Variable — dodanie elementu do tablicy
- Append to String Variable — dołączenie tekstu do istniejącego ciągu
- Increment / Decrement Variable — zwiększenie lub zmniejszenie wartości liczbowej
Podsumowanie: który typ zmiennej kiedy?
- Globalna (Set) — gdy dane potrzebne są na wielu ekranach aplikacji
- Lokalna (UpdateContext) — gdy dane dotyczą tylko bieżącego ekranu
- Kolekcja (Collect) — gdy chcesz pobrać tabelę danych raz i pracować na niej lokalnie
- Power Automate — zawsze jawna inicjalizacja z określonym typem, wybierz typ odpowiadający rodzajowi danych
Znajomość zmiennych i ich zasięgów to fundament, na którym będziemy budować bardziej zaawansowane formuły Power Fx w kolejnym odcinku.