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 wcześniej zdefiniowanej logiki przetwarzania,
  • wielowarstwowe przetwarzanie danych – poprzez wywoływanie projektów podrzędnych jako części większego procesu,
  • przekazywanie parametrów i integrację wyników – operator może wykorzystywać bity magistrali i parametry projektu nadrzędnego jako dane wejściowe projektu wywoływanego.

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

Operator CALL OTHER PROJECT jest bliźniaczym operatorem do operatora INPUT OTHER PROJECTINPUT OTHER PROJECT, a jego konfiguracja i 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.

Ustawienie trybu Single execution powoduje zmianę sposobu wywołania projektu podrzędnego oraz sposobu tworzenia jego parametrów wejściowych.

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.

W celu umożliwienia przekazania danych z magistrali każdy bit zostanie przekonwertowany na typ tablicowy zawierający wartości ze wszystkich rekordów. Parametry projektu podrzędnego, które przyjmują te dane, muszą być zdefiniowane jako typ tablicowy (np. Array IntegerArray String).

W operatorze należy wskazać projekt GRAVITY wywoływany 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.

Należy również wskazać operator typu OUTPUT projektu podrzędnego, którego dane wyjściowe zostaną przekazane na magistralę wyjściową operatora wywołującego.

image

Pole RESULT TARGET określa sposób obsługi danych wyjściowych projektu podrzędnego:

image
  • Value from first row to the existing columns - wstawia wartości bitów z pierwszego rekordu zwróconego przez projekt podrzędny do istniejących bitów aktualnie przetwarzanego rekordu.
  • 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 - tworzy nową magistralę wyjściową na podstawie danych 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

  • Add to the busbar the data from the result - dodaje do istniejącej magistrali bitów dane pochodzące 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 - ignoruje wynik projektu podrzędnego; magistrala wyjściowa pozostaje bez zmian.

Pole Transaction mode określa sposób obsługi transakcji bazodanowych:

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
    W przypadku wystąpienia błędu 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 samodzielnie zarządza swoimi transakcjami. Dla wszystkich połączeń z bazami danych zakładane są transakcje, które są zatwierdzane w przypadku powodzenia procesu lub wycofywane w przypadku wystąpienia błędu.
  • icon
    Jeżeli 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 informacji na temat zarządzania transakcjami znajduje się w rozdziale: Zarządzanie transakcjami baz danych w projekcie

MAPOWANIE PARAMETRÓW

Projekt wywoływany może definiować parametry niezbędne do jego uruchomienia. Parametry te mogą mieć inne nazwy lub 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 na typ Array. Dlatego należy odpowiednio zdefiniować parametry 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, a w polu Source wskaż odpowiadający mu parametr lub bit magistrali projektu głównego.

image

Typy parametrów muszą być zgodne. W przeciwnym wypadku system sygnalizuje niezgodność typów ikoną wykrzyknika. Usunięcie wpisu jest możliwe po kliknięciu prawym przyciskiem myszy na rekordzie.

icon
Jeżeli projekt podrzędny zakończy się operatorem STOP PROCESSSTOP PROCESS, a nie operatorem wskazanym w polu Output, projekt główny będzie kontynuowany, a rezultat zostanie przekazany na magistralę tylko w następujących przypadkach:
  • gdy pole Transaction mode ma wartość Use separate transaction, a pole Action w operatorze STOP PROCESSSTOP PROCESS (w projekcie wywoływanym) ma wartość Stop processing with success and commit lub Stop processing with error and rollback.
  • gdy pole Transaction mode operatora wywołującego ma wartość Use transaction from main project, a pole Action w operatorze STOP PROCESSSTOP PROCESS (w projekcie wywoływanym) ma wartość Stop processing with success and commit.

W pozostałych przypadkach projekt wywołujący zostanie przerwany, a zwrócony rezultat będzie zgodny z ustawieniem polem Action operatora STOP PROCESSSTOP PROCESS.