Operator INPUT OTHER PROJECT umożliwia wywołanie innego projektu GRAVITY w ramach bieżącego procesu oraz wprowadzenie na magistralę danych strumienia będącego wynikiem działania wskazanego projektu. Operator ten działa jednokrotnie – na początku przetwarzania, podobnie jak inne operatory wejściowe.
Dzięki temu operatorowi możliwe jest:
- Modułowe budowanie złożonych procesów – poprzez integrację projektów pomocniczych, które pełnią rolę niezależnych bloków przetwarzania,
- Wielkokrotne użycie logiki – eliminacja potrzeby powielania konfiguracji w wielu miejscach, co upraszcza utrzymanie i rozwój,
- Inicjalizacja magistrali danymi wygenerowanymi przez inne projekty, które mogą wcześniej pobierać, agregować lub walidować dane,
- Logiczne wydzielenie funkcjonalności – np. sprawdzenie istnienia kontrahenta o podanym NIP można przenieść do osobnego projektu i traktować jak funkcję wywoływaną z wielu miejsc.
W praktyce operator INPUT OTHER PROJECT, podobnie jak OTHER PROJECT CALL , wspiera dzielenie dużych procesów na mniejsze, wielokrotnie używane moduły. Takie podejście przynosi korzyści projektowe, takie jak:
- większa czytelność głównego procesu,
- możliwość testowania i rozwijania wybranych fragmentów systemu niezależnie,
- centralne zarządzanie logiką – zmiany w wydzielonym projekcie automatycznie mają efekt we wszystkich miejscach jego użycia.
Typowe zastosowania obejmują między innymi: walidację danych zewnętrznych, sprawdzenie uprawnień użytkownika, integrację z API, generowanie tokenów, przekształcanie lub agregację danych przed ich użyciem w głównym procesie.
Przykład użycia operatora INPUT OTHER PROJECT.
KONFIGURACJA OPERATORA
W ustawieniach operatora INPUT OTHER PROJECT musisz zadeklarować inny projekt GRAVITY w polu Concept model to call.
Musisz również wskazać operator typu OUTPUT, czyli operator wyjściowy dla projektu wywoływanego, którego dane wyjściowe zostaną przesłane na magistralę wyjściową operatora wywołującego. Magistrala będzie zbudowana z dokładnie takich samych bitów jak wskazany operator OUTPUT projektu wywoływanego.
Pole Transaction mode pozwala zdecydować jaki sposób będą tworzone transakcje zakładane do połączeń bazodanowych wykorzystanych w projektach.
- Use transaction from main project → przekazuje wszystkie rozpoczęte transakcje do procesu podrzędnego, a wszystkie transakcje rozpoczęte w procesie podrzędnym zostaną przekazane do procesu nadrzędnego. Wszystkie transakcje są zatwierdzane po poprawnym zakończeniu procesu nadrzędnego, jak również wycofywane w przypadku zakończenia błędem.
- Use separate transaction → proces wywoływany sam zarządza swoimi transakcjami. Zakłada transakcje dla wszystkich połączeń do baz danych. Zatwierdza je, gdy operacja kończy się powodzeniem, a wycofuje, gdy zakończy się błędem.
MAPOWANIE PARAMETRÓW
Projekt wywoływany może posiadać parametry niezbędne do jego uruchomienia. Parametry te mogą mieć inną nazwę bądź nie występować w projekcie wywołującym. Należy powiązać parametry projektu wywoływanego z parametrami projektu głównego.
Aby zmapować parametry, wybierz zakładkę Parameters mapping.
W polu Called parameter name wybierz z listy parametr wejściowy projektu wywoływanego, a w polu Source wybierz odpowiadający mu parametr projektu głównego.
Pamiętaj, że typy parametrów muszą się zgadzać. W przeciwnym wypadku system poinformuje o niezgodności typów wykrzyknikiem.
Usunięcie wpisów możliwe jest po kliknięciu prawym przyciskiem myszy na rekordzie.
- Pole Transaction mode operatora wywołującego ma wartość Use separate transaction, a pole Action na operatorze
STOP PROCESS (w projekcie wywoływanym) ma ustawioną wartość Stop processing with success and commit lub Stop processing with error and rollback.
- Pole Transaction mode operatora wywołującego ma wartość Use transaction from main project, a pole Action na operatorze
STOP PROCESS (w projekcie wywoływanym) ma ustawioną wartość Stop processing with success and commit.
- W pozostałych przypadkach projekt wywołujący zostanie przerwany i zostanie zwrócony rezultat wykonania zgodny z polem Action operatora
STOP PROCESS.