Aplikacja Power Apps może samodzielnie czytać i zapisywać dane przez konektory. Ale co gdy potrzebujesz wywołać coś bardziej złożonego — wysłać maila, stworzyć meeting w kalendarzu, zaktualizować wiele rekordów w transakcji? Wtedy warto wyciągnąć logikę do Power Automate i wywołać przepływ bezpośrednio z przycisku w aplikacji.
Trigger: „Power Apps or flow"
Przepływ, który ma być wywoływany z Power Apps, musi używać triggera „When a Power Apps or flow calls this flow" (wcześniej nazywanego „PowerApps"). Ten trigger pojawia się po wybraniu Instant flow jako typ przepływu.
W triggerze definiujesz parametry wejściowe — to dane, które aplikacja będzie przekazywać do przepływu przy każdym wywołaniu. Przykłady: ID wybranego rekordu, dane z formularza, decyzja użytkownika (zatwierdzono/odrzucono).
Definiowanie danych wejściowych i wyjściowych
Po wybraniu triggera kliknij „Add an input". Dostępne typy: Text, Yes/No, File, Email, Number, Date. Każdy input ma nazwę — ta sama nazwa pojawi się w Power Apps przy wywołaniu przepływu.
Żeby przepływ mógł zwrócić dane do aplikacji (np. wynik operacji, numer nadanego ID), na końcu przepływu dodaj akcję „Respond to a PowerApp or flow". Tam definiujesz outputs — wartości, które Power Apps odbierze po zakończeniu wykonania.
Wywołanie z Power Apps — formuła Run()
Po stronie aplikacji dodaj przepływ do ekranu (Power Apps Studio → zakładka Action → Power Automate → Add flow). Wywołanie przepływu z formuły wygląda tak:
NazwaPrzeplywu.Run(TextInput1.Text, Dropdown1.Selected.Value)
Kolejność argumentów w Run() odpowiada kolejności inputów zdefiniowanych w triggerze przepływu.
Jeśli przepływ zwraca dane, wynik możesz przypisać do zmiennej:
Set(wynikPrzeplywu, NazwaPrzeplywu.Run(TextInput1.Text))
A następnie użyć wynikPrzeplywu.nazwaOutputu w dalszych formułach.
Wywołanie synchroniczne — ważna uwaga
Domyślnie wywołanie Run() jest synchroniczne — aplikacja czeka aż przepływ skończy działanie i dopiero wtedy kontynuuje (np. odświeża galerię, wyświetla komunikat sukcesu). Dla krótkich operacji (kilka sekund) to idealne. Dla długich procesów może to oznaczać, że użytkownik czeka — warto wtedy pokazać spinner lub komunikat „Przetwarzam…".
Kiedy flow, a kiedy bezpośredni konektor w Power Apps
- Bezpośredni konektor (Patch, SubmitForm) — prostsze operacje CRUD na jednym źródle danych. Szybsze, prostsze.
- Power Automate — gdy potrzebujesz operacji na wielu systemach, zatwierdzenia, wysłania maila, złożonej logiki lub dostępu do konektora niedostępnego w Power Apps.
Dobrą praktyką jest nie wkładać do Power Apps logiki biznesowej, która lepiej żyje w przepływie — aplikacja powinna głównie zbierać dane od użytkownika i je prezentować.