Budujesz kolejny przepływ i znowu kopiujesz te same bloki logiki, które już masz w trzech innych flow? To znak, że czas poznać Child Flows — przepływy podrzędne, które działają jak funkcje: budujesz raz, wywołujesz wielokrotnie z różnych miejscy.

Czym jest Child Flow

Child Flow (przepływ podrzędny) to zwykły przepływ Power Automate z triggerem „Manually trigger a flow" lub „When a Power Apps or flow calls this flow", który jest wywoływany z innego przepływu zamiast ręcznie przez użytkownika. Przepływ wywołujący to Parent Flow.

Całość działa synchronicznie — Parent Flow czeka na zakończenie Child Flow i może odebrać wynik (dane wyjściowe) zanim przejdzie dalej.

Kiedy warto użyć Child Flow

  • Powtarzalna logika — ta sama sekwencja akcji pojawia się w wielu przepływach (np. wysyłanie powiadomień, aktualizacja rekordu, walidacja danych).
  • Duże flow do rozbicia — przepływ rozrósł się do kilkudziesięciu akcji i trudno go czytać. Child Flows pozwalają podzielić go na logiczne moduły.
  • Centralizacja zmian — jeśli logika musi się zmienić, poprawiasz ją w jednym miejscu, a wszystkie wywołania automatycznie dostają nową wersję.
  • Testowanie — Child Flow możesz przetestować osobno, niezależnie od całego głównego przepływu.

Jak zbudować Child Flow — krok po kroku

1. Stwórz nowy przepływ z odpowiednim triggerem

Utwórz nowy Instant Flow. Jako trigger wybierz „Manually trigger a flow". W sekcji Inputs zdefiniuj parametry wejściowe — to dane, które Parent Flow będzie przekazywał do dziecka (np. ID rekordu, email adresata, kwota do przetworzenia).

2. Dodaj logikę i dane wyjściowe

Zbuduj logikę przepływu. Na końcu dodaj akcję „Respond to a Power App or flow" — tam definiujesz, jakie dane Child Flow zwraca do rodzica (np. wynik operacji, ID nowo stworzonego elementu, status).

3. Wywołaj Child Flow z Parent Flow

W Parent Flow dodaj akcję „Run a Child Flow" (dostępna w kategorii „Flows"). Wybierz Child Flow, wypełnij jego parametry wejściowe i odbierz wyniki po zakończeniu.

Przekazywanie parametrów

Child Flow może przyjmować i zwracać dane różnych typów: tekst, liczba, wartość logiczna (boolean). Warto dokładnie przemyśleć interfejs przed budowaniem — to co Child Flow przyjmuje i zwraca jest jego „kontraktem" z całą resztą systemu.

Jeśli zmienisz parametry wejściowe lub wyjściowe Child Flow po tym, jak jest już używany, może to wymagać aktualizacji wszystkich Parent Flows, które go wywołują.

Child Flows a Solution-aware flows

Żeby akcja „Run a Child Flow" była dostępna, oba przepływy (parent i child) muszą być w tym samym Solution (rozwiązaniu). To kolejny argument za budowaniem przepływów w Solutions od początku — ułatwia zarządzanie, eksport i przenoszenie między środowiskami.

Praktyczny przykład — powiadomienie z Try-Catch

Typowy scenariusz: masz 5 różnych przepływów, z których każdy może skończyć się błędem. W każdym chcesz wysłać maila z informacją o błędzie do administratora. Zamiast kopiować 4 akcje (compose + send email) pięć razy:

  1. Budujesz Child Flow „Wyślij powiadomienie o błędzie" z inputami: nazwa przepływu, treść błędu, środowisko.
  2. W każdym z 5 przepływów, w gałęzi Catch, wywołujesz ten jeden Child Flow z odpowiednimi parametrami.

Gdy zmieni się format maila albo adresat — zmieniasz w jednym miejscu. Gotowe.