Перейти к содержанию
+7 (495) 991 35 10 info@encode.one
Скачать в PDF

Файловый обмен

Пакеты обмена

Обмен данными между текущим ПО и ПО уровня L4/L3 происходит через пакеты обмена в форматах "JSON" или "XML".

Основные пакеты обмена

Пакеты данных которые формируются на уровне ПО L4/L3 и L2.

  1. Задание на маркировку – Входящий пакет данных для ПО уровня L2 сформированный в ПО уровня L4/L3. Содержит данные о параметрах задания, продукции и списки кодов. В заголовке пакета данных присутствует «IN_MARK_».
  2. Ответ обработки входящего пакета данных – Исходящий пакет данных от ПО уровня L2 для ПО уровня L4/L3. Содержит данные о состоянии обработки входящего пакета «Задание на маркировку». В заголовке пакета данных присутствует «REPORT_IN_MARK_».
  3. Отчет линии – Исходящий пакет данных от ПО уровня L2 для ПО уровня L4/L3. Содержит данные о результатах маркировки в рамках «Задание на маркировку». В заголовке пакета данных присутствует «OUT_MARK_».

Задание на маркировку

В пакете данных обязательно должны присутствовать следующие ключи и их значения:

  • paramName – содержит значение наименование параметра. Повторение значений наименований не допускается;
  • paramValue – содержит значение параметра задания. Значение передается в виде текста;
  • type_value – содержит значение типа данных значение параметра: «N» - числовой, «D» - дата и время, «V» - строковый, «B» - логический (true или false);
  • Версия пакета данных:
    "version": "1.0",
    
  • Тип пакета данных. Для задания на маркировку значение «IN_MARK»:
    "document_type": "IN_MARK"
    
  • Номер GTIN продукции:
    "paramName": "product_gtin",
    "paramValue": "04620131970087"
    "type_value": "V",
    
  • Дата производства (в формате даты и времени «22.12.2022 0:00:00»):
    "paramName": "product_production_date",
    "paramValue": "22.12.2022 0:00:00",
    "type_value": "D",
    
  • Номер задания в учетной системе L4/L3:
    "paramName": "batch",
    "paramValue": "269",
    "type_value": "N",
    
  • Количество кодов в задании потребительских кодов DataMatrix (0-й уровень агрегации):
    "paramName": "count_level_0",
    "paramValue": "100",
    "type_value": "N",
    
  • Количество кодов в задании групповых кодов DataMatrix/ GS-128 (1-й уровень агрегации):
    "paramName": "count_level_1",
    "paramValue": "3",
    "type_value": "N",
    
  • Количество кодов в задании паллетных кодов GS-128 (2-й уровень агрегации):
    "paramName": "count_level_2",
    "paramValue": "1",
    "type_value": "N",
    
  • Количество потребительских кодов в агрегате первого уровня агрегации. Требуется для автоматического закрытия агрегата первого уровня:
    "paramName": "in_count_level_1",
    "paramValue": "40",
    "type_value": "N",
    
  • Количество кодов первого уровня агрегации в агрегате второго уровня агрегации. Требуется для автоматического закрытия агрегата второго уровня:
    "paramName": "in_count_level_2",
    "paramValue": "20",
    "type_value": "N",
    
  • Признак типографского задания: «Да»/ «Нет» / «Yes» / «No» / «TRUE» / «FALSE»:
    "paramName": "printing_house",
    "paramValue": "Нет",
    "type_value": "B",
    

При формировании своей версии пакета. Ключи могут иметь любые названия, но их значения должны быть указаны как указано в требовании выше.

Формат 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. Либо записывается в журнал в раздел «Пакеты данных».

  1. Проверка соответствия загружаемого пакета на вариант (Правило обмена) обработки ПО L2 указанный в разделе «Настройки» - «Синхронизация» - «Вариант». Если проверка не пройдена, то указывается комментарий: В настройках указан неправильный вариант синхронизации.
  2. Проверка наличия ключа «version» (версия пакета данных) в загруженном пакете данных. Если проверка не пройдена, то указывается комментарий: Параметр version отсутствует в пакете данных.
  3. Проверка соответствия значения ключа «version» (версия пакета данных) в загруженном пакете данных и версии варианта (Правило обмена) обработки ПО L2 указанный в разделе «Настройки» - «Синхронизация» - «Вариант». Если проверка не пройдена, то указывается комментарий: В параметре version указан неверная версия пакета данных.
  4. Проверка наличия ключа «document_type» (версия пакета данных) в загруженном пакете данных. Если проверка не пройдена, то указывается комментарий: Параметр document_type отсутствует в пакете данных.
  5. Проверка соответствия значения ключа «document_type»  в загруженном пакете данных на то что указано значение «IN_MARK». Если проверка не пройдена, то указывается комментарий: В параметре document_type указан неверная версия пакета данных
  6. Проверка наличия значения ключа «paramName» в массиве «parameters_document» в загруженном пакете данных в рамках обязательных ключей и их значений перечисленных в пункту 2.1. Если проверка не пройдена, то указывается комментарий: В пакете данных не найден обязательный параметр:XXXXXXXXXXX