Search

Home

gravity.integration
gravity.integration
INPUT DATA

INPUT DATA

Operator INPUT DATA służy do wprowadzenia danych z zewnętrznych systemów do projektu GRAVITY w momencie jego uruchomienia jako usługa WebService, lub database notification.

Współpracuje on z triggerami wywołującymi aplikację, takimi jak:

  • WebService (REST API) – gdy aplikacja GRAVITY jest wywoływana jako usługa HTTP,
  • Database – gdy uruchomienie następuje z poziomu bazy danych PostgreSQL.

Gdy dane zostaną przesłane w formacie JSON, operator INPUT DATA:

  • odbiera dane wejściowe,
  • konwertuje je do postaci rekordów magistrali danych (w strukturze kolumnowo-wierszowej),
  • przekazuje dane dalej do przetwarzania w projekcie GRAVITY.

Operator INPUT DATA stanowi zatem punkt wejściowy dla danych przychodzących z zewnątrz i odgrywa kluczową rolę w integracji aplikacji GRAVITY z innymi systemami. W parze z nim wykorzystywany jest zwykle operator OUTPUT DATAOUTPUT DATA , który odpowiada za zwrócenie przetworzonych danych na zewnątrz.

Przykład projektu GRAVITY z użyciem operatora INPUT DATA.

image

Przetwarzanie dla triggera typu WebService

Trigger, przyjmując dane w formacie JSON, przetwarza je i - jeśli w obiekcie parameters znajduje się obiekt odpowiadający nazwie Parameters name na operatorze - przekazuje dane tego obiektu do operatora.

Przykład

Załóżmy, że WebService został wywołany z body:

Obiekt zawiera obiekt parameters. W wywołaniu REST API sekcja parameters służy do przekazania parametrów do uruchamianego projektu. Obiekt INPUT DATA jest traktowany jako specyficzny rodzaj parametru procesu, dostępny tylko dla triggera wywołującego projekt o nazwie nadanej w polu Parameter name na właściwościach operatora.

image

Trigger, analizując sekcję parameters w body wywołania REST API, wyszukuje w systemie parametr o nazwie zgodnej z właściwościami obiektu parameters. Jeśli taki parametr istnieje, trigger przekazuje do niego wartość danej właściwości. W przypadku INPUT DATA zazwyczaj jest to obiekt, który operator konwertuje na bity magistrali.

Przetwarzania dla triggera typu Database (PostgreSQL)

Przetwarzanie dla triggera typu Database (PostgreSQL) odbywa się w podobny sposób jak dla triggera typu WebService z tą różnicą, że funkcja pg_notify powinna jako wiadomość przesłać tylko wartość obiektu parameters.

{
    "InputData1": 
    { 
        "index" : "FC985GFR55", 
        "index_name" : "Very important new article" , 
        "code" : "3434343434334343", 
        "unit" : "t"
    }
}

Konwersja obiektu JSON do bitów magistrali

Aby operator mógł poprawnie przekonwertować obiekt JSON potrzebny jest wzór obiektu, jaki otrzyma przy wywołaniu procesu. Takim wzorem jest struktura danych obiektu JSON.

Wzór JSON możesz podać na dwa sposoby:

  • jako plik (metoda niezalecana, gdyż wymagany jest fizyczny plik na dysku)
image
  1. opcję Template source ustaw na Template file,
  2. użyj przycisku Choose, aby wskazać plik z przykładowym wzorem obiektu JSON.
icon
Możesz użyć przycisku Use file content as entered json, aby zamienić wzór z pliku na Entered JSON
  • jako wzór w formie templatu
image
  1. opcję Template source ustaw na Entered JSON,
  2. wprowadź wzór obiektu JSON w polu JSON Template,
  3. wygeneruj drzewo obiektów JSON klikając przycisk Generate Tree.

Na zakładce JSON - node selection zobaczysz drzewo obiektów JSON wygenerowane na podstawie wzoru.

image

Możesz zaznaczyć właściwości, których wartości chcesz mieć na magistrali danych.

Po połączeniu operatora z kolejną magistralą danych, magistrala będzie zbudowana z bitów odpowiadających zaznaczonym właściwościom

icon
Jeśli obiekt JSON zawiera obiekty podrzędne i wybierzesz zarówno właściwości obiektu głównego, jak i obiektów podrzędnych, magistrala danych utworzy tyle rekordów, ile jest obiektów podrzędnych. W takim przypadku wartości z obiektu głównego zostaną powielone w każdym rekordzie podrzędnym.
icon
W systemie GRAVITY wiele operatorów potrafi grupować dane magistrali w trakcie przetwarzania, np. OUTPUT DATAOUTPUT DATA, OUTPUT SQLOUTPUT SQL, OUTPUT FILEOUTPUT FILE, CONVERT BITS TO FORMATCONVERT BITS TO FORMAT, GROUPINGGROUPING itp.