Бібліотека користувача. Добірка матеріалів, інструкції, питання відповіді та навчання | covid-19

Багатосторонній обмін документами в API

Створення документа для обміну з 2 та більше контрагентами

Отримання структури шаблону документа

Використовується стандартний запит https://імꞌя_сервера: порт/ptn/getdocrk
У відповіді запиту додані наступні поля для отримання інформації про шаблон з ознакою багатостороннього:
Route: [
{
Edrpou: ім’я поля документу
Dept: ім’я поля документу
]
IsMultisided — ознака шаблону з багатостороннім обміном (true/false)
SidesCount — кількість сторін в шаблоні (список сторін в таблиці Route)
Приклад шаблону Charcode: TTN73, Володар шаблону: 73737373. Налаштування маршруту шаблона:

Приклад відповіді /ptn/getdocrk для тестового шаблона:
{
«Route»: [
{
«Edrpou»: «FIRM_EDRPOU»,
«Dept»: «FIRM_DEPT»
},
{
«Edrpou»: «SIDE_EDRPOU_K»,
«Dept»: «SIDE_DEPT_K»
},
{
«Edrpou»: «SIDE_EDRPOU_K2»,
«Dept»: ""
}
],
«IsMultisided»: true,
«SidesCount»: 3
}

Де кожний з елементів масиву «Route» – точка маршруту документа в суворому порядку:
Перший елемент – Відправник
Другий – Отримувач 1
Третій – Отримувач 2.
IsMultisided = true — ознака багатостороннього шаблону
SidesCount = 3 — кількість сторін


Створення XML документу на основі шаблону

Для створення XML документу використовується стандартний запит

https://імꞌя_сервера: порт/ptn/makexmldoc
В вхідні параметри документа додається необов'язковий параметр:
AutoFillRoute — заповнити маршрут з документа\використовувати переданий маршрут (true/false).
У випадку якщо параметр AutoFillRoute = true, маршрут документу заповнюється значеннями з полей шаблону.
У випадку якщо параметр AutoFillRoute = false, мартрут документу заповнюється зі списку. (примітка: передавати необхідно не в масиві таблиць, а складі)
Route: [
{ Edrpou: ,
Dept: ,
Inn: ,
Name }
]

Приклад заповнення таблиці маршруту для тестового шаблону Charcode: TTN73, Володар шаблону: 73737373
{
«AutoFillRoute»: false,
«Route»: [
{
«Edrpou»: «83838383»,
«Dept»: "",
«Inn»: «838383838383»,
«Name»: «ТОВ \»Тест 83\""
},
{
«Edrpou»: «73737373»,
«Dept»: "",
«Inn»: «737373737373»,
«Name»: «ТОВ \»Тест 73\""
},
{
«Edrpou»: «63636363»,
«Dept»: "",
«Inn»: «636363636363»,
«Name»: «ТОВ \»Тест 63\""
}
] }
В результаті в XML тіло документа додаються записи:


Де ROW LINE=«0» – відправник документа
ROW LINE=«1» – Отримувач 1
ROW LINE=«2» – Отримувач 2


Підписання документу

Без змін.


Відправка документу

Відправка виконується стандартним запитом https://імꞌя_сервера: порт/ptn/send
Для додавання обов'язкового поля ROUTEPOSITION=0 в транспортний заголовок, в запит необхідно додати параметр IsMultisided = true

Важливо! Значення параметрів RcvEdrpou, RcvDept, RcvName запиту ptn/send заповнювати даними Отримувача 1 з таблиці маршрутизації документа.


Отримання та розбір документа першим отримувачем на маршруті документа

Прийом вхідної кореспонденції.

В результаті метода ptn/rcv в розібране повідомлення додано два поля (будуть присутні у відповіді тільки якщо в заголовку документа є відповідна інформація):
IsMultisided — ознака багатостороннього документообігу,
RoutePosition — поточна позиція документа у маршруті (номер останньої сторони, яка узгодила документ).

Приклад отримання документа у Отримувача 1:
{
«SignCheckCode»: 0,
«SignCheckMessage»: "",
«ParseCode»: 0,
«DocType»: 1,
«MsgDate»: «2020-03-10T15:35:10»,
«FileName»: «5DD0F0A6-B108-489E-9B97-54BFD000B9DB.XML»,
«AnsFileName»: "",
«Edrpou»: «73737373»,
«Dept»: "",
«RcvEdrpou»: «83838383»,
«RcvDept»: "",
«MedocBody»: "...",
«MedocText»: "...",
«SignImages»: [… ],
«ImageBody»: {
«FileName»: «5DD0F0A6-B108-489E-9B97-54BFD000B9DB.PDF»,
«Body»: "..."
},
«RoutePosition»: 0,
«IsMultisided»: true
}

IsMultisided = true — означає, що документ з багатостороннім документообігом RoutePosition = 0 — документ узгоджений першою стороною (Відправником, DOCROUTE_POSITION=0)

Розбір XML документу

При розборі вхідного документу з base64 в XML ознакою багатостороннього обміну є наявність таблиці 9000 в документі.
Приклад результату метода ptn/parsexmldoc:
«9000»: [
{
«DOCROUTE_EDRPOU»: «73737373»,
«DOCROUTE_NAME»: «ТОВАРИСТВО З ОБМЕЖЕНОЮ ВІДПОВІДАЛЬНІСТЮ \»ТЕСТ 73\"",
«DOCROUTE_POSITION»: «0»
},
{
«DOCROUTE_EDRPOU»: «83838383»,
«DOCROUTE_INN»: «838383838383»,
«DOCROUTE_NAME»: «ТОВАРИСТВО З ОБМЕЖЕНОЮ ВІДПОВІДАЛЬНІСТЮ \»ТЕСТ 83\"",
«DOCROUTE_POSITION»: «1»
},
{
«DOCROUTE_EDRPOU»: «63636363»,
«DOCROUTE_INN»: «636363636363»,
«DOCROUTE_NAME»: «ТОВАРИСТВО З ОБМЕЖЕНОЮ ВІДПОВІДАЛЬНІСТЮ \»ТЕСТ 63\"",
«DOCROUTE_POSITION»: «2»
}

]


Узгодження та відхилення документа Отримувач 1

Створення квитанції відхилення\затвердження


Без змін.


Допідписання документа


Без змін.


Узгодження документа.

Складається з двох частин:
1. Відправка допідписанного документа і квитанції Відправнику
2. Відправка допідписанного документа і квитанції Отримувачу 2
В обох випадках використовується запит /ptn/sendans
Для запиту додані наступні необов'язкові параметри:
IsMultiChange — познака багатосторонньої відправки (true/false)
ToNextHop — відправка наступній стороні/відправка попередній стороні (true/false)
RoutePosition — позиція документа у маршруті

Відправка допідписанного документа і квитанції попереднім учасникам маршруту (Відправнику).
Заповнення нових полів
IsMultiChange = true
ToNextHop = false
RoutePosition= 1
Поля RcvEdrpou и RcvDept – Відправник документа

Очікуваний транспортний заголовок відповіді на СДО:
DOC_TYPE=33
FILENAME=CEF17593-0DFD-4581-A69E-CDB64B4106DE.XML
ANSWERID=8D0F5874A3C7402FA66C099853DE3D30.XML
EDRPOU=63636363
DEPT=1
RCV_EDRPOU=73737373
ANSW_STT=1
SUBJECT=Документ прийнято
SDO_EDRPOU=11111111
PRG_TYPE=MEDOC
PRG_VER=1200223

Відправка допідписанного документа і квитанції наступному учаснику маршруту (Отримувачу 2).

Заповнення нових полів
IsMultiChange = true
ToNextHop = true
RoutePosition= 1

Поля RcvEdrpou и RcvDept – Отримувач 2 документа.

Очікуваний транспортний заголовок відповіді на СДО:
DOC_TYPE=33
FILENAME=CEF17593-0DFD-4581-A69E-CDB64B4106DE.XML
ANSWERID=F2422022135A4BEBB519FA71ED996491.XML
EDRPOU=63636363
DEPT=1
RCV_EDRPOU=15041990
RCV_DEPT=2
ANSW_STT=2
SUBJECT=Документ прийнято
SDO_EDRPOU=11111111
PRG_TYPE=MEDOC
PRG_VER=1200223

Читайте наші матеріали у Тelegram: швидко, зручно і завжди у вашому телефоні!
08:42
187
RSS
Немає коментарів. Ваш буде першим!