Пошук документів (з фільтрацією), вибір списку документів

Для роботи з цим методом користувач повинен бути авторизованим .

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

Метод запиту

HTTP POST

Content-Type

application/json (тіло HTTP запиту / відповіді в json форматі)

URL запиту

https://edo-v2.edi-n.com/api/eds/docs/search?gln=9864065702429

Параметри, що передаються в URL (разом з адресою методу)

У рядку заголовка (Header) «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“

Специфікація для розшифровки ключів curl запиту: https://curl.haxx.se/docs/manpage.html


JSON-параметри в тілі HTTP запиту/відповіді


REQUEST


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

Параметр

Тип

Формат

Опис

Об’єкт StorageQuery

extraParams

List<ExtraQueryParameters>

масив об’єктів;

multiExtraParams

List<ExtraQueryParameters>

масив об’єктів;

type

M

List<XDocType>

масив об’єктів; список типів документів: 0 - всі типи, 1/2/3 … і більше - конкретний тип документа

statuses

M

List<Integer>

масив; список статусів (станів) документів, за якими буде відбуватися відбір: 0 - все 1 - open 2 - sent 3 - delivered 4 - inbox 5 - read 6 - error 7 - deleted

tags

List<Long>

масив; тег

exchangeStatus

O

List<Integer>

масив; статус документообігу

docs

List<Long>

масив; документи

direction

M

Direction

об’єкт; напрямок документообігу; вказуються відправник, отримувач і зв’язок між ними в умовах відбору документів

limit

O

Limitation

объект; фільтр відбору (налаштування виводу даних)

number

O

String

номер документа

family

O

int

сімейство (EDI / UZD); можливі значення: 1 - edi

partnerId

Long

id роздрібної мережі

chainHash

String

хеш-значення, отримане в результаті обробки ланцюжка

docHash

String

хеш-значення, отримане в результаті обробки документа

docDate

O

DateTimeRange

об’єкт; дата зазначена в документі (в форматі UNIX-timestamp) з / по

docCreate

O

DateTimeRange

об’єкт; дата створення документа (у форматі UNIX-timestamp) з / по

docRead

O

DateTimeRange

об’єкт; дата прочитання документа (у форматі UNIX-timestamp) з / по

docChanged

O

DateTimeRange

об’єкт; дата останньої зміни документа (у форматі UNIX-timestamp) з / по

archive

Boolean

відмітка наявності архівної ознаки документа

important

boolean

відмітка важливий документ

visible

boolean

відмітка видимості

loadBody

boolean

відмітка наявності тіла документа

loadComments

boolean

відмітка наявності коментарів до документа

loadStatuses

boolean

відмітка наявності статусів документа

loadTags

boolean

відмітка наявності тегів документа

loadChain

boolean

відмітка наявності ланцюжка документів

Таблиця 3 - Опис параметрів об’єкта ExtraQueryParameters

Параметр

Тип

Формат

Опис

Об’єкт ExtraQueryParameters

operator

enum (AND, OR)

type

M

enum (EQUALS, EQUALS_UUID, EQUALS_MD5, LIKE, MORE, MORE_EQ, LESS, LESS_EQ, IN)

fieldName

String

найменування параметру

value

String

id параметра

Таблиця 4 - Опис параметрів об’єкта Direction

Параметр

Тип

Формат

Опис

Об’єкт Direction

type

enum (EQ, OR, IN)

тип вибірки; можливі значення: » EQ » / » OR » / » IN » * EQ - відбираються тільки документи в яких збігаються зазначені і sender, і receiver; * OR - відбираються документи в яких збігаються АБО sender, АБО receiver; * IN - відбираються документи в яких sender або receiver один з тих, які вказані в масивах sender і receiver

sender

M/O

List<String>

масив; відправники; GLN відправників - обов’язковий, але може бути порожнім якщо зазначений масив GLN одержувачів (receiver)

receiver

M/O

List<String>

масив; одержувачі; GLN одержувачів - обов’язковий, але може бути порожнім якщо зазначений масив GLN відправників (sender)

Таблиця 5 - Опис параметрів об’єкта Limitation

Параметр

Тип

Формат

Опис

Об’єкт Limitation

offset

O

int

зміщення першого елемента списку щодо верхньої межі вибірки (за замовчуванням 0)

count

O

int

ліміт вибірки (кількість)

Таблиця 6 - Опис параметрів об’єкта DateTimeRange

Параметр

Тип

Формат

Опис

Об’єкт DateTimeRange

startTimestamp

long

початок часового діапазону

finishTimestamp

long

закінчення часового діапазону

Таблиця 7 - Опис параметрів об’єкта XDocType

Параметр

Тип

Формат

Опис

Об’єкт XDocType

опис_параметрів

type

int

id типу документа/квитанції

title

String

назва документа/квитанции

description

String

опис документа/квитанції (найменування кирилицею)

Таблиця 8 - Опис fieldName параметрів (объект ExtraQueryParameters)

Таблиця 9 - Опис DocType параметрів (объект XDocType)

Тип

Назва

Опис (найменування кирилицею)

0

all

всі

1

invoice

Рахунок

2

orders

Замовлення

3

recadv

Повідомлення про прийом

4

desadv

Повідомлення про відвантаження

5

ordrsp

Підтвердження замовлення

6

pricat

Прайс-лист

7

comdis

Комерційна дискусія

9

act

Акт виконаних робіт

10

declar

Податкова накладна

11

insdes

Інструкція з доставки

12

desscc

Повідомлення про відвантаження для розподільного центру

13

slsrpt

Звіт про продажі

14

invrpt

Звіт про інвентаризацію

15

coacsu

Акт звірки взаєморозрахунків

16

actset

Акт взаємозаліку

17

iftmin

Інструкція про транспортування

18

retann

Повідомлення про повернення

19

iftmbf

Замовлення транспортування

20

partin

Інформація про контрагента для постачальника

21

mscons

Звіт про надані послуги

25

retins

Інструкція з повернення

28

comdoc

Комерційний документ

29

declarj12

Коригування до податкової накладної

30

condra

Не структурований документ

32

reestr

Реєстр

40

prodlist

Електронна специфікація

41

agreem

Товарне узгодження

42

iftmbc

Підтвердження замовлення транспортування

59

documentinvoice

Товарна накладна

67

doccorinvoice

Коригування до товарної накладної

98

quotes

Додаток до Повідомлення про відвантаження

109

ettn

Електронна товарно-транспортна накладна (е-ТТН)

111

transhipment

Акт перевантаження товарів

117

acceptance

Акт приймання-передавання

113

booking

Замовлення транспортування

114

bookingconfirmation

Підтвердження транспортування

112

completion

Акт виконаних робіт

118

docinvoiceact

Акт наданих послуг (Метро)

119

discrepancy

Акт розбіжностей

120

contrl

Звіт про відвантаження

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


RESPONSE


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

Параметр

Формат

Опис

items

List<XDoc>

масив об’єктів; перелік документів

totalCount

int

кількість документів

Таблиця 11 - Опис параметрів об’єкта XDocStatus

Параметр

Формат

Опис

Об’єкт XDocStatus

детальніше

state

int

id статусу

title

String

статус

Таблиця 12 - Опис параметрів об’єкта XDoc

Параметр

Формат

Опис

Об’єкт XDoc

body

XDocBodyForms

об’єкт; тіла документів

attachments

List<XDocAttachment>

масив об’єктів; вкладення (може не використовуватися)

comments

XDocCommentsList

об’єкт (в якому масив об’єктів); список коментарів

doc_id

long

id документа

doc_uuid

UUID

унікальний ідентифікатор документа/квитанції

uuidSender

String

унікальний ідентифікатор відправника

uuidReceiver

String

унікальний ідентифікатор одержувача

docNumber

String

номер документа

dateCreated

long

дата створення документа (unix timestamp)

dateChanged

long

дата останньої зміни документа (unix timestamp)

dateRead

long

дата прочитання документа (unix timestamp)

docDate

long

дата документа, зазначена в документі

chain_id

long

id ланцюжка документів

chain_uuid

UUID

унікальний ідентифікатор ланцюжка документів

family

int

сімейство (EDI / UZD)

hash

String

хеш-значення, отримане в результаті обробки

type

XDocType

об’єкт; тип документа

status

XDocStatus

об’єкт; статус пари документів у відправника і одержувача

exchange_status

String

сабстатус документа

is_archive

boolean

відмітка; Архівний документ чи ні

signInfo

XDocSignInfo

об’єкт; дані про підписи

chain

XChain

объект; дані пов’язаних ланцюжків

extraFields

Map<String, String>

масив об’єктів; набір індексів (аналог індексних таблиць)

tags

List<XTag>

масив об’єктів; прикріплені теги

statuses

List<XStatus>

масив об’єктів; статуси обробки відправлених документів

multiExtraFields

Map<String, List<String>>

масив об’єктів; мультиіндекс. Приклад: {„key1“: [„val1“, „val2“], „key2“: [„val1“, „val2“]}. Використовується, наприклад для обробки передаваємого рядка => розбивка рядка за умовою => індексування кожного шматка

Таблиця 13 - Опис параметрів об’єкта XTag

Параметр

Формат

Опис

Об’єкт XTag

id

long

id тега

name

String

зміст тега

shortName

String

коротка назва тега

Таблиця 14 - Опис параметрів об’єкта XStatus

Параметр

Формат

Опис

Об’єкт XStatus

docId

long

id документа/квитанції

date

long

дата статусу; формат unix timestamp

type

int

тип статусу

text

String

зміст статусу

Таблиця 15 - Опис параметрів об’єкта XDocSignInfo

Параметр

Формат

Опис

Об’єкт XDocSignInfo

doc_id

long

id документа/квитанції

date

long

дата підписання; формат unix timestamp

count

short

кількість підписів

info

String

додаткова інформація

hash

String

хеш-значення, отримане в результаті обробки

Таблиця 16 - Опис параметрів об’єкта XDocCommentsList

Параметр

Формат

Опис

Об’єкт XDocCommentsList

XDocCommentsList

List<XDocComment>

масив об’єктів; коментарі до документа

Таблиця 17 - Опис параметрів об’єкта XDocComment

Параметр

Формат

Опис

Об’єкт XDocComment

id

long

id коментаря

docUUID

UUID

унікальний ідентифікатор документа

createTimestamp

long

дата створення коментаря у форматі timestamp

authorLogin

String

автор коментаря

comment

String

зміст коментаря

Таблиця 18 - Опис параметрів об’єкта XDocAttachment

Параметр

Формат

Опис

Об’єкт XDocAttachment

id

long

id вкладення

docUUID

UUID

унікальний ідентифікатор документа

fileName

String

найменування файлу

createDate

long

дата створення вкладення; формат unix timestamp

type

String

тип вкладення

base64content

String

зміст вкладення в BASE64

content

byte[]

зміст вкладення в цілочисельному вигляді

Таблиця 19 - Опис параметрів об’єкта XDocBodyForms

Параметр

Формат

Опис

Об’єкт XDocBodyForms

forms

HashMap<String, XDocBody>

масив об’єктів; тіло документа

Таблиця 20 - Опис параметрів об’єкта XDocBody

Параметр

Формат

Опис

Об’єкт XDocBody

type

XDocBodyType

об’єкт; тип тіла документа: CONTENT = 1 - зміст в байтах; JSON = 2 - зміст в json форматі; SIGN = 3 - зміст підпису; STAMP = 4; CRYPTED = 5 - зміст в зашифрованому вигляді; UZDRESPONSE = 6

base64content

String

зміст тіла документа в BASE64

Таблиця 21 - Опис параметрів об’єкта XDocBodyType

Параметр

Формат

Опис

Об’єкт XDocBodyType

id

int

id типу тіла документа

name

String

назва типу тіла документа

Таблиця 22 - Опис DocStatus параметрів (об’єкт XDocStatus)

id статусу

статус

0

ALL - будь-який статус

1

OPEN - чернетка (відправник)

2

SENT - відправлений (відправник)

3

DELIVERED - прочитаний (відправник)

4

INBOX - доставлений / вхідний (одержувач)

5

READ - прочитаний (одержувач)

6

ERROR - помилка

7

DELETED - видалений


Приклади (json)


Отримати всі документи окрім чернеток(масив statuses не містить «1»), в яких отримувачем є GLN 9864232304302

{
    "direction": {
        "sender": [],
        "receiver": ["9864232304302"],
        "type": "EQ"
    },
    "exchangeStatus": [],
    "family": "1",
    "statuses": ["2","3","4","5","6","7"],
    "type": [
        {
            "type": "0"
        }
    ]
}

Отримати всі документи окрім чернеток(масив statuses не містить «1»), в яких відправником є GLN 9864232304302

{
    "direction": {
        "sender": ["9864232304302"],
        "receiver": [],
        "type": "EQ"
    },
    "exchangeStatus": [],
    "family": "1",
    "statuses": ["2","3","4","5","6","7"],
    "type": [
        {
            "type": "0"
        }
    ]
}

Отримати всі вхідні документи (GLN отримувача 9864232304302)

{
    "direction": {
        "sender": [],
        "receiver": ["9864232304302"],
        "type": "EQ"
    },
    "exchangeStatus": [],
    "family": "1",
    "statuses": ["4","5","6"],
    "type": [
        {
            "type": "0"
        }
    ]
}

Отримати всі відправлені документи (GLN відправника 9864232304302)

{
    "direction": {
        "sender": ["9864232304302"],
        "receiver": [],
        "type": "EQ"
    },
    "exchangeStatus": [],
    "family": "1",
    "statuses": ["2","3","6"],
    "type": [
        {
            "type": "0"
        }
    ]
}

Отримати документи з номером рівним значенню «1001» (пошук серед усіх документів окрім чернеток), в яких отримувачем є GLN 9864232304302

{
    "direction": {
        "sender": [],
        "receiver": ["9864232304302"],
        "type": "EQ"
    },
    "exchangeStatus": [],
    "family": "1",
    "statuses": ["2","3","4","5","6","7"],
    "number": "1001",
    "type": [
        {
            "type": "0"
        }
    ]
}

Отримати всі документи окрім чернеток для GLN відправника 9864232304302, що створені в травні 2019 (startTimestamp і finishTimestamp дати в форматі UNIX-timestamp)

{
    "direction": {
        "sender": ["9864232304302"],
        "receiver": [],
        "type": "EQ"
    },
    "exchangeStatus": [],
    "family": "1",
    "statuses": ["2","3","4","5","6","7"],
    "type": [
        {
            "type": "0"
        }
    ],
    "docDate": {
        "startTimestamp": "1556668800",
        "finishTimestamp": "1559347199"
    }
}

Приклад тіла відповіді (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
}