Wywołanie

Przykład body wysyłanego jako wywołanie serwisu w systemie GRAVITY w formacie JSON

{
    "call_alias": "article",
    "cache_time": 30,
    "process_id": 0,
    "get_data": [
        {
            "description": "OutputData1",            
            "records_count": "500",
            "offset": "0",
            "filter": [
                [["id","=",56],
                "or",
                ["id","==",4],
                "or",
                [["id","==",51], "and", ["name","!=","item"]]]
                ],
            "sort": [
                {"selector":"Employee","desc":false}, 
                {"selector":"Age","desc":false}
                ],                          
        }             
    ],
    "parameters": {
        "id": 23,
        "InputData1": {
            "name": "item",
            "quantity": 34
        }    
    }
}

Opis obiektu request:

atrybut wymagany typ opis
call_alias Tak. W przypadku wywołania na metodę zbiorczą callandgetdata string wskazanie triggera jaki ma zostać uruchomiony (pole Alias w definicji triggera) cache_time
Nie. W przypadku braku dane zwrócone z triggera
nie będą zapisane do cache int informacja ile czasu (sekundy) zwrot danych z triggera ma być przechowywany w cache. Każde odwołanie do danych z cache wydłuża czas życia cache o wartość parametru. Przydatne dla pobierania danych porcjami. Z cache można skorzystać używając parametru process_id
process_id Wymagany dla pobierania danych z cache int identyfikator procesu przetwarzania uzyskany z odpowiedzi danego triggera i używany aby odwołać się do cache. Jeśli identyfikator procesu istnieje w cache trigger nie zostanie uruchomiony, dane zostaną zwrócone z cache. Jeśli w cache nie zostanie znaleziony taki identyfikator procesu wykona się trigger i zwróci nowe dane oraz nową wartość process_id
get_data Nie jeśli projekt uruchamiany triggerem posiada tylko jeden
operator ‣ i nie zamierzamy porcjować danych, filtrować lub sortować Array[output_data] Tablica obiektów output_data. Zapewnia sterowanie zwrotem danych z operatorów ‣ na projekcie
parameters Tak jeśli projek korzysta z parametrów object Zapewnia przekazanie zarówno parametrów prostych do projektu jak i obiektu do operatora ‣.

object output_data

atrybut wymagany typ opis
description Tak string Nazwa operatora ‣ w definicji projektu.
records_count Nie. wymagany jeśli zamierzamy pobierać dane w paczkach int określa ilość zwróconych rekordów. Może być użyty w połączeniu z process_id=[process_id zwrócony z pierwszej odpowiedzi serwisu] wówczas kolejne porcje danych pochodzić będą z cache i nie nastąpi ponowne wywołanie triggera
offset Nie. wymagany jeśli zamierzamy pobierać dane w paczkach int kolejna strona danych
filter Nie. wymagany jeśli chcemy filtrować dane Array[“field”, “condition”, “value”] Parametr zbudowany jako trójelementowa tablica zawierająca odpowiednio: pole w danych po którym filtrujemy (field), warunek (condition), wartość (value). Przy czym “field” oraz “value” może zostać rozbudowane do tablicy według powyższych zasad. Może być używany z parametrem process_id
Możliwe wartości parametru condition w zestawieniu poniżej
sort Nie. wymagany jeśli zamierzamy sortować wyniki Array[sort] Tablica obiektów sort po których będą sortowane zwracane dane z wskazanego operatora ‣. Może być używany z parametrem process_id

Atrybut condition tablicy filter:

atrybut rodzaj opis
‘and’ logiczny Używany w przypadku łączenia warunków wymaga spełnienia wszystkich warunków połączonych tym operatorem
‘or’ logiczny Używany w przypadku łączenia warunków wymaga spełnienia przynajmniej jednego warunku z połączonych tym operatorem
‘==’ lub ‘=’ porównawczy równy
‘!=’ porównawczy różny
‘>’ porównawczy większy
‘>=’ porównawczy większy równy
‘<’ porównawczy mniejszy
‘<=’ porównawczy mniejszy równy
‘contains’ porównawczy zawiera ciąg znaków bez uwzględnienia wielkości znaków
‘containscasesensitive’ porównawczy zawiera ciąg znaków z uwzględnieniem wielkości znaków
‘startswith’ porównawczy zaczyna się od ciągu znaków
‘endswith’ porównawczy kończy się ciągiem znaków

object parameters

atrybut wymagany typ opis
[nazwa_parametru] w zależności od definicji parametru w projekcie w zależności od definicji parametru w projekcie nazwa_parametru jest zależna od parametrów zdefiniowanych w projekcie podobnie jak ich typ. Każdy parametr utworzony w projekcie może być przekazany jako kolejna właściwość obiektu parameters
[nazwa operatora DATA INPUT] w zależności od definicji parametru w projekcie object zależny od definicji projektu Jeśli w projekcie używamy operatora ‣ to nazwa obiektu będzie nazwą tego operatora. wartością będzie natomiast obiekt o strukturze zdefiniowanej w operatorze w polu JSON template

object sort

atrybut wymagany typ opis
selector tak string Nazwa pola w zwracanych danych podlegają sortowaniu
desc tak bool Kierunek sortowania

Odpowiedzi

{
    "process_id": 364,
    "state": "Success",
    "output_data": [
        {
            "output_description": "OutputData1",
            "records": 215,
			      "filtered_records": 2,
            "input_parameters": {
                "description": "OutputData1",
                "records_count": "500",
                "offset": "0",
            	  "filter": [
                [["id","=",1],
                "or",
                ["id","==",2],
                "or",
                [["id","==",51], "and", ["name","!=","item"]]]
                ],
               "sort": [
                {"selector":"id","desc":false}, 
                {"selector":"name","desc":false}
                ],  
            },
            "data": [
                {
                    "id": 1,
                    "name": "Item1",
                    "code": "123456789"
                },
                {
                    "id": 2,
                    "name": "Item2",
                    "code": "987654321"
                }
            ]
        }
    ]
}