Folks.search


Метод позволяет найти всех контрагентов, удовлетворяющих заданным критериям.

Описание

Входные параметры
Имя параметраТипОбязательный?Описание
querystringдаКритерии поиска
include/partyInfo[]Тип информации о контрагентенетДополнительная информация о контрагенте
Результирующие данные
Имя параметраТипОписание
folkWPartyИнформация по контрагенту (если явно не заданы параметр 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"
        }
      ]
    }
  ]
}