Формулировка проблемы: сейчас при
использовании 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 один или несколько из
параметров не соответствует ни одному из возможных значений"
}