Czym jest Power Fx i co to jest funkcja?
Power Fx to język formuł używany w Power Apps — i w coraz większym zakresie w całym ekosystemie Power Platform. Najlepsza analogia? Formuły Excelowe. Działają na tej samej zasadzie: wkładasz dane wejściowe (argumenty), funkcja wykonuje operację i zwraca wynik.
Przykład z Excela: =IF(A1>10; "dużo"; "mało"). W Power Fx wygląda to analogicznie: If(wartość > 10; "dużo"; "mało"). Składnia jest zbliżona, a logika identyczna. Jeśli znasz Excela — masz już solidną bazę do nauki Power Fx.
Filter — filtrowanie danych ze źródła
Funkcja Filter() zwraca podzbiór danych ze źródła spełniający podany warunek. Używasz jej najczęściej w właściwości Items galerii:
Filter(ZgloszeniaIT, ID >= 1)
Możesz łączyć warunki operatorami logicznymi, filtrować po wielu kolumnach i używać dynamicznych wartości (np. z pola tekstowego lub zmiennej). To jedna z najczęściej używanych funkcji w każdej aplikacji Power Apps operującej na danych.
Search — wyszukiwanie pełnotekstowe
Funkcja Search() przeszukuje wskazane kolumny źródła pod kątem podanego ciągu znaków. Składnia:
Search(ZgloszeniaIT, TextInput1.Text, "Temat")
Możesz wskazać wiele kolumn do przeszukiwania jednocześnie. Search() jest idealna do pola wyszukiwania w aplikacji — użytkownik wpisuje fragment, a galeria natychmiast filtruje wyniki.
Navigate — przejście między ekranami
Funkcja Navigate() przenosi użytkownika do innego ekranu aplikacji:
Navigate(ViewScreen)
Opcjonalnie możesz określić animację przejścia. Często łączy się ją z Set(), żeby przed nawigacją zapisać zaznaczony element do zmiennej globalnej — i użyć go na ekranie docelowym.
If — warunki logiczne
Funkcja If() jest odpowiednikiem IF z Excela:
If(warunek; wartość_gdy_prawda; wartość_gdy_fałsz)
Power Fx obsługuje też zagnieżdżanie funkcji — możesz wstawić jedną funkcję jako argument innej. Funkcja zagnieżdżona najgłębiej wykonuje się jako pierwsza. Przykład:
If(CountRows(ZgloszeniaIT) > 0; Green; Red)
Tutaj CountRows() zlicza wiersze i zwraca liczbę, którą If() porównuje z zero. Wynik trafia np. do właściwości koloru przycisku lub tła ekranu.
Patch — zapis i aktualizacja danych
Funkcja Patch() to jeden z najważniejszych narzędzi — służy do tworzenia nowych rekordów i aktualizacji istniejących na liście SharePoint lub w Dataverse:
Patch(ZgloszeniaIT; Defaults(ZgloszeniaIT); {Temat: "Nowe zgłoszenie"; Opis: "Treść"})
Przy tworzeniu nowego elementu używasz Defaults() jako drugiego argumentu — sygnalizujesz tym, że chcesz dodać nowy wiersz, a nie aktualizować istniejący.
LookUp — pobieranie pojedynczego rekordu
Funkcja LookUp() zwraca pierwszy rekord ze źródła spełniający podany warunek:
LookUp(ZgloszeniaIT; ID = 3)
To odpowiednik Filter(), ale zamiast tabeli wyników zwraca pojedynczy obiekt. Przydatne, gdy chcesz pobrać konkretny element po ID i zapisać go do zmiennej globalnej, żeby potem wyświetlić jego szczegóły na innym ekranie.
Podsumowanie
Sześć funkcji opisanych w tym artykule — Filter, Search, Navigate, If, Patch, LookUp — pokrywa zdecydowaną większość potrzeb typowej aplikacji biznesowej w Power Apps. Nie ma jednej lepszej metody nauki Power Fx niż praktyka: buduj, testuj, obserwuj co zwracają funkcje. Dokumentacja Microsoft opisuje wszystkie dostępne funkcje — warto ją mieć pod ręką. W następnym odcinku zajmiemy się obsługą błędów, która domknie podstawowy zestaw umiejętności.