5. Поиск документов (с фильтрацией),выбор списка документов

Для работы с этим методом пользователь должен быть авторизированным .

С помощью метода api/eds/docs/search можно быстро совершить поиск по заданым критериям, например, получить список документов с определенным статусом, или за промежуток времени.

У Налаштування - Налаштування комплектів документів, при додаванні звязку пакета з типами документів можливо налаштувати правила роботи з документом.

Метод запроса HTTP POST
Content-Type application/json (тело запроса/ответа в json формате в теле HTTP запроса
URL запроса https://edo-v2.edi-n.com/api/eds/docs/search?gln=9864065702429
Параметры, передаваемые в URL (вместе с адресом метода)

В строке заголовка (Header) «Set-Cookie» обязательно передается SID - токен полученный при авторизации

Обязательные url-параметры:

gln - строка(13); номер GLN организации, которая связана с авторизированным пользователем платформы EDIN 2.0 на уровне аккаунта

{«…»} - тело http запроса - json с критериями поиска (Таблица_2)

Внимание: В запросе в теле json присутствуют обязательные (должны передаваться) и опциональные параметры (колонка Тип).

Подсказка

Также возможно выполнить запрос в виде curl-строки:

curl -X POST „https://edo-v2.edi-n.com/api/eds/docs/search?gln=9864065702429“ -d {json с критериями поиска(Таблица_2)} -b „SID=458a0d38-5b56-4b8e-8998-009a1edd31eb“


5.1. JSON-параметры в теле HTTP запроса/ответа

Таблица 2 - Описание json-параметров (фильтр) запроса метода API

  Параметр Тип Формат Описание
1 direction M direction {receiver[], sender[], type} указываются отправитель, получатель и связь между ними в критериях отбора документов
2 receiver M receiver [«…»] массив GLN получателей - обязательный, но может быть пустым если указан массив GLN отправителей (sender)
3 sender M sender [«…»] массив GLN отправителей, может быть пустым (если указан массив GLN получателей)
4 type M «EQ» / «OR» / «IN» тип выборки; возможные значения: EQ - отбираются только документы в которых совпадают указанные И sender, И receiver OR - отбираются документы в которых совпадают ИЛИ sender, ИЛИ receiver IN - отбираются документы в которых sender или receiver один из тех, которые указаны в массивах sender и receiver
5 statuses M statuses [ ] список статусов (состояний) документов, по которым будет происходить отбор: 0 - все 1 - open 2 - sent 3 - delivered 4 - inbox 5 - read 6 - error 7 - deleted
6 type M type [ { } ] список типов документов: 0 - все типы 1 / 2 / 3 … и более - конкретный тип документа из
7 limit O limit {offset, count} фильтр отбора
8 offset O int смещение относительно верхней границы выборки
9 count O int лимит выборки
10 family O 1 / 2 / 3 / 4 / 5 возможные значения (может отсутствовать): 1 - edi 2 - uzd 3 - reports 4 - certificats 5 - factoring
11 number O String номер документа, можно не указывать в критериях отбора
12 docDate O docDate {startTimestamp, finishTimestamp} дата документа (в формате UNIX-timestamp) с / по, можно не указывать в критериях отбора
13 startTimestamp O String дата документа с
14 finishTimestamp O String дата документа по
15 docCreate O docCreate {startTimestamp, finishTimestamp} дата создания документа (в формате UNIX-timestamp) с / по, можно не указывать в критериях отбора
18 docRead O docRead {startTimestamp, finishTimestamp} дата прочтения документа (в формате UNIX-timestamp) с / по, можно не указывать в критериях отбора
21 docChanged O docChanged {startTimestamp, finishTimestamp} дата изменения документа (в формате UNIX-timestamp) с / по, можно не указывать в критериях отбора
24 exchangeStatus O int список состояний документооборота, может не указываться

*Тип* поля: M - mandatory (обязательное к заполнению), O - optional (опциональное)


Таблица 4 - Описание json-параметров, которые могут передаваться в ответ на метод API

НУЖНА ТАБЛИЦА !!!!!!!


5.2. Примеры

Пример тела запроса (json):

{
    "direction": {
        "receiver": [
            "9864065703464"
        ],
        "sender": [
            "9864065702429"
        ],
        "type": "IN"
    },
    "statuses": [
        0
    ],
    "type":[
        {
            "type" : 0
        }
    ],
    "limit":{
        "offset":"0",
        "count":"3"
    },
    "family":1,
    "number":"com222",
    "docDate":{
        "startTimestamp":"0",
        "finishTimestamp":"1505497243"
    },
    "docCreate":{
        "startTimestamp":"1505307243",
        "finishTimestamp":"1505497243"
    },
    "docRead":{
        "startTimestamp":"0",
        "finishTimestamp":"1505497243"
    },
    "docChanged":{
        "startTimestamp":"1505307243",
        "finishTimestamp":"1505497243"
    },
    "exchangeStatus":[]
}

Пример тела ответа (json):

{
    "items": [
        {
            "body": {
                "forms": {}
            },
            "attachments": [],
            "comments": [],
            "doc_id": 1017,
            "doc_uuid": "e18a05d5-983b-4ebc-95f3-c35eccc7d611",
            "uuidSender": "4820128010004",
            "uuidReceiver": "9864065702429",
            "docNumber": "8663c3f48bea4f96a281238e847b1639",
            "dateCreated": 1549961913,
            "dateChanged": 1549961913,
            "dateRead": 0,
            "docDate": 1547503200,
            "chain_id": 1006,
            "chain_uuid": "60e487d3-871f-4b3a-9254-1d3f0e7a032f",
            "family": 1,
            "hash": "30745386780343D0C2F4C65C7F06D60F",
            "type": {
                "type": 1,
                "title": "invoice",
                "description": "Счет"
            },
            "status": {
                "status": 4,
                "title": "inbox"
            },
            "exchange_status": "000000000000000000000000",
            "is_archive": false,
            "extraFields": {
                "order_date": "1551477600",
                "delivery_date": "1547503200",
                "ftpex_file_name": "highload_invoice_test.xml",
                "sender": "4820128010004",
                "buyer_uuid": "4820128010004",
                "doc_num": "8663c3f48bea4f96a281238e847b1639",
                "order_number": "747401",
                "doc_date": "1547503200",
                "recipient": "9864065702429",
                "ftpex_file_date": "1549961913",
                "supplier_uuid": "9864065702429",
                "delivery_place_uuid": "4820128019007"
            },
            "tags": [],
            "statuses": [],
            "multiExtraFields": {}
        }
    ],
    "totalCount": 0
}

сюда еще нужно добавить модуль проверки сессии и сервера

а тут щось