Przeskocz do opisu głównego

Usługi wyszukiwania - CaseSearch

Info

Usługa jest generowana na podstawie interfejsu ICaseSearchAction, który implementuje usługi SOAP.

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

Przykład: https://testcluster.hgdb.io/mercury-ws-app/restServices/CaseSearchRest.wadl.

Zbiór podstawowych metod wyszukiwania i agregacji. Poniżej znajduje się lista dostępnych metod wraz z ich opisami:

Metoda(Metoda HTTP)Opis
☑️echo(POST)Metoda testowa, do weryfikacji połączenia z serwerem usług MercuryDB 3.0 (HgDB). Zobacz artykuł Testowanie połączenia za pomocą Echo.
☑️groupByQuery(POST)Implementacja jest duplikatem metody agregującej dane o tej samej nazwie zawartej w usłudze CaseSearchExtRest, zobacz opis w artykule Rozszerzone usługi wyszukiwania i agregacji danych - CaseSearchExt.
☑️searchByQuery(POST)Implementacja jest prostszą wersją metody wyszukującej dane o tej samej nazwie, która zawarta jest w usłudze CaseSearchExtRest, zobacz opis w artykule Rozszerzone usługi wyszukiwania i agregacji danych - CaseSearchExt. Różnica polega na tym, że metoda nie posiada argumentu resultTypeName, wynik może być prezentowany tylko w formie as is.
✅️searchNarrativeByQuery(POST)Podstawowa metoda wyszukiwania spraw w oparciu o zapytanie do indeksu Lucene, jednakże wynik zostaje zwrócony jako lista obiektów CaseNarrative, który zawiera skrócone, podstawowe dane, pochodzące z nagłówka sprawy. W wyniku otrzymujemy jednolitą listę z danymi spraw. Wynik usługi można wykorzystać w prezentacji tabelarycznej.
☑️searchByQueryWithResultType(POST)Implementacja jest szczególnym rozwiązaniem metody o nazwie searchByQuery(POST). Metoda wyszukiwania spraw w oparciu o zapytanie do indeksu Lucene, jednakże zwrócony wynik zostaje skonwertowany do listy spraw jednego, zadeklarowanego w żądaniu wyszukiwania typu spraw. Mechanizm można np. wykorzystać do transformacji spraw z jednego do drugiego typu. Otrzymujemy jednolitą listę. Wynik usługi można wykorzystać w prezentacji tabelarycznej. Metoda jest duplikatem implemnetacji usługi CaseSearchExtRest o nazwie searchByQuery(POST) , zobacz opis w artykule Rozszerzone usługi wyszukiwania i agregacji danych - CaseSearchExt

searchNarrativeByQuery

Wyszukiwanie spraw w oparciu o zapytanie do indeksu Lucene, jednakże wynik zostaje zwrócony jako lista obiektów CaseNarrative.

Przypadek użycia

Metodę możemy wykorzystać do realizacji prezentacji wyniku wyszukiwania, w jednej tabeli, pomimo, ze zwracana lista zawiera dane spraw o różnych typach. Obiekt CaseNarrative zawiera wszystkie niezbędne dane opisujące sprawę, tak aby można było dorobić dociągnięcie jej szczegółów w celu pełnej jej prezentacji.

Parametry żądania metody

Poniżej znajdziemy opis parametrów wejściowych metody.

context

Nazwa parametrucontext
TypContext
Wymagany?Tak

Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST.

Przykład obiektu kontekstu
{
"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

Nazwa parametruquery
TypString
Wymagany?Tak

Zapytanie wyszukujące do indeksu Lucene. Zobacz rozdział Zapytania wyszukujące gdzie znajdziesz opis jak konstruować zapytania.

Przykład zapytania wyszukiwania po polu mrc_Case_id dla dwóch przedziałów jego wartości
"mrc_Case_id:[806000 TO 806525] mrc_Case_id:[706525 TO 709000]"

page

Nazwa parametrupage
TypMrcPage
Wymagany?Tak

Definicja obiektu strony wyniku, która ma być pobrana. Wskazuje, którą stronę wyniku wyszukiwania pobrać.

Przykład, pierwsza strona z 10 wynikami
{
"size": 10,
"number": 1
}

sortClause

Nazwa parametrusortClause
TypString
Wymagany?Nie

Klauzula sortowania wyniku wyszukiwania zdediniowana jako konkatenacja (złączenie) nazwy póla wraz z akronimem kierunku (ASC - rosnąco, DESC - malejąco).

Uwaga

Istnieje ograniczenie definiowania kierunku sortowania wynku do jednego pola.

Przykład sortowania rosnąceho po polu o nazwie grParticipantFullname
"grParticipantFullname ASC"

additionalDateRange

Nazwa parametruadditionalDateRange
TypString
Wymagany?Nie

Dodatkowe zapytanie zawężające oparte o pole typu Date (data). Kryterium zapytani musi być zdefiniowane jako zakres czyli "od do". Kryterium zapisane jako przedział liczb milisekund reprezentujących datę1.

Przykład kryterium ograniczenia wyników do spraw utworzonych w przedziale od 1999-12-31 do 2019-06-31 21:26:34.143
"mrc_createDate:[946681200000 TO 1564608394143]"

Przykład żądania metody

Przykład żądania metody w postaci JSON dla usługi REST
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "admin",
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"eager4omdBuilder": "true",
"trustedData": false,
"currentRole": "mrc-user",
"userRoles": ["mrc-user","mrc-useradmin"],
"sourceOfRequest": "USER_DEV.localhost",
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 1,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE"
},
"query": "mrc_Case_id:[806000 TO 806525] mrc_Case_id:[706525 TO 709000]",
"page": {
"size": 10,
"number": 1
},
"sortClause": "mrc_Case_id DESC",
"additionalDateRange": "mrc_createDate:[946681200000 TO 1564608394143]"
}

Parametr odpowiedzi metody

Poniżej znajdziemy opis parametrów wyjściowych metody (odpowiedzi na wysłane żądanie).

ParametrOpis
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"?.
errorMessageKomunikat błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Zobacz również artykuł Co oznacza wartość pola "errorCode"?
pagedResultStronicowana lista znalezionych elementów reprezentowanym przez obiekt typu PagedResult. W tym przypadku pojedyncze wiersze będą reprezentować obiekt typu CaseNarrative. Zobacz także artykuł PagedResult jako lista pobieranych danych

Obiekt CaseNarrative

Warstwy, w których użytyBusiness
RodzajObiekt biznesowy
Interfejs JavaSerializable
Implementacja Javapro.ibpm.mercury.business.data.api.CaseNarrative
Implementacja DTOpro.ibpm.mercury.business.data.api.CaseNarrative

Element wyniku wyszukiwania. Jego zadaniem jest przesłanie minimalne i jednocześnie wystarczająco dużej ilości danych jednoznacznie opisujących sprawę.

ParametrOpisTypWymagany?Dozwolone wartości
caseIdNazwa aplikacjiLongTak
rootVersionIdIdentyfikator głównej wersji sprawy, wartość grupująca wszystkie wersje sprawy.LongTak
typeCodeKod typu sprawy.StringTak
inventoryCodeWygenerowany/unikalny kod sprawy.StringNie
subjectTemat sprawy utworzony na podstawie formuły zdefiniowanej w obiekcie typu kodu. Zobacz opis pola subjectFormula encji TypeCode.StringNieLiczba całkowita z przedziału
statusStatus sprawy.StringTakLiczba całkowita z przedziału
Przykład obiektu w postaci JSON:
{
"caseId": 999998,
"rootVersionId": 2337904,
"typeCode": "TerytStreet",
"inventoryCode": null,
"subject": null,
"status": "A"
}

Footnotes

  1. Przykładowa strona pozwalająca na szybkie dekodowanie daty z/do liczby milisekund: https://currentmillis.com/