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 PROJECT, a jego konfiguracja i funkcjonalność są zbliżone.
Przykład projektu z wykorzystaniem operatora CALL OTHER PROJECT.
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.
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 Integer, Array String).
W operatorze należy wskazać projekt GRAVITY wywoływany jako podrzędny – pole Concept model to call.
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.
Pole RESULT TARGET określa sposób obsługi danych wyjściowych projektu podrzędnego:
- 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.
- Create busbar from the result - tworzy nową magistralę wyjściową na podstawie danych z operatora OUTPUT 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.
- Ignore result - ignoruje wynik projektu podrzędnego; magistrala wyjściowa pozostaje bez zmian.
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
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
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.
Pole Transaction mode określa sposób obsługi transakcji bazodanowych:
- 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 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.
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.
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.
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.
- gdy pole Transaction mode ma wartość Use separate transaction, a pole Action w operatorze
STOP 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 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 PROCESS.