Формулировка проблемы: сейчас при
использовании API метода asforms/search/advanced
нет возможности задать статус записи реестра, чтобы производить
поиск по записям с определенным статусом.
Связанная задача: API42
Решение: необходимо доработать
API rest/api/asforms/search/advanced
, добавив в
его входные параметры массив
registryRecordStatus
, который может состоять из
строк следующего вида:
STATE_SUCCESSFUL
- поиск производится по
записям реестра со статусом "Активная";
STATE_NOT_FINISHED
- поиск производится по
записям реестра со статусом "В процессе";
STATE_UNSUCCESSFUL
- поиск производится по
записям реестра со статусом "Неуспешная";
NO_ROUTE
- поиск производится по записям
реестра со статусом "Подготовка";
Если данный массив не будет задан в запросе, то поиск будет производиться по всем записям реестра с вышеуказанными статусами (т.е. все записи реестра), и массив по умолчанию будет следующего вида:
registryRecordStatus:["STATE_SUCCESSFUL", "STATE_NOT_FINISHED", "STATE_UNSUCCESSFUL", "NO_ROUTE"]
Данный входной параметр используется только при условии
searchInRegistry=true
, т.е. когда поиск
производится по записям реестра. При условии
searchInRegistry=false
данный параметр никак не
влияет на результат поиска.
Тип запроса не изменяется.
В выходные параметры необходимо добавить следующий параметр:
registryRecordStatus
- статус записи реестра.
Возвращает одно из значений:
STATE_SUCCESSFUL
- статус записи
"Активная";
STATE_NOT_FINISHED
- статус записи
"В процессе";
STATE_UNSUCCESSFUL
- статус записи
"Неуспешная";
NO_ROUTE
- статус записи
"Подготовка";
Данный выходной параметр используется только при условии
searchInRegistry=true
, т.е когда поиск
производится по записям реестра. При условии
searchInRegistry=false
данный параметр не
возвращается.
Пример запроса:
{ "query": "(field=? AND value LIKE ?) OR (field=? AND value=?)", "parameters": [ "surname", "Ivanov%", "surname", "Petrov_" ], "startRecord": 0, "recordsCount": 50, "showDeleted": "true", "searchInRegistry": "true", "registryRecordStatus": ["STATE_SUCCESSFUL", "STATE_NOT_FINISHED", "NO_ROUTE"] }
Пример возвращаемого ответа при searchInRegistry
равен true
:
[ { "dataUUID":"08c164b0-e775-11e5-835c-525400bb7fc6", "documentID":"37c1fa90-eb62-11e5-835c-525400bb7fc6", "registryRecordStatus":"STATE_SUCCESSFUL" }, { "dataUUID":"41fd8240-b822-11e5-8630-525400bb7fc6", "documentID":"7cd33a10-dedb-11e5-8c91-525400bb7fc6", "registryRecordStatus":"STATE_NOT_FINISHED" }, { "dataUUID":"fd52s240-b822-11e5-8630-525400bb7fc6", "documentID":"a8ae8a30-c573-11e5-9020-525400bb7fc6", "registryRecordStatus":"STATE_SUCCESSFUL" }, { "dataUUID":"8cab17d0-e685-11e5-835c-525400bb7fc6", "documentID":"bf2e9ff0-f7c5-11e5-835c-525400bb7fc6", "registryRecordStatus":"NO_ROUTE" } ]
Альтернативные потоки событий
Добавить к существующим альтернативным потокам следующий поток:
Альтернативный поток №1. В массиве
registryRecordStatus
один или несколько из
параметров не соответствует ни одному из возможных значений. Сервер
возвращает ошибку HTTP 400 с сообщением:
{ "errorCode": "13", "errorMessage": "В массиве registryRecordStatus один или несколько из параметров не соответствует ни одному из возможных значений" }