Operator OUTPUT DATA służy do przekazania na zewnątrz wyniku przetwarzania projektu GRAVITY podczas jego wywołania jako usługi Web Service.
W szczególności:
Operator OUTPUT DATA działa w parze z operatorem INPUT DATA , który odbiera dane wejściowe od klienta. Razem tworzą pełny kanał komunikacyjny umożliwiający integrację projektów GRAVITY z zewnętrznymi systemami – zarówno po stronie odbioru danych, jak i ich zwrotu po zakończeniu przetwarzania.
Przykład projektu GRAVITY z użyciem operatora OUTPUT DATA.

KONFIGURACJA OPERATORA
Pole Output Data Name określa nazwę zbioru danych generowanego przez operator w sekcji “Output_data” struktury JSON, zwracanej do klienta, który wywołał usługę WebService.
Operator udostępnia dwa sposoby przetwarzania danych wejściowych (pole Source type) na dane wyjściowe w formacie JSON
Create json → Pozwala tworzyć szablon formatu JSON na podstawie bitów magistrali. Aby to zrobić, użyj opcji DEFINE JSON SCHEME, która uruchomi Edytor formatu JSON. Za pomocą edytora zbudujesz dowolnie skomplikowaną strukturę danych w sposób prosty i intuicyjny.

<aside> <img src="/icons/info-alternate_green.svg" alt="/icons/info-alternate_green.svg" width="40px" />
W trakcie działania procesu, operator przetworzy dane z magistrali wejściowej zgodnie z definicją schematu JSON. Jeśli schemat zawiera poziomy zagnieżdżeń, dane wejściowe zostaną pogrupowane według tych poziomów.
</aside>
Use direct json from bit → Użyj tej opcji, jeśli na magistrali wejściowej jest bit danych, który przechowuje dane w formacie JSON i chcesz przekazać te dane (z dowolnego węzła) na wyjście operatora.

Source data bit → Bit magistrali zawierający dane w formacie JSON.
Path to the node extract → Wskazuje węzeł, od którego dane mają zostać przekazane do wyjścia operatora.
Jeśli chcesz przesłać całą zawartość bitu na wyjście operatora, pozostaw pole puste. Jeśli chcesz pobrać dane ze wskazanego węzła, użyj zapisu opartego na notacji JSONPath.
Ogólne zasady tworzenia wyrażenia:
output_data.data (jeśli output_data jest tablicą, zostanie wzięty pod uwagę każdy element),output_data[0].dataoutput_data[*].data,output_data[1].data,['output_data'][*].*['data'][*].*['sub data'][0]Przykład użycia:
Dane w formacie JSON
{
"process_id": 0,
"state": "Success",
"output_data": [
{
"output_description": "OutputData1",
"data": [
{
"id": 1,
"name": "name1",
"sub data": [
{
"pos": 11,
"pos_name": "pos11"
},
{
"pos": 12,
"pos_name": "pos12"
}
]
},
{
"id": 2,
"name": "name2",
"sub data": [
{
"pos": 21,
"pos_name": "pos21"
}
]
}
]
}
]
}
Przykłady:
output_data.data
[
{
"id": 1,
"name": "name1",
"sub data": [
{
"pos": 11,
"pos_name": "pos11"
},
{
"pos": 12,
"pos_name": "pos12"
}
]
},
{
"id": 2,
"name": "name2",
"sub data": [
{
"pos": 21,
"pos_name": "pos21"
}
]
}
]
output_data.data[0]
{
"id": 1,
"name": "name1",
"sub data": [
{
"pos": 11,
"pos_name": "pos11"
},
{
"pos": 12,
"pos_name": "pos12"
}
]
}
['output_data'][*].*['data'][*].*['sub data']
[
{
"pos": 11,
"pos_name": "pos11"
},
{
"pos": 12,
"pos_name": "pos12"
},
{
"pos": 21,
"pos_name": "pos21"
}
]
<aside> <img src="/icons/info-alternate_red.svg" alt="/icons/info-alternate_red.svg" width="40px" />
Należy pamiętać, że magistrala może zawierać wiele rekordów danych, z których każdy zawiera bit w formacie JSON, wykorzystany jako Source data bit.
W takim wypadku wynikiem przetwarzania będzie obiekt JSON zawierający sumę danych wygenerowaną na podstawie wszystkich rekordów.
</aside>
Result node name → Nazwa węzła, pod którym zostaną wstawione dane na wyjściu operatora.
Przykład dla warunku: ['output_data'][*].*['data'][*].*['sub data'] i wartości ustawionej w polu data_out:
"data_out" : [
{
"pos": 11,
"pos_name": "pos11"
},
{
"pos": 12,
"pos_name": "pos12"
},
{
"pos": 21,
"pos_name": "pos21"
}
]
Wynik ten zostanie uzupełniony o dane operatora oraz informacje o procesie, a następnie do klienta zostanie wysłany rezultat:
{
"process_id": 0,
"state": "Success",
"output_data": [
{
"output_description": "OutputData1",
"data_out": [
{
"pos": 11,
"pos_name": "pos11"
},
{
"pos": 12,
"pos_name": "pos12"
},
{
"pos": 21,
"pos_name": "pos21"
}
]
}
]
}
<aside> <img src="/icons/info-alternate_green.svg" alt="/icons/info-alternate_green.svg" width="40px" /> Zapoznaj się z podstroną Edytor formatu JSON.
</aside>
<aside> <img src="/icons/info-alternate_green.svg" alt="/icons/info-alternate_green.svg" width="40px" /> Zapoznaj się ze sposobami wywołania projektu jako WebService: Tworzenie wyzwalacza typu WebService, Wywołanie i odpowiedź REST API
</aside>