Перейти к содержанию

MDLZ-2059: Документация по API проекта «Matreshka»


1. Расписание и описание реализации потока данных

1.1. Общее описание

Для предоставления доступа к данным для проекта «Matreshka» используется два API Endpoint'а. Данные возвращаются в формате JSON. Обновление данных на Endpoint'ах происходит на ежедневной основе.

1.2. Сведения о Endpoint'ах

  • Авторизация:

    • Осуществляется по bearer token: R9jEc3K7Fy5r5zRpvEXjg6yTzDmxSDua
  • ProductBrand:

    • URL: https://mdlz.ics-it.ru/mdlz/api/v1/matreshka/productbrand
    • Пример выгрузки JSON:
[
  {
    "BrandCode": "ALPEN GOLD BISCUITS",
    "BrandName": "RUBSAB"
  },
  {
    "BrandCode": "BARNY",
    "BrandName": "RUBSBR"
  },
  {
    "BrandCode": "PLB MARKET",
    "BrandName": "RUPSMT"
  }
]
  • Vendor:
    • URL: https://mdlz.ics-it.ru/mdlz/api/v1/matreshka/vendors
    • Пример выгрузки JSON:
[
  {
    "VendorCode": "PLRU81",
    "VendorName": "JSC \"FM LOGISTICS VOSTOK\" MON’DELEZ RUS LLC",
    "TaxNumber": "3321020710",
    "VatNumber": null,
    "DeletionFlagCentral": null,
    "AuthorizationGroupCentral": "ZRED",
    "HierarchyALevel3Code": null,
    "HierarchyALevel3Name": null,
    "HierarchyALevel4Code": null,
    "HierarchyALevel4Name": null,
    "HierarchyALevel5Code": null,
    "HierarchyALevel5Name": null
  },
  {
    "VendorCode": "T6435609",
    "VendorName": "ООО АРСЕНАЛ",
    "TaxNumber": "5012032327",
    "VatNumber": null,
    "DeletionFlagCentral": "X",
    "AuthorizationGroupCentral": "ZTRD",
    "HierarchyALevel3Code": null,
    "HierarchyALevel3Name": null,
    "HierarchyALevel4Code": null,
    "HierarchyALevel4Name": null,
    "HierarchyALevel5Code": null,
    "HierarchyALevel5Name": null
  },
  {
    "VendorCode": "T6435808",
    "VendorName": "ООО ЯРОСЛАВСКИЕ МАГАЗИНЫ",
    "TaxNumber": "7604069907",
    "VatNumber": null,
    "DeletionFlagCentral": "X",
    "AuthorizationGroupCentral": "ZTRD",
    "HierarchyALevel3Code": "RU20K",
    "HierarchyALevel3Name": "TANDER GROUP",
    "HierarchyALevel4Code": "RU20103",
    "HierarchyALevel4Name": "DIXI",
    "HierarchyALevel5Code": "RU2010301",
    "HierarchyALevel5Name": "DISCOUNT CENTRE YAROSLAVL"
  }
]

2. Условия фильтрации и источники ProductBrand

2.1. Источник данных

Используется объект: Safir_RU.dbo.dimProductSalesData

2.2. Условия фильтрации

  • По статусу активности:
    • Выбираются только записи со статусом '02' или '03'
  • По коду категории:
    • Исключаются записи с незаполненной иерархией

3. Условия фильтрации и источники Vendor

3.1. I этап. Формирование списка Vendor

Объекты-источники:

  • Safir_RU.dbo.dimVendors
  • Safir_RU.DataST.dimCountries

Условия фильтрации:

  • По коду страны:
    • Выбираются только записи со значением RU
  • По группе авторизации:
    • Исключаются записи со значением PERS, ZEMP

3.2. II этап. Источник данных для Sales иерархии

Объекты-источники:

  • Safir_RU.dbo.dimCustomers
  • Safir_RU.DataST.dimSalesOrganizations
  • Safir_RU.DataST.dimDistributionChannels
  • Safir_RU.dbo.dimCustomerSalesData

Условия фильтрации:

  • По коду иерархии:
    • Выбираются записи со значением RU20, RU30, RU50, RUEXP10
  • По флагу удаления:
    • Исключаются записи со значением X

Выбор иерархии:

  • Берется первая иерархия по приоритету
    • 1 = SalesOrganizationCode = Ru01
    • 2 = SalesOrganizationCode = Ru09
    • 3 = SalesOrganizationCode like Ru*
    • 4 = любая другая
  • В случае нескольких иерархии внутри одной Sales Organization применяется дополнительная приоритезация:
    • 1 = DistributionChannelCode = 20
    • 2 = DistributionChannelCode = 40
    • 3 = DistributionChannelCode = 30
    • 4 = DistributionChannelCode = 99
    • 5 = любая другая

Расшифровка кодов:

  • Safir_RU.dbo.dimCustomerSalesData
HierarchyALevel2Code Description
RU20 RETAIL
RU30 AFH
RU50 ECOM
RUEXP10 OTHER_EXPORT
  • Safir_RU.DataST.dimSalesOrganizations
Code Description
RU01 MI Russia
RU09 MI Russia Export
  • Safir_RU.DataST.dimDistributionChannels
Code Description
20 Retail
30 AFH
40 Distributors
99 Inter company

3.3 Мэппинг Vendor c Customer и Sales иерархией

  • Связь устанавливается по правилу:
    • Из VendorCode и CustomerCode удаляются лидирующие нули: 0000101384 → 101384
    • К CustomerCode добавляется префикс 'T'
    • Результирующий мэппинг: VendorCode = 'T' + CustomerCode

4. Процесс запуска и источники обновления

4.1 Схема потока данных

4.2 Сервер arrumosapp17

4.2.1. Расписание импорта

Импорт данных из базы Safir_RU выполняется с помощью задачи (Job) в SQL Agent Job: DWH_CSL_ETL в шаге Import Matreshka Data. Запуск производится после завершения основного ETL процесса (~ 05:00 по московскому времени / GMT+3)

4.2.2. Импорт данных из базы Safir_RU в базу DCore_DWH_SA

Объекты в Safir_RU Объекты в DCore_DWH_SA
dbo.dimVendors safirru.dbo_dimVendors
dbo.dimProductSalesData safirru.dbo_dimProductSalesData
dbo.dimCustomerSalesData safirru.dbo_dimCustomerSalesData
dbo.dimCustomers safirru.dbo_dimCustomers
datast.dimDistributionChannels safirru.datast_dimDistributionChannels
datast.dimCountries safirru.datast_dimCountries
datast.dimSalesOrganizations safirru.datast_dimSalesOrganizations

4.2.3. Импорт данных в HistoryArea в режиме "добавление и обновление"

  • Объекты в DCore_DWH_HA:
    • safirru.dbo_dimVendors
    • safirru.dbo_dimProductSalesData
    • safirru.dbo_dimCustomerSalesData
    • safirru.dbo_dimCustomers
    • safirru.datast_dimDistributionChannels
    • safirru.datast_dimCountries
    • safirru.datast_dimSalesOrganizations

4.2.4. Формирование набора данных для передачи на сервер PhotoTool

  • Представления в базе DCore_DWH:
    • matreshka.vw_Vendors
    • matreshka.vw_ProductBrand

4.2.5. Экспорт данных на сервер PhotoTool

Экспорт данных выполняется в автоматическом режиме ежедневно в 17:00 по московскому времени (GMT+3) с помощью задачи (Job) в SQL Server Agent: DWH_Export_MD_to_PhotoTool в шаге Export Matreshka Data

4.3 Сервер Phototool

4.3.1. Формирование Endpoint'ов API с авторизацией по bearer token для экспорта

  • https://mdlz.ics-it.ru/mdlz/api/v1/matreshka/productbrand
  • https://mdlz.ics-it.ru/mdlz/api/v1/matreshka/vendors