Folks.search

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" } ] } ] }