Mamy już listę SharePoint i dwa przepływy Power Automate. Teraz czas na interfejs, który pozwoli działowi IT sprawnie obsługiwać zgłoszenia. W tym odcinku budujemy aplikację canvas w Power Apps — od pustego ekranu aż po działający formularz z zapisem danych. To najdłuższy odcinek cyklu, bo Power Apps daje ogromne możliwości projektowania.

Layout oparty na kontenerach — fundament aplikacji

Aplikacja będzie działać na komputerach (układ tabletowy), więc projektujemy ją z myślą o szerokim ekranie. Struktura to dwa obszary:

  • Lewe menu (wąski pasek) — trzy przyciski filtrujące zgłoszenia według statusu: Nowe, W trakcie realizacji, Archiwum.
  • Centralny obszar — galeria wyświetlająca listę zgłoszeń pasujących do wybranego filtra.

Do budowy layoutu używamy kontenerów (horyzontalnych i wertykalnych). To kluczowy element Power Apps — kontenery pozwalają tworzyć responsywne układy, w których elementy automatycznie dostosowują rozmiar i położenie. Zamiast ręcznie ustawiać współrzędne X/Y każdego kontrolki, opisujemy relacje między elementami.

Galeria z filtrowaniem po statusie — zmienne i formuły

Centralnym elementem widoku listy jest kontrolka Gallery podpięta do listy SharePoint. Żeby filtrowanie działało, wprowadzamy zmienną aplikacji przechowującą aktualnie wybrany status.

Na każdym przycisku w lewym menu ustawiamy właściwość OnSelect, która zapisuje wartość do zmiennej (np. „Nowe", „W trakcie realizacji", „Zakończone"). W galerii natomiast właściwość Items zawiera formułę warunkową: jeśli zmienna jest pusta — pokaż wszystkie zgłoszenia; jeśli ma wartość — przefiltruj listę SharePoint do zgłoszeń o tym statusie.

Efekt: po kliknięciu przycisku galeria natychmiast odświeża się, pokazując tylko odpowiednie zgłoszenia. Żadnego kodu, żadnych zapytań SQL — sama formuła Power Fx.

Dobre nazewnictwo kontrolek — inwestycja na przyszłość

Przy większych aplikacjach chaotyczne nazwy (Button1, Label3, Gallery2) szybko stają się koszmarem. Michał stosuje konsekwentny schemat: 3-literowy prefiks określający typ + opis elementu + ekran, do którego należy. Przykłady:

  • cnt_LeftMenu — kontener lewego menu
  • gal_Tickets_ListScreen — galeria zgłoszeń na ekranie listy
  • lbl_Title_GalTickets — labelka tytułu w galerii
  • btn_NewTickets — przycisk nowych zgłoszeń

Taki system sprawia, że kod formuł jest czytelny, a nawigacja po drzewie kontrolek w lewym panelu Power Apps staje się intuicyjna.

Ekran szczegółów — formularz edycji zgłoszenia

Kliknięcie zgłoszenia z galerii przenosi użytkownika na drugi ekran — widok szczegółów. Sercem tego ekranu jest kontrolka Edit Form podpięta do tej samej listy SharePoint.

Formularz automatycznie generuje pola dla wszystkich kolumn listy. Dopasowanie wymaga kilku kroków:

  1. Usunięcie niepotrzebnych pól (np. technicznych kolumn systemowych).
  2. Ustawienie trybu wyświetlania dla pól tylko do odczytu (data zgłoszenia, zgłaszający, treść) — żeby IT nie mogło ich przypadkowo zmienić.
  3. Zmiana pól wieloliniowych (opis, notatka, rozwiązanie) na tryb multiline.
  4. Ukrycie kolumny „Stary status" — jest potrzebna dla logiki przepływu, ale nie powinna być widoczna w interfejsie.

Przekazanie wybranego zgłoszenia z listy do formularza odbywa się przez zmienną: na strzałce w galerii (OnSelect) zapisujemy wybrany element do zmiennej vSelectedItem, a na właściwości Item formularza wskazujemy tę zmienną. Przy wyjściu z ekranu zmienną czyścimy w zdarzeniu OnHidden.

Zapisywanie zmian i obsługa błędów

Przycisk „Zapisz zmiany" wywołuje funkcję SubmitForm. Aby aplikacja była użyteczna, całość opakowujemy w IfError:

  • Gdy zapis się powiedzie — wyświetlamy zielone powiadomienie „Poprawnie zapisano" i wracamy do listy (Navigate).
  • Gdy wystąpi błąd — wyświetlamy czerwone powiadomienie „Wystąpił błąd. Spróbuj ponownie".

Takie podejście sprawia, że użytkownik zawsze dostaje feedback o wyniku operacji — to standard dobrego UX w aplikacjach biznesowych.

Gotowe rozwiązanie — co dalej?

Po trzech odcinkach mamy kompletny, działający system zgłoszeń IT złożony z trzech warstw: danych (SharePoint), automatyzacji (Power Automate) i interfejsu (Power Apps). Rozwiązanie można od razu wdrożyć w organizacji.

Kierunki dalszego rozwoju, o których warto myśleć:

  • Dodanie warstwy uprawnień — oddzielny widok dla zgłaszających użytkowników.
  • Automatyczna kategoryzacja zgłoszeń z użyciem AI (priorytet, typ problemu).
  • Raporty i dashboardy w Power BI oparte na tej samej liście SharePoint.