Dostępna jest definicja WADL pod adresem: https://<nazwa_serwera_hgdb>[:port]/mercury-ws-app/restServices/CaseSearchExtRest.wadl np. https://testcluster.hgdb.io/mercury-ws-app/restServices/CaseSearchExtRest.wadl.

Rozszerzony zbiór metod związanych z wyszukiwaniem i agregacją danych systemu HgDB:

  • dateMetricQuery(POST) - zapytanie agregujące dane po zadanym polu typu Date (data).
  • fieldMetricQuery(POST) - zapytanie zwracające liczby dokumentów powiązanych z danym polem i jego wartością.
  • groupByQuery(POST) - metoda dająca możliwość realizacji zapytań agregujących - z klauzulą "group by". 
  • searchByQuery(POST) - podstawowa metoda wyszukiwania spraw w oparciu o zapytanie do indeksu Lucene.

Metody dateMetricQuery(POST), fieldMetricQuery(POST), groupByQuery(POST) to usługi korzystające ze specjalnie skonstruowanych kolektorów danych składowanych w indeksie Lucene. Trzeba mieć świadomość, że wykonywane operacje dotyczą tylko pól, których wartości składowane są w indeksie. 

Dodatkowo usługa zawiera metody pozwalające na analizę wydajności danego zapytania:

  • explainPlanGroupByQuery(POST) - żądanie zwraca plan wykonania zapytania agregującego "group by". Pozwala na analizę wydajności wykonania zapytania bez jego wykonania.
  • explainPlanSearchByQuery(POST) - żądanie zwraca plan wykonania zapytania wyszukiwania. Pozwala na analizę wydajności wykonania zapytania bez jego wykonania.

dateMetricQuery(POST)

Usługa pozwalająca na agregację danych w zależności od zdefiniowanego w żądaniu pola daty.

Use Case

Wykorzystanie usługi do prezentacji agregacji danych na osi czasu. Przykładem może być prezentacja na wykresie (wykresy poniżej przedstawiają liczby spraw "zamkniętych" i "otwartych" w różnych przedziałach czasowych, źródło: panel Grafana):

Żądanie usługi

Opis żądania wysyłanego do usługi - parametry wejściowe:

Parametr

Opis

Wymagany?

Przykład

context

Kontekst żądania (zobacz Context i CaseHeader)

Tak

{
  userName: 'anonymous',
  userFullName: null,
  locale: null,
  timeZone: null,
  maxResults: 1,
  currentRole: 'anonymous',
  userRoles: null,
  sourceOfRequest: null,
  maxDepthResult: 1,
  decodeResult: DECODE_DATE_AND_LOB,
  ignoreCaseHeaderInResponse: false,
}

dateFieldsNames

Lista nazw pól o typie wyszukiwania DateField (zobacz opis Typy pól indeksu Lucene), które będą podstawą agregacji danych po datach. Listę pól możesz uzyskać wykorzystując usługę CaseIndexerFieldsManagerRest.getFieldsBySerachType(POST).

Tak

[
	"mrc_createDate"
]

duration

Zakres agregacji danych. Pole może przyjmować następujące wartości:

  • PER_DAY - agregacja zostanie dokonana "per dzień" - wynik prezentuje liczbę znalezionych spraw zagregowanych na podstawie daty dnia.
  • PER_HOUR - agregacja zostanie dokonana "per godzina" - wynik prezentuje liczbę znalezionych spraw zagregowanych na podstawie daty i godziny.
  • PER_MINUTE - agregacja zostanie dokonana "per godzina" - wynik prezentuje liczbę znalezionych spraw zagregowanych na podstawie daty, godziny i minuty.

Use Case

Definiowane zakresu jest wygodne ze względu na przejrzystość zwracanego wyniku:

  • Jeżeli chcemy zaprezentować agregację z dla spraw z ostatnich kilku godzin, wtedy definiujemy zakres PER_MINUTE.
  • Jeżeli chcemy zaprezentować agregację z dla spraw z ostatnich kilku dni , wtedy definiujemy zakres PER_HOUR.
  • Jeżeli chcemy zaprezentować agregację z dla spraw z ostatnich kilku miesięcy, lat to wtedy definiujemy zakres PER_DAY.

Tak

"PER_HOUR"

query

Opcjonalne, dodatkowe zapytanie Lucene pozwalające na zawężenie agregowanych danych do spraw spełniających konkretne warunki. Zobacz rozdział Zapytania wyszukujące  gdzie znajdziesz opis jak konstruować zapytania.

Nie

"mrc_status: *"

sortAscending

Flaga definiująca kierunek sortowania po dacie. Przyjmuje wartości:

  • true - wtedy wynik posortowany będzie po dacie rosnąco
  • false - wtedy wynik posortowany będzie po dacie malejąco 

Tak

true

additionalDateRange

Zapytanie zawężające oparte o pole typu Date (data). Kryterium zapytani musi być zdefiniowane jako zakres czyli "od do". 

Warto pamiętać, że najlepszy efekt zapytania otrzymamy dodając warunek dla pola, które zostało wskazane jako podstawa agregacji w parametrze żądania dateFieldsName .

Tak

"mrc_createDate:[946681200000 TO 1564608394143]"

page

Definicja strony pobieranego wyniku. 

Tak

{
  size: 10,
  number: 1
}
Przykład żądania w postaci JSON
{
"context": {
		"appName": "mercury-ws-app",
		"appVersion": "1.0",
		"userName": "anonymous",
		"comment": null,
		"maxResults": 100000,
		"queryTimeout": 2147483647,
		"locale": "pl_PL",
		"timeZone": "Europe/Warsaw",
		"userFullName": null,
		"eager4omdBuilder": "true",
		"trustedData": false,
		"ignoredCustomFields": null,
		"currentRole": null,
		"userRoles": null,
		"sourceOfRequest": "USER_DEV.localhost",
		"rootVersionContextID": null,
		"rootTagName": null,
		"directRequest": false,
		"formats": {
			"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
		},
		"ignoreAlternateFields": true,
		"decodeResult": "DATE_AND_LOB",
		"maxDepthResult":3,
		"decodeRequest": "DATE_AND_LOB",
		"ignoreCaseHeaderInResponse": false,
		"cacheUsage": "REFRESH",
		"httpResponseCacheUsage": "TO_USE",
		"defaultLuceneSortClause": null,
		"viewDefinition": null
	},
	"dateFieldsNames": [
		"mrc_createDate"
	],
	"duration": "PER_HOUR",
	"query": "mrc_status: *",
	"sortAscending": true,  	
	"additionalDateRange":  "mrc_createDate:[946681200000 TO 1564608394143]",
	"page": {
		"size": 60,
		"number": 1
	}
}

Odpowiedź usługi

Odpowiedź usługi, której działanie zakończyło się sukcesem, to obiekt typu ExcelData, który jest opisany w artykule PagedResult - wynik wyszukiwania.

Pełen przykład prezentacji obiektu odpowiedzi w postaci JSON.
{
   "result":    [
            {
         "A": "2019-02-01 10",
         "B": "1",
         "C": "0",
         "rowIndx": "1"
      },
            {
         "A": "2019-02-01 09",
         "B": "6",
         "C": "0",
         "rowIndx": "2"
      },
            {
         "A": "2019-01-25 13",
         "B": "22796",
         "C": "0",
         "rowIndx": "3"
      },
            {
         "A": "2019-01-24 21",
         "B": "649",
         "C": "0",
         "rowIndx": "4"
      },
            {
         "A": "2019-01-23 08",
         "B": "7",
         "C": "0",
         "rowIndx": "5"
      },
            {
         "A": "2019-01-21 18",
         "B": "1",
         "C": "0",
         "rowIndx": "6"
      },
            {
         "A": "2019-01-21 15",
         "B": "11",
         "C": "0",
         "rowIndx": "7"
      },
            {
         "A": "2019-01-12 04",
         "B": "1",
         "C": "0",
         "rowIndx": "8"
      },
            {
         "A": "2019-01-12 03",
         "B": "23809",
         "C": "0",
         "rowIndx": "9"
      },
            {
         "A": "2019-01-10 15",
         "B": "0",
         "C": "4",
         "rowIndx": "10"
      },
            {
         "A": "2019-01-10 14",
         "B": "0",
         "C": "2",
         "rowIndx": "11"
      },
            {
         "A": "2019-01-10 13",
         "B": "0",
         "C": "2",
         "rowIndx": "12"
      },
            {
         "A": "2019-01-10 12",
         "B": "0",
         "C": "4",
         "rowIndx": "13"
      },
            {
         "A": "2019-01-10 11",
         "B": "0",
         "C": "2",
         "rowIndx": "14"
      },
            {
         "A": "2019-01-10 10",
         "B": "0",
         "C": "2",
         "rowIndx": "15"
      },
            {
         "A": "2019-01-10 07",
         "B": "0",
         "C": "2",
         "rowIndx": "16"
      },
            {
         "A": "2019-01-10 05",
         "B": "0",
         "C": "6",
         "rowIndx": "17"
      },
            {
         "A": "2019-01-09 20",
         "B": "0",
         "C": "2",
         "rowIndx": "18"
      },
            {
         "A": "2019-01-09 16",
         "B": "0",
         "C": "2",
         "rowIndx": "19"
      },
            {
         "A": "2019-01-09 15",
         "B": "0",
         "C": "4",
         "rowIndx": "20"
      },
            {
         "A": "2019-01-09 14",
         "B": "0",
         "C": "2",
         "rowIndx": "21"
      },
            {
         "A": "2019-01-09 12",
         "B": "0",
         "C": "2",
         "rowIndx": "22"
      },
            {
         "A": "2019-01-09 09",
         "B": "0",
         "C": "6",
         "rowIndx": "23"
      },
            {
         "A": "2019-01-09 06",
         "B": "0",
         "C": "2",
         "rowIndx": "24"
      },
            {
         "A": "2019-01-08 23",
         "B": "0",
         "C": "2",
         "rowIndx": "25"
      },
            {
         "A": "2019-01-08 19",
         "B": "0",
         "C": "2",
         "rowIndx": "26"
      },
            {
         "A": "2019-01-08 17",
         "B": "0",
         "C": "4",
         "rowIndx": "27"
      },
            {
         "A": "2019-01-08 14",
         "B": "0",
         "C": "6",
         "rowIndx": "28"
      },
            {
         "A": "2019-01-08 12",
         "B": "0",
         "C": "2",
         "rowIndx": "29"
      },
            {
         "A": "2019-01-08 11",
         "B": "0",
         "C": "2",
         "rowIndx": "30"
      },
            {
         "A": "2019-01-08 09",
         "B": "0",
         "C": "2",
         "rowIndx": "31"
      },
            {
         "A": "2019-01-08 08",
         "B": "0",
         "C": "2",
         "rowIndx": "32"
      },
            {
         "A": "2019-01-07 16",
         "B": "0",
         "C": "2",
         "rowIndx": "33"
      },
            {
         "A": "2019-01-07 12",
         "B": "0",
         "C": "2",
         "rowIndx": "34"
      },
            {
         "A": "2019-01-07 11",
         "B": "0",
         "C": "2",
         "rowIndx": "35"
      },
            {
         "A": "2019-01-07 07",
         "B": "0",
         "C": "2",
         "rowIndx": "36"
      },
            {
         "A": "2019-01-06 10",
         "B": "0",
         "C": "6",
         "rowIndx": "37"
      },
            {
         "A": "2019-01-05 15",
         "B": "0",
         "C": "4",
         "rowIndx": "38"
      },
            {
         "A": "2019-01-05 11",
         "B": "0",
         "C": "2",
         "rowIndx": "39"
      },
            {
         "A": "2019-01-05 05",
         "B": "0",
         "C": "4",
         "rowIndx": "40"
      },
            {
         "A": "2019-01-04 20",
         "B": "0",
         "C": "2",
         "rowIndx": "41"
      },
            {
         "A": "2019-01-04 18",
         "B": "0",
         "C": "2",
         "rowIndx": "42"
      },
            {
         "A": "2019-01-04 17",
         "B": "0",
         "C": "2",
         "rowIndx": "43"
      },
            {
         "A": "2019-01-04 15",
         "B": "0",
         "C": "4",
         "rowIndx": "44"
      },
            {
         "A": "2019-01-04 12",
         "B": "0",
         "C": "6",
         "rowIndx": "45"
      },
            {
         "A": "2019-01-04 11",
         "B": "0",
         "C": "4",
         "rowIndx": "46"
      },
            {
         "A": "2019-01-04 09",
         "B": "0",
         "C": "4",
         "rowIndx": "47"
      },
            {
         "A": "2019-01-04 08",
         "B": "0",
         "C": "2",
         "rowIndx": "48"
      },
            {
         "A": "2019-01-04 00",
         "B": "0",
         "C": "6",
         "rowIndx": "49"
      },
            {
         "A": "2019-01-03 19",
         "B": "0",
         "C": "2",
         "rowIndx": "50"
      },
            {
         "A": "2019-01-03 16",
         "B": "0",
         "C": "2",
         "rowIndx": "51"
      },
            {
         "A": "2019-01-03 14",
         "B": "0",
         "C": "6",
         "rowIndx": "52"
      },
            {
         "A": "2019-01-03 13",
         "B": "0",
         "C": "10",
         "rowIndx": "53"
      },
            {
         "A": "2019-01-03 12",
         "B": "0",
         "C": "4",
         "rowIndx": "54"
      },
            {
         "A": "2019-01-03 09",
         "B": "0",
         "C": "2",
         "rowIndx": "55"
      },
            {
         "A": "2019-01-03 07",
         "B": "0",
         "C": "2",
         "rowIndx": "56"
      },
            {
         "A": "2019-01-02 20",
         "B": "0",
         "C": "2",
         "rowIndx": "57"
      },
            {
         "A": "2019-01-02 19",
         "B": "0",
         "C": "2",
         "rowIndx": "58"
      },
            {
         "A": "2019-01-02 16",
         "B": "0",
         "C": "6",
         "rowIndx": "59"
      },
            {
         "A": "2019-01-02 13",
         "B": "0",
         "C": "4",
         "rowIndx": "60"
      }
   ],
   "message": "FRAGMENT",
   "resultSize": 134,
   "currentPageInfo":    {
      "size": 60,
      "number": 1
   },
   "firstPageInfo":    {
      "size": 60,
      "number": 1
   },
   "previousPageInfo":    {
      "size": 60,
      "number": 1
   },
   "nextPageInfo":    {
      "size": 60,
      "number": 2
   },
   "lastPageInfo":    {
      "size": 60,
      "number": 3
   },
   "header":    {
      "A": "Date",
      "B": "mrc_createDate",
      "C": "mrc_endDate"
   },
   "columnTypes":    {
      "A": "STRING",
      "B": "LONG",
      "C": "LONG"
   }
}

Jeżeli z jakiegoś powodu wykonanie usługi zakończy się porażką, odpowiedź przyjmuje następujące parametry wyjściowe:

ParametrOpisPrzykład
errorCodeKod błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Informacje na temat danych zawartych w wartości tego parametru można uzyskać czytając artykuł Co oznacza wartość pola "errorCode"?null
errorMessageKomunikat błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null .null

fieldMetricQuery(POST)

Usługa pozwalająca na pobranie listy wyrażeń (wartości) występujących w danym polu sprawy wraz z liczbą dokumentów, w których to wyrażenie występuje.

Use Case

Jako narzędzie SEO (od ang. search engine optimization) – działania służące optymalizacji, zwiększeniu oglądalności stron internetowych, produktów w wyszukiwarkach czyli mechanizm, który można wykorzystać do promocji najpopularniejszych wartości (słów kluczowych) danego pola występujących w bazie HgDB, np. najpopularniejsze miasta, czy też może najczęściej serwisowani klienci. Przykładem na zastosowanie może być też Indeks:Polski - Najpopularniejsze słowa 1-1000 wersja Jerzego Kazojcia (co nie znaczy, że ta lista została uzyskana przy wykorzystaniu tej usługi). 

Wartości liczbowe uzyskane w wyniku działania usługi maja charakter statystyczny, tzn. są one uzyskane na podstawie statystyk indeksu Lucene. Nie uwzględniają one faktu usunięcia dokumentu z indeksu Lucene. 

Żądanie usługi

Opis żądania wysyłanego do usługi - parametry wejściowe:

Parametr

Opis

Wymagany?

Przykład

context

Kontekst żądania (zobacz Context i CaseHeader)

Tak

{
  userName: 'anonymous',
  userFullName: null,
  locale: null,
  timeZone: null,
  maxResults: 1,
  currentRole: 'anonymous',
  userRoles: null,
  sourceOfRequest: null,
  maxDepthResult: 1,
  decodeResult: DECODE_DATE_AND_LOB,
  ignoreCaseHeaderInResponse: false,
}

fieldName

Nazwa pola indeksu Lucene, dla którego pobrana zostanie metryka wartości.

Tak

"mrc_luceneDocumentMemo"

loadTop

Flaga determinująca to czy znalezione mają być wyrażenia o najwyższej występowalności. Przyjmuje wartości true  albo false . Ustawienie jej na true implikuje dłuższy czas realizacji usługi.

Tak

true

filterClause

Dodatkowe kryterium filtrowania wartości. Można stosować wildcard np. aby pobrać wszystkie wartości na literę 'a' jako kryterium podamy "a*".

Nie

null

sortAscending

Flaga definiująca kierunek sortowania po wartościach pola. Przyjmuje wartości:

  • true - wtedy wynik posortowany będzie po wartościach pola rosnąco
  • false - wtedy wynik posortowany będzie po wartościach pola malejąco 

Tak

true

page

Definicja strony pobieranego wyniku. 

Tak

{
  size: 10,
  number: 1
}
Przykład żądania w postaci JSON
{
	"context": {
		"appName": "mercury-ws-app",
		"appVersion": "1.0",
		"userName": "anonymous",
		"comment": null,
		"maxResults": 20,
		"queryTimeout": 2147483647,
		"locale": "pl_PL",
		"timeZone": "Europe/Warsaw",
		"userFullName": null,
		"eager4omdBuilder": "true",
		"trustedData": false,
		"ignoredCustomFields": null,
		"currentRole": null,
		"userRoles": null,
		"sourceOfRequest": "USER_DEV.localhost",
		"rootVersionContextID": null,
		"rootTagName": null,
		"directRequest": false,
		"formats": {
			"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
		},
		"ignoreAlternateFields": true,
		"decodeResult": "DATE_AND_LOB",
		"maxDepthResult": 3,
		"decodeRequest": "DATE_AND_LOB",
		"ignoreCaseHeaderInResponse": false,
		"cacheUsage": "TO_USE",
		"httpResponseCacheUsage": "NONE",
		"defaultLuceneSortClause": null,
		"viewDefinition": null
	},
	"fieldName": "mrc_luceneDocumentMemo",
	"loadTop": true,
	"filterClause": "a*",
	"sortAscending": false,
	"page": {
		"size": 60,
		"number": 1
	}
}

Odpowiedź usługi

Odpowiedź usługi, której działanie zakończyło się sukcesem, to obiekt typu ExcelData, który jest opisany w artykule PagedResult - wynik wyszukiwania. Parametry odpowiedzi header oraz columnTypes zawsze przyjmują te same wartości:

"header":    {
  "A": "value",
  "B": "filterClause",
  "C": "count"
},
"columnTypes":    {
  "A": "STRING",
  "B": "STRING",
  "C": "LONG"
} 
Pełen przykład prezentacji obiektu odpowiedzi w postaci JSON....
{
   "result":    [
            {
         "A": "by",
         "B": null,
         "C": "1060718",
         "rowIndx": "1"
      },
            {
         "A": "form",
         "B": null,
         "C": "1060718",
         "rowIndx": "2"
      },
            {
         "A": "generated",
         "B": null,
         "C": "1060718",
         "rowIndx": "3"
      },
            {
         "A": "request",
         "B": null,
         "C": "1060718",
         "rowIndx": "4"
      },
            {
         "A": "mercury",
         "B": null,
         "C": "699048",
         "rowIndx": "5"
      },
            {
         "A": "terytstreet",
         "B": null,
         "C": "590773",
         "rowIndx": "6"
      },
            {
         "A": "a",
         "B": null,
         "C": "504888",
         "rowIndx": "7"
      },
            {
         "A": "ulica",
         "B": null,
         "C": "474959",
         "rowIndx": "8"
      },
            {
         "A": "ul",
         "B": null,
         "C": "299273",
         "rowIndx": "9"
      },
            {
         "A": "slawas",
         "B": null,
         "C": "247994",
         "rowIndx": "10"
      },
            {
         "A": "01",
         "B": null,
         "C": "201715",
         "rowIndx": "11"
      },
            {
         "A": "nieokreślona",
         "B": null,
         "C": "200600",
         "rowIndx": "12"
      },
            {
         "A": "99998",
         "B": null,
         "C": "200469",
         "rowIndx": "13"
      },
            {
         "A": "true",
         "B": null,
         "C": "178552",
         "rowIndx": "14"
      },
            {
         "A": "false",
         "B": null,
         "C": "152821",
         "rowIndx": "15"
      },
            {
         "A": "04",
         "B": null,
         "C": "152131",
         "rowIndx": "16"
      },
            {
         "A": "02",
         "B": null,
         "C": "143505",
         "rowIndx": "17"
      },
            {
         "A": "06",
         "B": null,
         "C": "138035",
         "rowIndx": "18"
      },
            {
         "A": "14",
         "B": null,
         "C": "127182",
         "rowIndx": "19"
      },
            {
         "A": "brak",
         "B": null,
         "C": "118129",
         "rowIndx": "20"
      }
   ],
   "message": "ALL",
   "resultSize": 20,
   "currentPageInfo":    {
      "size": 20,
      "number": 1
   },
   "firstPageInfo":    {
      "size": 20,
      "number": 1
   },
   "previousPageInfo":    {
      "size": 20,
      "number": 1
   },
   "nextPageInfo":    {
      "size": 20,
      "number": 1
   },
   "lastPageInfo":    {
      "size": 20,
      "number": 1
   },
   "header":    {
      "A": "value",
      "B": "filterClause",
      "C": "count"
   },
   "columnTypes":    {
      "A": "STRING",
      "B": "STRING",
      "C": "LONG"
   }
}

Jeżeli z jakiegoś powodu wykonanie usługi zakończy się porażką, odpowiedź przyjmuje następujące parametry wyjściowe:

ParametrOpisPrzykład
errorCodeKod błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Informacje na temat danych zawartych w wartości tego parametru można uzyskać czytając artykuł Co oznacza wartość pola "errorCode"?null
errorMessageKomunikat błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null .null

groupByQuery(POST) 

Implementacja usługi pozwala na realizację żądań grupujących (agregujących) dane na podstawie klauzuli "Group By".

Use Case

Usługę można wykorzystać do wszelkiego rodzaju analiz danych.

Żądanie usługi

Opis żądania wysyłanego do usługi - parametry wejściowe:

Parametr

Opis

Wymagany?

Przykład

context

Kontekst żądania (zobacz Context i CaseHeader)

Tak

{
  userName: 'anonymous',
  userFullName: null,
  locale: null,
  timeZone: null,
  maxResults: 1,
  currentRole: 'anonymous',
  userRoles: null,
  sourceOfRequest: null,
  maxDepthResult: 1,
  decodeResult: DECODE_DATE_AND_LOB,
  ignoreCaseHeaderInResponse: false,
}

query

Opcjonalne, dodatkowe zapytanie Lucene pozwalające na zawężenie agregowanych danych do spraw spełniających konkretne warunki. Zobacz rozdział Zapytania wyszukujące  gdzie znajdziesz opis jak konstruować zapytania.

Nie

null

groupByClause

Klauzula "Group By" agregująca dane składowane w indeksie Lucene. Zobacz rozdział Klauzula "Group By" gdzie znajdziesz opis jak konstruować zapytania agregujące.

Tak

"trunc(mrc_createDate, DD) as createDatePerMonth, count(1) as count"

filterClause

Dodatkowe kryterium filtrowania wartości. Można stosować wildcard np. aby pobrać wszystkie wartości na literę 'a' jako kryterium podamy "a*".

Nie

null

additionalDateRange

Zapytanie zawężające oparte o pole typu Date (data). Kryterium zapytani musi być zdefiniowane jako zakres czyli "od do". 

Tak

"mrc_createDate:[946681200000 TO 1564608394143]"

page

Definicja strony pobieranego wyniku. 

Tak

{
  size: 10,
  number: 1
}

resultTypeName

Nazwa typu jaki ma reprezentować wynik grupowania. 

Typ (definicja typu sprawy) o podanej nazwie musi być zdefiniowany w bazie HgDB.

Nie

null

resultPkPropertyName

Nazwa pola z unikalną wartością wskazująca na wiersz/element listy w wyniku. Parametr opcjonalny. Jeżeli nie zostanie zdefiniowany pole przyjmie wartość "rowId". 

Nie

null

Odpowiedź usługi

Odpowiedź przyjmuje następujące parametry wyjściowe:

ParametrOpisPrzykład
errorCodeKod błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Informacje na temat danych zawartych w wartości tego parametru można uzyskać czytając artykuł Co oznacza wartość pola "errorCode"?null
errorMessageKomunikat błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null .null
queryStatsStatystyki wykonania zapytania w postaci obiektu QueryStats.
{
	"allExecTime": 1339,
	"mainPrepareTime": 11,
	"collValidationTime": 1,
	"mainCollExecTime": 0,
	"mainCollExecCount": 47281,
	"subCollExecTime": 4,
	"subCollExecCount": 8,
	"subExecLeve1Time": 1337,
	"subExecLeve2Time": 0,
	"subExecLeve3Time": 0,
	"subExecLeve4Time": 0,
	"initResultSetTime": 6,
	"resultSetSize": 3
}
dto

Wynik działania usługi w postaci obiektu PagedResult. Elementem listy jest obiekt w postaci definicji sprawy. Obiekt nie jest rzeczywistą sprawą składowaną w bazie HgDB.

Obiekt sprawy zawiera pole mrcCaseHeader typu CaseHeader, który ma dwa istotne pola typeCode oraz pkPropertyName. Pola te przyjmują wartość:

  • typeCode - przyjmuje generowaną wartość "QueryResult_<wartość_losowa>" np. "QueryResult_d5fd73da" w przypadku gdy argument wejściowy usługi resultTypeName nie jest ustawiony.
  • pkPropertyName - przyjmuje wartość "rowId" w przypadku gdy argument wejściowy usługi resultPkPropertyName nie jest ustawiony.
Pełen przykład prezentacji obiektu odpowiedzi w postaci JSON.
{
   "errorCode": "",
   "errorMessage": "",
   "queryStats":    {
      "allExecTime": 1339,
      "mainPrepareTime": 11,
      "collValidationTime": 1,
      "mainCollExecTime": 0,
      "mainCollExecCount": 47281,
      "subCollExecTime": 4,
      "subCollExecCount": 8,
      "subExecLeve1Time": 1337,
      "subExecLeve2Time": 0,
      "subExecLeve3Time": 0,
      "subExecLeve4Time": 0,
      "initResultSetTime": 6,
      "resultSetSize": 3
   },
   "dto":    {
      "resultSize": 3,
      "result":       [
                  {
            "mrcCaseHeader":             {
               "typeCode": "QueryResult_d5fd73da",
               "dirty": false,
               "pkPropertyName": "rowId"
            },
            "rowId": "ef634915-90d7-437f-8415-fd96759c9774",
            "id": "2017.q1",
            "max": 132044.34,
            "sum": 374730.02,
            "avg": 124910.0066666667,
            "min": 120344.34
         },
                  {
            "mrcCaseHeader":             {
               "typeCode": "QueryResult_d5fd73da",
               "dirty": false,
               "pkPropertyName": "rowId"
            },
            "rowId": "bfa12932-d8c8-40ba-bdf1-50dbaf109490",
            "id": "2018.q2",
            "max": 155344.34,
            "sum": 294188.68,
            "avg": 147094.34,
            "min": 138844.34
         },
                  {
            "mrcCaseHeader":             {
               "typeCode": "QueryResult_d5fd73da",
               "dirty": false,
               "pkPropertyName": "rowId"
            },
            "rowId": "b248b739-4d1c-429f-a883-e0a7892fa30a",
            "id": "2018.q1",
            "max": 132344.34,
            "sum": 375033.02,
            "avg": 125011.0066666667,
            "min": 120344.34
         }
      ],
      "message": "ALL",
      "executionTime": 1523,
      "currentPageInfo":       {
         "size": 60,
         "number": 1
      },
      "firstPageInfo":       {
         "size": 60,
         "number": 1
      },
      "previousPageInfo": {},
      "nextPageInfo": {},
      "lastPageInfo":       {
         "size": 60,
         "number": 1
      },
      "allPages": [      {
         "size": 60,
         "number": 1
      }],
      "pagingParams":       {
         "offset": 0,
         "cursorOfPage": 0,
         "maxPageSize": 60,
         "maxCount": 100000,
         "pageSize": 60,
         "page":          {
            "size": 60,
            "number": 1
         },
         "valid": "true",
         "isReadOnly": "false"
      }
   }
}

Więcej przykładów wykorzystania usługi znajdziesz w Przykłady agregacji danych.


sarchByQuery(POST)

Implementacja usługi pozwala na realizację żądań wyszukujących sprawy składowane w bazie danych HgDB.

Use Case

Usługę można wykorzystać do wszelkiego rodzaju analiz danych.

Żądanie usługi

Opis żądania wysyłanego do usługi - parametry wejściowe:

Parametr

Opis

Wymagany?

Przykład

context

Kontekst żądania (zobacz Context i CaseHeader)

Tak

{
  userName: 'anonymous',
  userFullName: null,
  locale: null,
  timeZone: null,
  maxResults: 1,
  currentRole: 'anonymous',
  userRoles: null,
  sourceOfRequest: null,
  maxDepthResult: 1,
  decodeResult: DECODE_DATE_AND_LOB,
  ignoreCaseHeaderInResponse: false,
}

query

Zapytanie Lucene pozwalające na wyszukanie spraw spełniających konkretne warunki. Zobacz rozdział Zapytania wyszukujące  gdzie znajdziesz opis jak konstruować zapytania.

Tak

"mrc_status:A AND (id:\"2018.Q1\" OR id:2018.04)"

sortClause

Klauzula sortowania wyniku wyszukiwania: póle wraz z akronimem kierunku (ASC, DESC)

Nie

null

additionalDateRange

Dodatkowe zapytanie zawężające oparte o pole typu Date (data). Kryterium zapytani musi być zdefiniowane jako zakres czyli "od do". 

Nie

"mrc_createDate:[946681200000 TO 1564608394143]"

page

Definicja strony pobieranego wyniku. 

Tak

{
  size: 10,
  number: 1
}

resultTypeName

Nazwa typu jaki ma reprezentować wynik grupowania. 

Typ (definicja typu sprawy) o podanej nazwie musi być zdefiniowany w bazie HgDB.

Nie

null

Odpowiedź usługi

Odpowiedź przyjmuje następujące parametry wyjściowe:

ParametrOpisPrzykład
errorCodeKod błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Informacje na temat danych zawartych w wartości tego parametru można uzyskać czytając artykuł Co oznacza wartość pola "errorCode"?null
errorMessageKomunikat błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null .null
queryStatsStatystyki wykonania zapytania w postaci obiektu QueryStats.
{
	"allExecTime": 1339,
	"mainPrepareTime": 11,
	"collValidationTime": 1,
	"mainCollExecTime": 0,
	"mainCollExecCount": 47281,
	"subCollExecTime": 4,
	"subCollExecCount": 8,
	"subExecLeve1Time": 1337,
	"subExecLeve2Time": 0,
	"subExecLeve3Time": 0,
	"subExecLeve4Time": 0,
	"initResultSetTime": 6,
	"resultSetSize": 3
}
dto

Wynik działania usługi w postaci obiektu PagedResult. Elementem listy jest znaleziony obiekt sprawy składowany w bazie HgDB.

Pełen przykład prezentacji obiektu odpowiedzi w postaci JSON.
{
   "errorCode": "",
   "errorMessage": "",
   "queryStats":    {
      "allExecTime": 39,
      "mainPrepareTime": 44,
      "collValidationTime": 0,
      "mainCollExecTime": 0,
      "mainCollExecCount": 2,
      "subCollExecTime": 0,
      "subCollExecCount": 0,
      "subExecLeve1Time": 39,
      "subExecLeve2Time": 0,
      "subExecLeve3Time": 0,
      "subExecLeve4Time": 0,
      "initResultSetTime": 0,
      "resultSetSize": 2
   },
   "dto":    {
      "resultSize": 2,
      "result":       [
                  {
            "mrcCaseHeader":             {
               "caseId": 808300,
               "groupId": 301039,
               "typeId": 5014,
               "typeCode": "Month",
               "status": "A",
               "previousVersionId": 808298,
               "rootVersionId": 808298,
               "priceValue": 0,
               "storeCount": 1,
               "storeId": 2507,
               "createDate": "21-01-2019 18:51:05 +01:00",
               "createdBy": "slawas",
               "lastModifyDate": "28-04-2021 12:47:21 +02:00",
               "lastModifiedBy": "slawas",
               "modifyComment": "SOAP request",
               "createdByRoleName": "mrc-user",
               "lastModifiedByRoleName": "CKBPM-Team",
               "className": "Month",
               "objectID": "?.Month",
               "rootVersionContextID": "?",
               "version": "1015949",
               "dirty": false,
               "pkPropertyName": "id"
            },
            "id": 2018.04,
            "displayName": "kwiecień'2018",
            "revenue": 127564.34,
            "costs": 155344.34,
            "vat": 73432.23
         },
                  {
            "mrcCaseHeader":             {
               "caseId": 808289,
               "groupId": 301037,
               "typeId": 5012,
               "typeCode": "Quarter",
               "status": "A",
               "rootVersionId": 808289,
               "priceValue": 0,
               "storeCount": 1,
               "storeId": 2507,
               "createDate": "21-01-2019 15:05:54 +01:00",
               "createdBy": "slawas",
               "lastModifyDate": "21-01-2019 15:05:54 +01:00",
               "lastModifiedBy": "slawas",
               "modifyComment": "SOAP request",
               "createdByRoleName": "CKBPM-Team",
               "lastModifiedByRoleName": "CKBPM-Team",
               "className": "Quarter",
               "objectID": "?.Quarter",
               "rootVersionContextID": "?",
               "version": "50917",
               "dirty": false,
               "pkPropertyName": "id"
            },
            "status": "Closed",
            "id": "2018.Q1",
            "name": "Kwartał 1'2018",
            "months":             [
                              {
                  "mrcCaseHeader":                   {
                     "caseId": 808792,
                     "groupId": 301037,
                     "typeId": 5014,
                     "typeCode": "Month",
                     "status": "A",
                     "previousVersionId": 808292,
                     "rootVersionId": 808292,
                     "priceValue": 0,
                     "storeCount": 1,
                     "storeId": 2507,
                     "createDate": "23-01-2019 08:55:57 +01:00",
                     "createdBy": "slawas",
                     "lastModifyDate": "23-01-2019 08:55:57 +01:00",
                     "lastModifiedBy": "slawas",
                     "modifyComment": "SOAP request",
                     "createdByRoleName": "CKBPM-Team",
                     "lastModifiedByRoleName": "CKBPM-Team",
                     "subCaseReferenceId": 3712,
                     "className": "Month",
                     "objectID": "?.Month",
                     "rootVersionContextID": "?",
                     "version": "51411",
                     "dirty": false,
                     "pkPropertyName": "id"
                  },
                  "id": 2018.03,
                  "displayName": "marzec'2018",
                  "revenue": 120564.34,
                  "costs": 120344.34,
                  "vat": 23432.23
               },
                              {
                  "mrcCaseHeader":                   {
                     "caseId": 808795,
                     "groupId": 301037,
                     "typeId": 5014,
                     "typeCode": "Month",
                     "status": "A",
                     "previousVersionId": 808290,
                     "rootVersionId": 808290,
                     "priceValue": 0,
                     "storeCount": 1,
                     "storeId": 2507,
                     "createDate": "23-01-2019 08:55:57 +01:00",
                     "createdBy": "slawas",
                     "lastModifyDate": "23-01-2019 08:55:57 +01:00",
                     "lastModifiedBy": "slawas",
                     "modifyComment": "SOAP request",
                     "createdByRoleName": "CKBPM-Team",
                     "lastModifiedByRoleName": "CKBPM-Team",
                     "subCaseReferenceId": 3710,
                     "className": "Month",
                     "objectID": "?.Month",
                     "rootVersionContextID": "?",
                     "version": "51414",
                     "dirty": false,
                     "pkPropertyName": "id"
                  },
                  "id": 2018.01,
                  "displayName": "styczeń'2018",
                  "revenue": 124564.34,
                  "costs": 122344.34,
                  "vat": 23432.23
               },
                              {
                  "mrcCaseHeader":                   {
                     "caseId": 808796,
                     "groupId": 301037,
                     "typeId": 5014,
                     "typeCode": "Month",
                     "status": "A",
                     "previousVersionId": 808291,
                     "rootVersionId": 808291,
                     "priceValue": 0,
                     "storeCount": 1,
                     "storeId": 2507,
                     "createDate": "23-01-2019 08:55:57 +01:00",
                     "createdBy": "slawas",
                     "lastModifyDate": "23-01-2019 08:55:57 +01:00",
                     "lastModifiedBy": "slawas",
                     "modifyComment": "SOAP request",
                     "createdByRoleName": "CKBPM-Team",
                     "lastModifiedByRoleName": "CKBPM-Team",
                     "subCaseReferenceId": 3711,
                     "className": "Month",
                     "objectID": "?.Month",
                     "rootVersionContextID": "?",
                     "version": "51415",
                     "dirty": false,
                     "pkPropertyName": "id"
                  },
                  "id": 2018.02,
                  "displayName": "luty'2018",
                  "revenue": 134564.34,
                  "costs": 132344.34,
                  "vat": 53432.23
               }
            ]
         }
      ],
      "message": "ALL",
      "executionTime": 361,
      "currentPageInfo":       {
         "size": 60,
         "number": 1
      },
      "firstPageInfo":       {
         "size": 60,
         "number": 1
      },
      "previousPageInfo": {},
      "nextPageInfo": {},
      "lastPageInfo":       {
         "size": 60,
         "number": 1
      },
      "allPages": [      {
         "size": 60,
         "number": 1
      }],
      "pagingParams":       {
         "offset": 0,
         "cursorOfPage": 0,
         "maxPageSize": 60,
         "maxCount": 10000,
         "pageSize": 60,
         "page":          {
            "size": 60,
            "number": 1
         },
         "valid": "true",
         "isReadOnly": "false"
      }
   }
}

explainPlanGroupByQuery(POST)


explainPlanSearchByQuery(POST)