ЦВД
Главная
Блог
Интеграция Directum RX и «Галактика» на Oracle: как победить 32-битность и .NET Core
22 февраля 2023 г. 5 мин

Интеграция Directum RX и «Галактика» на Oracle: как победить 32-битность и .NET Core

Интеграция современных систем с устаревшими ERP — одна из самых частых, но и самых сложных задач при цифровизации предприятий. Особенно остро она встаёт, когда речь идёт о системе «Галактика», работающей на 32-разрядной платформе и старой версии Oracle Client.
Интеграция Directum RX и «Галактика» на Oracle: как победить 32-битность и .NET Core

В этом материале — наш опыт подключения Directum RX к базе данных «Галактики», где пришлось совместить старое и новое: от установки легаси-библиотек до адаптации под .NET Core в Directum RX 4.2.


Задача: актуализация данных из «Галактики» в Directum RX

Клиент использует «Галактику» как основную систему учёта, включая кадровые и финансовые данные. Для автоматизации бизнес-процессов в Directum RX требовался прямой доступ к данным — например, для автозаполнения карточек документов, согласований и отчётности.


Проблема: 32-битный Oracle Client и .NET Core

«Галактика» работает на Oracle 10g, а клиентская библиотека — 32-разрядная (x86). А Directum RX — 64-разрядная система, и с версии 4.2 по умолчанию работает на .NET Core, который не поддерживает старые COM-компоненты.


Шаг 1: Установка совместимого Oracle Client

Первый вызов — подключиться к базе Oracle 10g с современного сервера.


Проблема: Стандартные 64-битные клиенты Oracle не могут работать с устаревшими настройками и драйверами, используемыми в «Галактике».


Решение: Установили 32-битную версию Oracle Client, предоставленную заказчиком. Это позволило:


— Восстановить подключение к базе данных.

— Использовать привычный tnsnames.ora и настройки из документации «Галактики».


Настройка переменных среды:


ORACLE_HOME = C:\oracle\product\11.2.0\client_32

TNS_ADMIN = C:\oracle\product\11.2.0\client_32\network\admin

PATH += C:\oracle\product\11.2.0\client_32\bin



Для IIS: В пуле приложений включили поддержку 32-битных приложений:


Enable 32-Bit Applications = True


Теперь Visual Studio могла подключаться к базе через System.Data.OracleClient, и мы разработали первую версию интеграционной библиотеки.


Шаг 2: Обновление Directum RX до версии 4.2 — и новая проблема

При переходе на Directum RX 4.2 интеграция перестала работать.


Причина: С версии 4.2 Directum RX по умолчанию использует .NET Core, а System.Data.OracleClient и 32-битные COM-компоненты в нём не поддерживаются.


Варианты:


1. Оставить .NET Framework — возможно, но не рекомендуется для новых проектов.

2. Перейти на современные библиотеки — ODP.NET от Oracle.


Мы выбрали второй путь.


Шаг 3: Переход на ODP.NET — современное подключение к Oracle

Использовали Oracle Data Provider for .NET (ODP.NET) — официальный, высокопроизводительный драйвер от Oracle.


Что сделали:


1. Установили пакет odp.net.x64 через NuGet.

2. Разработали два класса:

— DBOracleUtils — для подключения и выполнения запросов.

— DBUtils — с параметрами подключения к базе заказчика.


using Oracle.DataAccess.Client;


public class DBOracleUtils

{

public static OracleConnection GetConnection(string connectionString)

{

var connection = new OracleConnection(connectionString);

connection.Open();

return connection;

}

}


Преимущества ODP.NET:


— Поддержка .NET Framework и .NET Core.

— Высокая производительность.

— Надёжная работа с Oracle 10g–19c.

— Совместимость с асинхронными обработчиками Directum RX.


Шаг 4: Работа с разрядностью — 32 и 64 бита на одном сервере

Чтобы не терять совместимость с другими системы, на сервере были установлены обе версии Oracle Client:


— 32-битная — для «Галактики» и других legacy-приложений.

— 64-битная — для Directum RX и новых сервисов.


Ключевой момент: Чёткое разделение путей в PATH, ORACLE_HOME и TNS_ADMIN, чтобы не было конфликтов библиотек.


Шаг 5: Интеграция заработала

После всех настроек:


— Directum RX стабильно читает данные из Oracle.

— Информация о сотрудниках, подразделениях и договорах автоматически подтягивается.

— Система успешно обновлена до Directum RX 4.5.

— Интеграция работает в продакшене без сбоев.


Итог: как подружить старое и новое

Устаревший Oracle Client (32-bit) — Установка 32-битного клиента и настройка среды

Несовместимость с .NET Core — Переход на ODP.NET

Обновление Directum RX — Использование NuGet-пакетов и современных драйверов

Конфликт разрядности — Раздельная установка 32 и 64-битных клиентов


Рекомендации от ЦВД

1. Не игнорируйте архитектуру ERP-системы при планировании интеграции.

2. Используйте ODP.NET вместо System.Data.OracleClient — это будущее.

3. Храните дистрибутивы старых клиентов — они могут исчезнуть с официальных сайтов.

4. Тестируйте на стенде, близком к продакшену — особенно при обновлении платформы.

5. Планируйте миграцию заранее — переход на .NET Core требует адаптации интеграций.


Заключение

Интеграция с «Галактикой» — не приговор. Даже при работе с устаревшими технологиями можно построить надёжное и современное решение. Главное — грамотный подход, понимание архитектуры и готовность к нестандартным решениям.


В ЦВД мы регулярно сталкиваемся с подобными задачами. Если у вас — ERP, 1С, SAP или другая legacy-система — мы поможем интегрировать её с Directum RX без простоев.

Делаем бизнес эффективнее с 2008-го года
— Получите персональный расчёт стоимости и план внедрения за 1 рабочий день
— Бесплатная консультация по сценариям вашей интеграции
— Демонстрация решения в течение 24 часов