Search

Home

INPUT OTHER PROJECT

INPUT OTHER PROJECT

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 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.

image

KONFIGURACJA OPERATORA

W ustawieniach operatora INPUT OTHER PROJECT musisz zadeklarować inny projekt GRAVITY w polu Concept model to call.

icon
Projekt ten zostanie automatycznie przetworzony w trakcie realizacji aktualnego projektu w celu uzyskania strumienia danych początkowych.
image

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.

image
  • 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.
  • icon
    Gdy w procesie nadrzędnym na jakimkolwiek etapie jego wykonania wystąpi błąd, zmiany wprowadzone do baz danych w procesie podrzędnym zostaną wycofane.
  • 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.
  • icon
    Gdy błąd wystąpi w procesie nadrzędnym po wywołaniu procesu podrzędnego, zmiany wprowadzone do bazy danych przez proces podrzędny nie zostaną wycofane.
icon
Więcej o sposobie zarządzania transakcjami w rozdziale Zarządzanie transakcjami baz danych w projekcie.

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.

icon
Jeśli w projekcje głównym nie używasz parametrów a dane, które chcesz użyć jako parametr wejściowy do projektu podrzędnego masz na magistrali danych, możesz użyć operatora OUTPUT PARAMETERSOUTPUT PARAMETERS aby przekonwertować je na parametry.

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.

image

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.

icon
Inaczej niż w przypadku użycia operatora OTHER PROJECT CALL OTHER PROJECT CALL , wywołanie projektu podrzędnego nastąpi tylko jeden raz.
icon
Jeśli projekt podrzędny z jakiegoś powodu zakończył się operatorem STOP PROCESSSTOP PROCESS, a nie operatorem wskazanym w polu Output, projekt główny będzie kontynuowany, a rezultat wywołania projektu podrzędnego będzie przekazywany na magistralę tylko w następujących przypadkach:
  • Pole Transaction mode operatora wywołującego ma wartość Use separate transaction, a pole Action na operatorze STOP PROCESSSTOP 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 PROCESSSTOP 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 PROCESSSTOP PROCESS.