Файловый обмен
Пакеты обмена
Обмен данными между текущим ПО и ПО уровня L4/L3 происходит через пакеты обмена в форматах "JSON" или "XML".
Основные пакеты обмена
Пакеты данных которые формируются на уровне ПО L4/L3 и L2.
- Задание на маркировку – Входящий пакет данных для ПО уровня L2 сформированный в ПО уровня L4/L3. Содержит данные о параметрах задания, продукции и списки кодов. В заголовке пакета данных присутствует «IN_MARK_».
- Ответ обработки входящего пакета данных – Исходящий пакет данных от ПО уровня L2 для ПО уровня L4/L3. Содержит данные о состоянии обработки входящего пакета «Задание на маркировку». В заголовке пакета данных присутствует «REPORT_IN_MARK_».
- Отчет линии – Исходящий пакет данных от ПО уровня L2 для ПО уровня L4/L3. Содержит данные о результатах маркировки в рамках «Задание на маркировку». В заголовке пакета данных присутствует «OUT_MARK_».
Задание на маркировку
В пакете данных обязательно должны присутствовать следующие ключи и их значения:
paramName
– содержит значение наименование параметра. Повторение значений наименований не допускается;paramValue
– содержит значение параметра задания. Значение передается в виде текста;type_value
– содержит значение типа данных значение параметра: «N» - числовой, «D» - дата и время, «V» - строковый, «B» - логический (true или false);- Версия пакета данных:
- Тип пакета данных. Для задания на маркировку значение «IN_MARK»:
- Номер GTIN продукции:
- Дата производства (в формате даты и времени «22.12.2022 0:00:00»):
- Номер задания в учетной системе L4/L3:
- Количество кодов в задании потребительских кодов DataMatrix (0-й уровень агрегации):
- Количество кодов в задании групповых кодов DataMatrix/ GS-128 (1-й уровень агрегации):
- Количество кодов в задании паллетных кодов GS-128 (2-й уровень агрегации):
- Количество потребительских кодов в агрегате первого уровня агрегации. Требуется для автоматического закрытия агрегата первого уровня:
- Количество кодов первого уровня агрегации в агрегате второго уровня агрегации. Требуется для автоматического закрытия агрегата второго уровня:
- Признак типографского задания: «Да»/ «Нет» / «Yes» / «No» / «TRUE» / «FALSE»:
При формировании своей версии пакета. Ключи могут иметь любые названия, но их значения должны быть указаны как указано в требовании выше.
Формат JSON. Версия: 1.0
Описание полей блока document
version
– версия пакета данных (По умолчанию «1.0»)document_type
– вид пакета данныхIN_MARK
Описание полей блока codes
codeLabel
– код маркировки без спецсимволов FNC и GS1. Код сопоставления с учетом в ПО уровня L4/L3;codeCaption
– код маркировки c идентификаторами применения (01), (21), (91-93). Параметр является обязательным. Если поле «codeLabel» не указан, то при загрузке он будет заполнен из текущего поля;formatPrint
– формат печати кода: «DataMatrix», «GS1-128» или «DataBar Expanded Stacked»;code_item_id
– порядковый номер кода в общем пакете блока «codes». Повторение номеров не допускается;agregation_level
– уровень кода агрегации: 0 – сериализация, 1 – первый уровень агрегации, 2 – второй уровень агрегации и т.д.
Описание полей блока parameters_product
category
– категория свойства продукции. Используется для формирования группы в дереве свойств конструктора этикеток;subcategory
– подкатегория свойства продукции. Используется для формирования подгруппы в дереве свойств конструктора этикеток;paramName
– наименование свойства. Повторение названий не допускается;paramValue
– значение свойства продукции;parameter_product_id
- порядковый номер свойства продукции в общем пакете блокаparameters_product
. Повторение номеров не допускается;
Блок является не обязательным. Требуется указывать параметры продукции, если они будут использоваться в конструкторе этикеток и дальнейшей печати.
Описание полей блока parameters_document
category
– категория параметра задания;subcategory
– подкатегория параметра задания;paramName
– наименование параметра. Повторение названий не допускается;paramValue
– значение параметра задания;type_value
– тип данных параметра: «N» - числовой, «D» - дата и время, «V» - строковый, «B» - логический (true или false);paramCaption
– Заголовок параметра задания для вывода в списке параметров в форме задания;paramDescription
– Описание параметра задания для вывода в списке параметров в форме задания;parameter_document_id
- порядковый номер параметра задания в общем пакете блока «parameters_document». Повторение номеров не допускается;
Блок является обязательным. Требуется указывать все параметры задания из примера.
Пример файла пакета данных
IN_MARK_ c8f3a3b8-81cb-11ed-9781-508492c79c54.json
- Вид пакета:
IN_MARK_
- Идентификатор пакета:
c8f3a3b8-81cb-11ed-9781-508492c79c54
- Формат пакета:
.json
{
"codes": [
{
"codeLabel": "0104620131970087215_X\"6+A93dGVz",
"codeCaption": "(01)04620131970087(21)5_X\"6+A(93)dGVz",
"formatPrint": "DataMatrix",
"code_item_id": 1,
"agregation_level": 0
},
{
"codeLabel": "0104620131970087215_VEs6o93dGVz",
"codeCaption": "(01)04620131970087(21)5_VEs6o(93)dGVz",
"formatPrint": "DataMatrix",
"code_item_id": 2,
"agregation_level": 0
},
{
"codeLabel": "177144632301544611",
"codeCaption": "(00)177144632301544611",
"formatPrint": "GS1-128",
"code_item_id": 1,
"agregation_level": 1
},
{
"codeLabel": "177144632301544635",
"codeCaption": "(00)177144632301544635",
"formatPrint": "GS1-128",
"code_item_id": 2,
"agregation_level": 1
},
{
"codeLabel": "177144632301544628",
"codeCaption": "(00)177144632301544628",
"formatPrint": "GS1-128",
"code_item_id": 3,
"agregation_level": 1
},
{
"codeLabel": "0104620131970087240277144632300000000000001544649",
"codeCaption": "(01)04620131970087(240)277144632300000000000001544649",
"formatPrint": "GS1-128",
"code_item_id": 4,
"agregation_level": 2
}
],
"document": {
"version": "1.0",
"document_type": "IN_MARK"
},
"parameters_product": [
{
"category": "Потребительские свойства",
"paramName": "Тип_продукта_Артрибут15281gr103",
"paramValue": "ПИВО",
"subcategory": "Тип продукта",
"parameter_product_id": 1
},
{
"category": "Идентификация товара",
"paramName": "Объём_продукции_в_единице_упаковки_Артрибут15784gr24",
"paramValue": "1.5",
"subcategory": "Объём продукции в единице упаковки (л)",
"parameter_product_id": 2
},
{
"category": "Потребительские свойства",
"paramName": "Объемная_доля_этилового_спирта_Артрибут31gr103",
"paramValue": "1.5",
"subcategory": "Объемная доля этилового спирта (% об.)",
"parameter_product_id": 3
},
{
"category": "Тип и материал упаковки",
"paramName": "Тип_упаковки_Артрибут2710gr14",
"paramValue": "БЛОК",
"subcategory": "Тип упаковки",
"parameter_product_id": 4
},
{
"category": "Идентификация товара",
"paramName": "Полное_наименование_товара_Артрибут2478gr24",
"paramValue": "ПИВО - ЭКОНД ТЕХНО",
"subcategory": "Полное наименование товара",
"parameter_product_id": 5
},
{
"category": "Тип и материал упаковки",
"paramName": "Материал_упаковки_Артрибут2713gr14",
"paramValue": "ГОФРОКАРТОН ДВУХСЛОЙНЫЙ",
"subcategory": "Материал упаковки",
"parameter_product_id": 6
},
{
"category": "Нормативно-сопроводительная документация",
"paramName": "Код_ОКПД2_Артрибут3961gr22",
"paramValue": "11.05.10.110",
"subcategory": "Код ОКПД2",
"parameter_product_id": 7
},
{
"category": "Идентификация товара",
"paramName": "Наименование_упаковки_товара_Артрибут4424gr24",
"paramValue": "ПИВО - ЭКОНД ТЕХНО 10X",
"subcategory": "Наименование упаковки товара",
"parameter_product_id": 8
},
{
"category": "Нормативно-сопроводительная документация",
"paramName": "Код_ТНВЭД_Артрибут13933gr22",
"paramValue": "2202910000",
"subcategory": "Код ТНВЭД",
"parameter_product_id": 9
},
{
"category": "Идентификация товара",
"paramName": "Товарный_знак_Артрибут2504gr24",
"paramValue": "1094702",
"subcategory": "Товарный знак",
"parameter_product_id": 10
},
{
"category": "Нормативно-сопроводительная документация",
"paramName": "Группа_ТНВЭД_Артрибут3959gr22",
"paramValue": "2202",
"subcategory": "Группа ТНВЭД",
"parameter_product_id": 11
},
{
"category": "Потребительские свойства",
"paramName": "Тип_фильтрации_Артрибут4542gr103",
"paramValue": "НЕФИЛЬТРОВАННОЕ",
"subcategory": "Тип фильтрации",
"parameter_product_id": 12
},
{
"category": "Потребительские свойства",
"paramName": "Является_ли_пастеризованным_Артрибут4478gr103",
"paramValue": "ДА",
"subcategory": "Является ли пастеризованным",
"parameter_product_id": 13
},
{
"category": "Состав",
"paramName": "Состав_Артрибут2483gr26",
"paramValue": "Солод",
"subcategory": "Состав",
"parameter_product_id": 14
},
{
"category": "Нормативно-сопроводительная документация",
"paramName": "Код_вида_алкогольной_продукции_Артрибут14231gr22",
"paramValue": "500",
"subcategory": "Код вида алкогольной продукции",
"parameter_product_id": 15
}
],
"parameters_document": [
{
"category": "Основное",
"paramName": "document_id",
"paramValue": "c8f3a3b8-81cb-11ed-9781-508492c79c54",
"type_value": "V",
"subcategory": "Основное",
"paramCaption": "Идентификатор",
"paramDescription": "Идентификатор задания",
"parameter_document_id": 1
},
{
"category": "Основное",
"paramName": "organization_name",
"paramValue": "ООО ДИДЖИТОРИЯ",
"type_value": "V",
"subcategory": "Организация",
"paramCaption": "Организация",
"paramDescription": "Организация",
"parameter_document_id": 2
},
{
"category": "Основное",
"paramName": "organization_inn",
"paramValue": "7714463230",
"type_value": "V",
"subcategory": "Организация",
"paramCaption": "Организация (ИНН)",
"paramDescription": "ИНН организации",
"parameter_document_id": 3
},
{
"category": "Основное",
"paramName": "product_name",
"paramValue": "ПИВО - ЭКОНД ТЕХНО",
"type_value": "V",
"subcategory": "Продукция",
"paramCaption": "Продукция",
"paramDescription": "Продукция",
"parameter_document_id": 4
},
{
"category": "Основное",
"paramName": "product_gtin",
"paramValue": "04620131970087",
"type_value": "V",
"subcategory": "Продукция",
"paramCaption": "GTIN",
"paramDescription": "GTIN продукции",
"parameter_document_id": 5
},
{
"category": "Основное",
"paramName": "product_expiration_date",
"paramValue": "21.01.2023 0:00:00",
"type_value": "D",
"subcategory": "Продукция",
"paramCaption": "Срок годности",
"paramDescription": "Срок годности продукции",
"parameter_document_id": 7
},
{
"category": "Основное",
"paramName": "product_production_date",
"paramValue": "22.12.2022 0:00:00",
"type_value": "D",
"subcategory": "Основное",
"paramCaption": "Дата производства",
"paramDescription": "Дата производства продукции",
"parameter_document_id": 6
},
{
"category": "Основное",
"paramName": "batch",
"paramValue": "269",
"type_value": "N",
"subcategory": "Основное",
"paramCaption": "Номер задания",
"paramDescription": "Номер задания",
"parameter_document_id": 8
},
{
"category": "Основное",
"paramName": "lot",
"paramValue": "",
"type_value": "V",
"subcategory": "Основное",
"paramCaption": "Партия",
"paramDescription": "Номер партии",
"parameter_document_id": 9
},
{
"category": "Основное",
"paramName": "count_level_0",
"paramValue": "100",
"type_value": "N",
"subcategory": "Коды",
"paramCaption": "Потребительские упаковки",
"paramDescription": "Количество потребительских упаковок",
"parameter_document_id": 10
},
{
"category": "Основное",
"paramName": "count_level_1",
"paramValue": "3",
"type_value": "N",
"subcategory": "Коды",
"paramCaption": "Групповые упаковки",
"paramDescription": "Количество групповых упаковок",
"parameter_document_id": 11
},
{
"category": "Основное",
"paramName": "count_level_2",
"paramValue": "1",
"type_value": "N",
"subcategory": "Коды",
"paramCaption": "Паллеты",
"paramDescription": "Количество Паллет",
"parameter_document_id": 12
},
{
"category": "Основное",
"paramName": "in_count_level_1",
"paramValue": "40",
"type_value": "N",
"subcategory": "Агрегация",
"paramCaption": "В групповой упаковке",
"paramDescription": "Количество потребительских кодов в групповой упаковке",
"parameter_document_id": 13
},
{
"category": "Основное",
"paramName": "in_count_level_2",
"paramValue": "20",
"type_value": "N",
"subcategory": "Агрегация",
"paramCaption": "В паллете",
"paramDescription": "Количество групповых кодов в палете",
"parameter_document_id": 14
},
{
"category": "Основное",
"paramName": "printing_house",
"paramValue": "Нет",
"type_value": "B",
"subcategory": "Типография",
"paramCaption": "Типография",
"paramDescription": "Используется типографские коды потребительских упаковок",
"parameter_document_id": 15
},
{
"parameter_document_id": 16,
"paramName": "Set_contents",
"type_value": "M",
"paramCaption": "Состав набора",
"paramDescription": "Состав набора",
"paramValue": [],
"category": "Основное",
"subcategory": "Состав набора"
},
{
"parameter_document_id": 17,
"paramName": "product_predstv",
"type_value": "V",
"paramCaption": "predstv",
"paramDescription": "predstv продукции",
"paramValue": "Масло растительное",
"category": "Основное",
"subcategory": "Продукция"
}
]
}
Ответ обработки входящего пакета данных
Пакет данных формируется после обработки входящего пакета «Задание на маркировку».
Описание полей
document_id
– Идентификатор пакета данных или идентификатор задания на маркировку, по которому формируется ответ;data
– Дата формирования пакета данных;report
– статус отработки пакета данных (OK, ERROR);report_comment
– комментарий обработки пакета данных.
Формат JSON. Версия: 1.0
Пример файла пакета данных
REPORT_IN_MARK_ c8f3a3b8-81cb-11ed-9781-508492c79c54.json
- Вид пакета:
REPORT_IN_MARK_
- Идентификатор пакета:
c8f3a3b8-81cb-11ed-9781-508492c79c54
- Формат пакета:
.json
{
"document": {
"data": "15.11.2022 04:19:58",
"report": "OK",
"document_id": "_ _c8f3a3b8-81cb-11ed-9781-508492c79c54",
"report_comment": "Пакет данных обработан"
}
}
Отчёт линии
Пакет данных формируется после закрытия задания в ПО.
Формат JSON. Версия: 1.0
Пример файла пакета данных
OUT_MARK_ c8f3a3b8-81cb-11ed-9781-508492c79c54.json
- Вид пакета:
OUT_MARK_
- Идентификатор пакета:
c8f3a3b8-81cb-11ed-9781-508492c79c54
- Формат пакета:
.json
{
"document": {
"codes": [
{
"code_item": "0104620131970698215B11q)Q3km+\"e(91)FFD0(92)dGVzdD7rNC8Rimx6Xd5ZMV8tW9FIKJicDJwT4iUnExA=",
"code": "0104620131970698215B11q)Q3km+\"e\u001d91FFD0\u001d92dGVzdD7rNC8Rimx6Xd5ZMV8tW9FIKJicDJwT4iUnExA=",
"codeWeight": null,
"agregation_level": 1
}
],
"document_id": "89412f99-e1f7-11ef-a423-5254002bc26b"
}
}
Описание полей блока document
codes
– список использованных кодов и их вложений;document_id
– идентификатор задания, по которому сформирован отчет с линии.
Описание полей блока codes
code_item
– код маркировки;code
– код маркировки с разделителямиcodeWeight
– вес кода, если он не был установлен, то по умолчанию «null»;code_item_to
– список входящий в код вложений (если это агрегат);agregation_level
– уровень агрегации кода (1 – сериализация, 2 – агрегат первого уровня, 3 – агрегат второго уровня).
Описание полей блока code_item_to
codeLabel
– код маркировки;codeWeight
– вес кода, если он не был установлен, то по умолчанию «null».
Проверки
При загрузке пакета данных задания ПО L2 проверяет пакет на наличие обязательных ключей в пакете. В случае непрохождения проверки формируется ответный пакет на уровень L4/L3 с комментарием в виде пакета данных «REPORT_IN_MARK_» пункт 2.2. Либо записывается в журнал в раздел «Пакеты данных».
- Проверка соответствия загружаемого пакета на вариант (Правило обмена) обработки ПО L2 указанный в разделе «Настройки» - «Синхронизация» - «Вариант». Если проверка не пройдена, то указывается комментарий: В настройках указан неправильный вариант синхронизации.
- Проверка наличия ключа «version» (версия пакета данных) в загруженном пакете данных. Если проверка не пройдена, то указывается комментарий: Параметр version отсутствует в пакете данных.
- Проверка соответствия значения ключа «version» (версия пакета данных) в загруженном пакете данных и версии варианта (Правило обмена) обработки ПО L2 указанный в разделе «Настройки» - «Синхронизация» - «Вариант». Если проверка не пройдена, то указывается комментарий: В параметре version указан неверная версия пакета данных.
- Проверка наличия ключа «document_type» (версия пакета данных) в загруженном пакете данных. Если проверка не пройдена, то указывается комментарий: Параметр document_type отсутствует в пакете данных.
- Проверка соответствия значения ключа «document_type» в загруженном пакете данных на то что указано значение «IN_MARK». Если проверка не пройдена, то указывается комментарий: В параметре document_type указан неверная версия пакета данных
- Проверка наличия значения ключа «paramName» в массиве «parameters_document» в загруженном пакете данных в рамках обязательных ключей и их значений перечисленных в пункту 2.1. Если проверка не пройдена, то указывается комментарий: В пакете данных не найден обязательный параметр:XXXXXXXXXXX