Usługi wyszukiwania - CaseSearch
Usługa jest generowana na podstawie interfejsu ICaseSearchAction, który implementuje usługi SOAP.
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
.
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 parametru | context |
Typ | Context |
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 parametru | query |
Typ | String |
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 parametru | page |
Typ | MrcPage |
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 parametru | sortClause |
Typ | String |
Wymagany? | Nie |
Klauzula sortowania wyniku wyszukiwania zdediniowana jako konkatenacja (złączenie) nazwy póla wraz z akronimem kierunku (ASC
- rosnąco, DESC
- malejąco).
Istnieje ograniczenie definiowania kierunku sortowania wynku do jednego pola.
Przykład sortowania rosnąceho po polu o nazwie grParticipantFullname
"grParticipantFullname ASC"
additionalDateRange
Nazwa parametru | additionalDateRange |
Typ | String |
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).
Parametr | Opis |
---|---|
errorCode | Kod 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"?. |
errorMessage | Komunikat błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Zobacz również artykuł Co oznacza wartość pola "errorCode"? |
pagedResult | Stronicowana 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żyty | Business |
Rodzaj | Obiekt biznesowy |
Interfejs Java | Serializable |
Implementacja Java | pro.ibpm.mercury.business.data.api.CaseNarrative |
Implementacja DTO | pro.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ę.
Parametr | Opis | Typ | Wymagany? | Dozwolone wartości |
---|---|---|---|---|
caseId | Nazwa aplikacji | Long | Tak | |
rootVersionId | Identyfikator głównej wersji sprawy, wartość grupująca wszystkie wersje sprawy. | Long | Tak | |
typeCode | Kod typu sprawy. | String | Tak | |
inventoryCode | Wygenerowany/unikalny kod sprawy. | String | Nie | |
subject | Temat sprawy utworzony na podstawie formuły zdefiniowanej w obiekcie typu kodu. Zobacz opis pola subjectFormula encji TypeCode . | String | Nie | Liczba całkowita z przedziału |
status | Status sprawy. | String | Tak | Liczba całkowita z przedziału |
{
"caseId": 999998,
"rootVersionId": 2337904,
"typeCode": "TerytStreet",
"inventoryCode": null,
"subject": null,
"status": "A"
}
Footnotes
-
Przykładowa strona pozwalająca na szybkie dekodowanie daty z/do liczby milisekund: https://currentmillis.com/ ↩