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

Интеграция ibp: импорт данных и настройка модели

Общие принципы

  • Интеграция реализована через загрузку CSV-файлов с фиксированными именами и структурой.
  • Для каждого справочника/данных есть отдельная функция импорта, помеченная декоратором @pq_script.
  • Все функции импорта можно запускать как отдельные рутины или через универсальную функцию import_master_data.
  • Для чтения файлов используется функция get_df, для записи — import_data и import_hierarchy_items.

Основные CSV-файлы-интерфейсы и функции импорта

1. Справочники и иерархии

CSV-файл Функция импорта Описание
IMP_Unit.csv import_unit Единицы измерения (UOM)
IMP_Client.csv import_client Клиенты, уровни клиентской иерархии
IMP_Product.csv import_product Продукты, статусы, иерархия продуктов
IMP_ProductStatus.csv import_product_status Статусы продуктов
IMP_SalesPoint.csv import_product Торговые точки (используется внутри import_product)
IMP_ProductSalesPoint.csv import_product Связи продукт–торговая точка
IMP_ProductAnalogous.csv import_product Аналоги продуктов (опционально)
IMP_ProductUnitConversion.csv import_product Конвертации единиц для продуктов
IMP_Location.csv import_location Локации (склады, точки доставки)
IMP_Wh.csv import_wh Склады
IMP_TransportVehicleParam.csv import_transport Параметры транспорта (типы, вместимость)

2. Матрицы и связи

CSV-файл Функция импорта Описание
IMP_ProductLocation.csv import_product_location Связи продукт–локация
IMP_SalesToDemandMatrix.csv import_sales_to_demand_matrix Матрица соответствия продаж и спроса

3. Исторические и плановые данные

CSV-файл Функция импорта Описание
IMP_SalesHistory.csv import_sales_history_data История продаж (основной файл)
IMP_SalesHistorySkip.csv import_sales_history_skip История продаж (skip, для пропусков)
IMP_SalesHistoryCorrection.csv import_sales_history_correction Корректировки истории продаж
IMP_Stock.csv import_stock Остатки на складах
IMP_Prices.csv import_prices Цены

4. Параметры для расчётов

CSV-файл Функция импорта Описание
IMP_TargetStockParams.csv import_target_stock_params Параметры целевых запасов (уровень сервиса, ошибка прогноза и др.)
IMP_Supply.csv import_supply Параметры поставок

Универсальный импорт данных и настройка модели (import_master_data)

Для интеграции и первичной загрузки всех необходимых справочников и параметров в ibp рекомендуется использовать универсальную функцию:

from planiqum.apps.ibp.scripts.integration import import_master_data
import_master_data(template_groups=None, demand=True, supply=True)
  • import_master_data автоматически вызывает все основные функции импорта (справочники, параметры, связи, историю, цены, остатки и т.д.)
  • Для полной сборки и настройки модели рекомендуется использовать специальный вариант этого скрипта — project
  • Вариант project импортирует все справочники, параметры, связи и выполняет все необходимые действия для подготовки модели к расчетам
  • Это best practice для начальной инициализации и интеграции ibp

Рекомендация по запуску

  • Для быстрой и корректной интеграции используйте:
    import_master_data(template_groups=None, demand=True, supply=True)  # вариант project
    
  • Такой запуск гарантирует, что все справочники, параметры и связи будут корректно загружены и синхронизированы
  • Не требуется запускать отдельные функции импорта вручную — всё делается автоматически

Важные моменты

  • Формат CSV: Разделитель — ;, десятичный разделитель — , (можно переопределить через read_options).
  • Обработка wildcards: В некоторых файлах поддерживается символ * для массового сопоставления (например, все продукты, все локации).
  • Логирование: Все операции логируются, ошибки выводятся в лог и не блокируют остальные загрузки (кроме FileNotFoundError).
  • Параметры: Для большинства функций можно передавать дополнительные параметры (например, дата-формат, опции чтения, фильтры).

Если нужно добавить примеры структуры конкретных CSV-файлов или описать процесс интеграции для внешних систем — уточните, что важно для вашей задачи!