Добавить в корзинуПозвонить
Найти в Дзене
RG-Soft

Миграция с прямого SQL-доступа на обмен через DBF без потери функциональности

На предприятии работала интеграция между ERP и 1С через прямые SQL-запросы к базе данных. Это создавало риски: Задача: заменить прямой доступ на обмен через файлы формата DBF, полностью сохранив существующий функционал синхронизации справочников и документов. Считывание файлов работает медленнее, чем прямой запрос в SQL. На большом объёме данных это будет заметно. Таким образом, потеря функциональности по скорости будет присутствовать. Стратегическое решение – переход на DBF: Решение заменить прямой SQL-доступ на обмен через файлы формата DBF, обусловлено некоторыми преимуществами: Почему выбран формат DBF? DBF выбран из-за требований к обратной совместимости с существующей ERP-системой, которая на момент старта проекта умела выгружать данные только в DBF. Замена формата потребовала бы доработки ERP, что было невозможно в рамках бюджета и сроков. Переписывание модуля выгрузки в ERP потребовало бы: Что сделали 1. Переработали архитектуру выборки данных под DBF: 2. Адаптировали код под
Оглавление

Подробное описание кейса

Предпосылки проекта

На предприятии работала интеграция между ERP и 1С через прямые SQL-запросы к базе данных. Это создавало риски:

  • необходимость иметь действующую лицензию на MSSQL;
  • зависимость от обновлений и поддержки со стороны Microsoft;
  • риски зависимости от иностранного вендора.

Задача: заменить прямой доступ на обмен через файлы формата DBF, полностью сохранив существующий функционал синхронизации справочников и документов. Считывание файлов работает медленнее, чем прямой запрос в SQL. На большом объёме данных это будет заметно. Таким образом, потеря функциональности по скорости будет присутствовать.

Стратегическое решение – переход на DBF:

Решение заменить прямой SQL-доступ на обмен через файлы формата DBF, обусловлено некоторыми преимуществами:

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

Почему выбран формат DBF?

DBF выбран из-за требований к обратной совместимости с существующей ERP-системой, которая на момент старта проекта умела выгружать данные только в DBF. Замена формата потребовала бы доработки ERP, что было невозможно в рамках бюджета и сроков. Переписывание модуля выгрузки в ERP потребовало бы:

  • остановки производственного процесса;
  • привлечения разработчиков ERP;
  • повторного тестирования всей интеграции.

Как выполнялся проект

Что сделали

1. Переработали архитектуру выборки данных под DBF:

  • реализовали программные связи (эмуляция JOIN);
  • переписали логику для всех ключевых объектов: номенклатура, контрагенты, приходные/расходные накладные, приходные выписки, Банки, БанковскиеСчета, РТУ, СФ, ПТУ, ПоступлениеНаРасчетныйСчет, СчетНаОплатуПокупателю.

2. Адаптировали код под изменяющиеся требования заказчика:

  • динамический путь к каталогу DBF;
  • поиск файла по данным, выведенным в наименование файла до его открытия (вместо проверки значения реквизита после открытия файла).;

3. Сохранили возможность отката к синхронизации через SQL

4. Обеспечили отладку без доступа к ERP.

Трудности проекта

В ходе анализа выявились ключевые ограничения, не очевидные на старте:

-2

Результаты проекта

Технические результаты

  • Произведена полная замена источника данных: с прямого SQL-доступа на обмен через набор DBF-файлов в заданном каталоге;
  • Весь ранее разработанный функционал синхронизации сохранён в полном объёме;
  • Реализована программная логика связей между DBF-файлами, эмулирующая SQL JOIN;
  • Настроены динамические маски поиска и путь к файлам по требованию заказчика;
  • Код очищен от лишних фрагментов.
-3

Рисунок 1- Архитектура «до» и «после»

Почему DBF – не временное решение

-4

Выгоды для бизнеса

  • Лицензионная чистота;
  • Независимость от западных вендоров;
  • Соответствия трендам импортозамещения;
  • Сохранения функционала обмена при любых изменениях внешней среды.