Folks.search
Описание
Входные параметры
Имя параметра | Тип | Обязательный? | Описание |
---|---|---|---|
query | string | да | Критерии поиска |
include/partyInfo[] | Тип информации о контрагенте | нет | Дополнительная информация о контрагенте |
Результирующие данные
Имя параметра | Тип | Описание |
---|---|---|
folk | WParty | Информация по контрагенту (если явно не заданы параметр include/partyInfo[] , то не содержит множественные атрибуты — девайсы) |
Особенности использования
Поиск осуществляется по тем же атрибутам контрагента, что и в интерфейсе (работает как простой, так и расширенный поиск). При этом в ответе по каждому контрагенту возвращаются только базовые поля, без множественных атрибутов.
Если по заданным критериям ничего не будет найдено, система вернет пустой ответ.
Дополнительная информация о контрагенте
Если задан параметр //include
, то система вернет только те данные контрагента, которые в нем перечислены.
Значения параметра //include/partyInfo | Описание |
---|---|
REQUISITE | Информация о реквизитах |
ATTRIBUTE | Информация об атрибутах |
Исключительные ситуации
Если по заданным критериям поиска найдено более 2000 контрагентов, то система вернет ошибку (см. пример 3 ниже).
Если длина критерия поиска превышает 1000 символов, то система вернет ошибку.
Примеры вызова PartyWS (SOAP)
Пример 1. Поиск пользователя без дополнительных параметров
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1"> <soapenv:Header/> <soapenv:Body> <search> <query>Иванов</query> </search> </soapenv:Body> </soapenv:Envelope>
Ответ:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1"> <soapenv:Header/> <soapenv:Body> <searchResponse> <folk id="1"> <field name="surname">Иванов</field> <field name="name"/> <field name="patronymic"/> <field name="preferredName"/> <field name="gender">UNKNOWN</field> <field name="birthDate"/> <field name="birthPlace"/> <field name="firstConfDate"/> <field name="company">ОАО Ромашка</field> <field name="position">Java Developer</field> <field name="jobStartDate"/> <field name="author"/> <field name="city"/> <field name="speaker">false</field> <field name="organizator">false</field> <field name="vipFlag">UNKNOWN</field> <field name="visitCount">0</field> <field name="averageRating">0.00</field> <field name="language"/> <field name="actualityDate"/> </folk> </searchResponse> </soapenv:Body> </soapenv:Envelope>
Пример 2. Поиск с атрибутами (INCLUDE = REQUISITE + ATTRIBUTE)
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1"> <soapenv:Header/> <soapenv:Body> <search> <query>Иванов</query> <include> <info>REQUISITE</info> <info>ATTRIBUTE</info> </include> </search> </soapenv:Body> </soapenv:Envelope>
Ответ (часть полей реквизитов опущена для краткости):
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1"> <soapenv:Header/> <soapenv:Body> <searchResponse> <folk id="1"> <field name="surname">Иванов</field> <field name="name"/> <field name="patronymic"/> <attribute id="1" type="DEVICE"> <field name="actualityDate"/> <field name="model">iPad</field> <field name="os">UNKNOWN</field> <field name="serialNumber">X234F</field> <field name="type">UNKNOWN</field> </attribute> </folk> </searchResponse> </soapenv:Body> </soapenv:Envelope>
Пример 3. Поиск только атрибутов пользователя (INCLUDE = ATTRIBUTE)
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1"> <soapenv:Header/> <soapenv:Body> <search> <query>Иванов</query> <include> <info>ATTRIBUTE</info> </include> </search> </soapenv:Body> </soapenv:Envelope>
Ответ (так как в блоке Include не указаны реквизиты, мы их вообще не возвращаем)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1"> <soapenv:Header/> <soapenv:Body> <searchResponse> <folk id="1"> <attribute id="1" type="DEVICE"> <field name="actualityDate"/> <field name="model">iPad</field> <field name="os">UNKNOWN</field> <field name="serialNumber">X234F</field> <field name="type">UNKNOWN</field> </attribute> </folk> </searchResponse> </soapenv:Body> </soapenv:Envelope>
Пример 4. Ничего не найдено (пустой результат поиска)
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1"> <soapenv:Header/> <soapenv:Body> <search> <query>Иванов</query> </search> </soapenv:Body> </soapenv:Envelope>
Ответ:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1"> <soapenv:Header/> <soapenv:Body> <searchResponse></searchResponse> </soapenv:Body> </soapenv:Envelope>
Пример 5. Найдено слишком много контрагентов
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1"> <soapenv:Header/> <soapenv:Body> <search> <query>Иванов</query> </search> </soapenv:Body> </soapenv:Envelope>
Ответ:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <soap:Fault> <faultcode>soap:Server</faultcode> <faultstring>Too many parties found (expected no more than 2000, got 3124)</faultstring> </soap:Fault> </soap:Body> </soap:Envelope>
Примеры вызова REST (JSON)
Пример 1. Контрагенты найдены
Запрос:
{ "query" : "Иванов" }
Ответ:
{ "folk": [ { "id": 1, "field": [ { "value": "Иванов", "name": "surname" }, { "value": null, "name": "name" }, { "value": null, "name": "patronymic" }, { "value": null, "name": "preferredName" }, { "value": "UNKNOWN", "name": "gender" }, { "value": null, "name": "birthDate" }, { "value": null, "name": "birthPlace" }, { "value": null, "name": "firstConfDate" }, { "value": "ОАО Ромашка", "name": "company" }, { "value": "Java Developer", "name": "position" }, { "value": null, "name": "jobStartDate" }, { "value": null, "name": "author" }, { "value": null, "name": "city" }, { "value": "false", "name": "speaker" }, { "value": "false", "name": "organizator" }, { "value": "UNKNOWN", "name": "vipFlag" }, { "value": "0", "name": "visitCount" }, { "value": "0.00", "name": "averageRating" }, { "value": null, "name": "language" }, { "value": null, "name": "actualityDate" } ], "attribute": [ { "id": 1, "field": [ { "value": "UNKNOWN", "name": "type" }, { "value": "UNKNOWN", "name": "os" }, { "value": "iPad", "name": "model" }, { "value": "X234F", "name": "serialNumber" }, { "value": null, "name": "author" }, { "value": null, "name": "actualityDate" } ], "type": "DEVICE" } ] }, { "id": 2, "field": [ { "value": "Иван Иванов", "name": "surname" }, { "value": null, "name": "name" }, { "value": null, "name": "patronymic" }, { "value": null, "name": "preferredName" }, { "value": "UNKNOWN", "name": "gender" }, { "value": null, "name": "birthDate" }, { "value": null, "name": "birthPlace" }, { "value": null, "name": "firstConfDate" }, { "value": "ОАО Ромашка", "name": "company" }, { "value": "Java Developer", "name": "position" }, { "value": null, "name": "jobStartDate" }, { "value": null, "name": "author" }, { "value": null, "name": "city" }, { "value": "false", "name": "speaker" }, { "value": "false", "name": "organizator" }, { "value": "UNKNOWN", "name": "vipFlag" }, { "value": "0", "name": "visitCount" }, { "value": "0.00", "name": "averageRating" }, { "value": null, "name": "language" }, { "value": null, "name": "actualityDate" } ] }, { "id": 3, "field": [ { "value": "Сидоров", "name": "surname" }, { "value": null, "name": "name" }, { "value": null, "name": "patronymic" }, { "value": null, "name": "preferredName" }, { "value": "UNKNOWN", "name": "gender" }, { "value": null, "name": "birthDate" }, { "value": null, "name": "birthPlace" }, { "value": null, "name": "firstConfDate" }, { "value": "ИП Иванов", "name": "company" }, { "value": "Консультант", "name": "position" }, { "value": null, "name": "jobStartDate" }, { "value": null, "name": "author" }, { "value": null, "name": "city" }, { "value": "false", "name": "speaker" }, { "value": "false", "name": "organizator" }, { "value": "UNKNOWN", "name": "vipFlag" }, { "value": "0", "name": "visitCount" }, { "value": "0.00", "name": "averageRating" }, { "value": null, "name": "language" }, { "value": null, "name": "actualityDate" } ] } ] }