Search

Home

OTHER PROJECT CALL

OTHER PROJECT CALL

Operator CALL OTHER PROJECT umożliwia wywołanie innego projektu GRAVITY w ramach bieżącego procesu przetwarzania danych. Wskazany projekt jest uruchamiany z poziomu operatora, a jego wynikowy strumień danych zostaje wprowadzony na magistralę wyjściową operatora.

Operator pozwala na:

  • modularne podejście do projektowania – umożliwia wielokrotne wykorzystanie zdefiniowanych wcześniej logik przetwarzania,
  • wielowarstwowe przetwarzanie danych – dzięki wywoływaniu projektów podrzędnych jako części większego procesu,
  • przekazywanie parametrów i integrację wyników – operator może korzystać z bitów magistrali i parametrów projektu nadrzędnego jako danych wejściowych do uruchamianego projektu.

Projekt uruchamiany z poziomu operatora powinien być przygotowany tak, by mógł działać jako samodzielny komponent przetwarzający dane zgodnie z oczekiwaniami projektu nadrzędnego.

Operator CALL OTHER PROJECT jest bliźniaczym operatorem do operatora INPUT OTHER PROJECTINPUT OTHER PROJECT i cała jego konfiguracja oraz funkcjonalność są zbliżone.

Przykład projektu z wykorzystaniem operatora CALL OTHER PROJECT.

image

KONFIGURACJA OPERATORA

Domyślnie projekt podrzędny jest wywoływany dla każdego rekordu magistrali wejściowej, a mapowanie parametrów wejściowych odbywa się na podstawie aktualnie przetwarzanego rekordu.

Ustawiając tryb Single execution podejmujesz decyzję zmianie sposobu wywołania projektu podrzędnego a także o sposobie tworzenia parametrów wejściowych do projektu podrzędnego.

image

W trybie tym projekt podrzędny zostanie wywołany tylko raz dla wszystkich rekordów magistrali. Z uwagi na ten fakt, aby zapewnić możliwość przekazania wartości z magistrali danych, każdy bit magistrali zostanie przekonwertowany na typ tablicowy zawierający dane bitu z każdego rekordu. Aby zapewnić przyjęcie danych tablicowych przez projekt podrzędny jego parametry przyjmujące wartości z magistrali również muszą zostać zdefiniowane jako typ tablicowy (Array integer, Array String itp.)

W operatorze OTHER PROJECT CALL musisz zadeklarować projekt GRAVITY, który zostanie wywołany jako podrzędny - pole 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 projektu wywoływanego, którego dane wyjściowe zostaną przesłane na magistralę wyjściową operatora wywołującego.

Ponadto możesz zdecydować jak postąpić z danymi wyjściowymi (zależne od wybranego operatora wyjściowego projektu podrzędnego) z projektu podrzędnego wybierając odpowiednią opcję pola RESULT TARGET.

image

Dostępne opcje:

  • Value from first row to the existing columns - opcja pozwala na wstawienie do już istniejących bitów aktualnie przetwarzanego rekordu z magistrali wejściowej, wartości bitów pierwszego zwracanego rekordu z projektu podrzędnego.
  • Po wybraniu opcji zobaczysz dodatkową zakładkę Column matching, w której będziesz mógł przyporządkować bity magistrali wejściowej do bitów zwracanych z projektu podrzędnego

    image
  • Create busbar from the result - opcja tworzy nową magistralę wyjściową na podstawie magistrali wybranego operatora wyjściowego (pole Output) projektu podrzędnego.
  • icon

    Ilość rekordów na magistrali wyjściowej z operatora będzie sumą ilości rekordów zwróconych przez wszystkie wywołania projektu podrzędnego

  • Add to the busbar the data from the result - opcja spowoduje dodanie do istniejącej magistali bitów pochodzących z operatora Output projektu podrzędnego.
  • icon

    Ilość rekordów na magistrali wyjściowej z operatora będzie sumą ilości rekordów zwróconych przez wszystkie wywołania projektu podrzędnego, a wartości bitów magistrali wejściowej zostaną powielone tylekroć ile rekordów zostanie zwróconych przez projekt podrzędny dla przetwarzanego rekordu wejściowego.

  • Ignore result - rezultat działania projektu podrzędnego zostanie zignorowana, a magistrala wyjściowa pozostanie identyczna jak wejściowa.

Pole Transaction mode pozwala na zdecydowanie w 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 wystąpi błąd w procesie nadrzędnym na jakimkolwiek etapie jego wykonania 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 kończy się powodzeniem i wycofuje, gdy 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 lub bitami magistrali projektu głównego.

icon

Zwróć uwagę, że przy użyciu trybu Single execution bity magistrali zostaną przekonwertowane do typu Array. Dlatego zwróć uwagę na definicję parametrów projektu podrzędnego.

Aby zmapować parametry wybierz zakładkę Parameters mapping.

W polu Called parameter name wybierz z listy parametr wejściowy projektu wywoływanego i w polu Source wybierz odpowiadający mu parametr lub bit magistrali projektu głównego.

image

Pamiętaj, że typy parametrów muszą się zgadzać. W przeciwnym wypadku system informuje o niezgodności typów wykrzyknikiem.

Usunięcie wpisów możliwe jest po kliknięciu prawym przyciskiem myszy na rekordzie.

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