Przewodnik po Flowee - jak budować aplikacje procesowe przy użyciu Flowee Help

External taski i integracje

Implementacja External Taska – przykład „get register data”

External Task służy do realizacji integracji z systemami zewnętrznymi (np. rejestry, scoring, CRM, API).
Silnik Flowee BPMS nie wykonuje logiki sam – publikuje zadanie w silniku, a zewnętrzna aplikacja (worker) cyklicznie je pobiera, przetwarza i odsyła wynik.

W tym przykładzie zadanie „get register data” służy do pobrania danych z publicznego rejestru na podstawie numerów NIP/REGON i zapisania ich do danych procesu w JSONie procesowym.

1. Konfiguracja External Taska w BPMN

Implementation:

Element

Znaczenie

type="external"

Zadanie będzie obsługiwane przez zewnętrznego workera

topic="GetRegisterData"

Kanał komunikacji – worker subskrybuje ten topic

asyncBefore="true"

Osobna transakcja (bezpieczne retry, brak blokad)

inputParameter

Dane wejściowe przekazywane do workera

2. Dane przekazywane do workera

Do workera trafiają następujące zmienne:

Variable

Type

Value

nip

String or expression

${dataDelegate.getValueByPath(processInstanceId, 'formData.public.client.startData.nip')}

regon

String or expression

${dataDelegate.getValueByPath(processInstanceId, 'formData.public.client.startData.regon')}

path

String or expression

formData.private.client.register

Miejsce zapisu danych w procesie w JSONie, żeby potem zasilić formularz danymi zwrotnie z API

Przykład danych, które worker dostanie z Flowee BPMS:

{ "nip": "1234567890", "regon": "012345678", "path": "formData.private.client.register" }

3. Logika po stronie workera (system zewnętrzny)

Worker to osobna aplikacja (np. Java, Spring Boot, Node.js, .NET), która:

  1. Subskrybuje topic GetRegisterData

  2. Pobiera zadanie z silnika Flowee BPMS

  3. Wywołuje system rejestr publiczny

  4. Zapisuje wynik do procesu

  5. Oznacza zadanie jako zakończone

Schemat działania:

Flowee → External Task → Worker → Rejestr publiczny → Worker → Flowee

4. Odpowiedzialność workera

Worker powinien:

  1. Odczytać dane wejściowe:

  • nip

  • regon

  • path

  1. Wywołać system Rejestr publiczny:

  • REST / SOAP / MQ

  • zbudować request

  • obsłużyć błędy

  1. Zbudować dane wynikowe:

np.

{ "status": "FOUND", "companyName": "Firma Testowa Sp. z o.o." }
  1. Zapisać wynik do procesu:

pod ścieżką przekazaną w path: formData.private.client.register

  1. Przykładowa odpowiedź workera do Flowee BPMS

Worker kończy zadanie, przekazując zmienne:

{ "registerResult": { "status": "FOUND", "companyName": "Firma Testowa Sp. z o.o." } }

lub bezpośrednio zapisuje do repozytorium danych (jeżeli korzysta z tego samego dataDelegate API).

Biznesowo:
➡ dane z Rejestru publicznego pojawiają się w formularzu sprawy
➡ mogą być użyte w kolejnych bramkach, DMN lub decyzjach.

  1. Obsługa błędów i retry

External Task automatycznie wspiera:

  • retry

  • time-outy

  • komunikaty błędów

Worker powinien:

Sytuacja

Co zrobić

Błąd techniczny

zgłosić failure + retry

Błąd biznesowy

zwrócić poprawną odpowiedź z flagą

Brak danych

zapisać status i kontynuować

System Rejestr publiczny nie odpowiada

retry z backoffem

Przykładowe scenariusze:

  • Rejestr publiczny niedostępny → retry

  • Firma nie istnieje → status: NOT_FOUND

  • Błąd danych → business error

  1. Znaczenie biznesowe tego External Taska

Ten krok procesu:

✔ integruje proces z rejestrem zewnętrznym
✔ automatyzuje pobieranie danych
✔ zasila formularz sprawy
✔ eliminuje ręczne sprawdzanie

09 lutego 2026