IntegracjaREST APIComarch Optima

REST API vs COM objects — porównanie metod integracji z Comarch Optima

Robert Mońka ·

Comarch ERP Optima nie oferuje publicznego REST API. Firmy integrujące swoje systemy z Optimą muszą wybierać między COM objects, bezpośrednim SQL a rozwiązaniami third-party. Ten artykuł porównuje wszystkie trzy podejścia — z konkretnymi przykładami kodu, ograniczeniami i rekomendacjami.

Porównanie legacy COM objects z nowoczesnym REST API — chaos kabli vs czyste przepływy danych

Problem: brak standardowego interfejsu

Comarch Optima to jeden z najpopularniejszych systemów ERP w Polsce. Mimo to, integracja z zewnętrznymi systemami — sklepy internetowe, CRM, narzędzia AI — pozostaje wyzwaniem. Oficjalnie dostępne metody mają istotne ograniczenia. Przyczyny tego stanu rzeczy opisujemy szczegółowo w artykule dlaczego Comarch nie oferuje publicznego REST API.

Metoda 1: COM objects (.NET/C++)

COM objects to najstarsza metoda integracji z Comarch Optimą. Polega na programowym wywoływaniu obiektów COM zarejestrowanych przez instalację Optimy na serwerze Windows.

Jak to wygląda w praktyce

// Inicjalizacja sesji Comarch Optima przez COM
var optima = new CDNApiType();
optima.Logon("admin", "haslo", "FIRMA", 1);

// Pobranie listy kontrahentów
var kontrahenci = optima.CreateObject("CDN.Kontrahenci");
kontrahenci.Filtruj("Knt_Aktywny = 1");

while (!kontrahenci.EOF)
{
    var kod = kontrahenci.FieldValue("Knt_Kod");
    var nazwa = kontrahenci.FieldValue("Knt_Nazwa1");
    kontrahenci.MoveNext();
}

kontrahenci.Close();
optima.Logoff();

Ograniczenia COM objects

  • Tylko Windows — COM działa wyłącznie na Windows z zainstalowaną Optimą
  • Brak dokumentacji — API nie jest oficjalnie dokumentowane; programiści uczą się metodą prób i błędów
  • Sesyjność — każde połączenie wymaga logowania do sesji Optimy, co jest wolne i zasobożerne
  • Kruche po aktualizacji — nowa wersja Optimy może zmienić sygnatury obiektów COM bez ostrzeżenia
  • Brak concurrency — obiekty COM nie są thread-safe; każda operacja blokuje sesję
  • Czas integracji — typowo 2–6 miesięcy pracy doświadczonego programisty .NET

Metoda 2: Bezpośredni SQL

Niektóre firmy omijają oficjalne mechanizmy i operują bezpośrednio na bazie danych SQL Server, w której Optima przechowuje dane.

Dlaczego to zły pomysł

-- "Szybki" sposób na pobranie kontrahentów
SELECT Knt_Kod, Knt_Nazwa1, Knt_Nip
FROM CDN.Kontrahenci
WHERE Knt_Aktywny = 1

-- Ale co z walidacją? Regułami biznesowymi?
-- Co z triggerami, procedurami składowanymi?
-- Co po aktualizacji Comarch, gdy zmieni się schemat?

Ograniczenia bezpośredniego SQL

  • Brak walidacji — omijasz reguły biznesowe wbudowane w Optimę
  • Ryzyko uszkodzenia danych — INSERT/UPDATE bez znajomości wewnętrznych zależności może uszkodzić bazę
  • Brak wsparcia Comarch — bezpośrednie operacje na bazie nie są objęte wsparciem technicznym
  • Utrata gwarancji — Comarch może odmówić pomocy, jeśli wykryje bezpośrednie modyfikacje bazy
  • Aktualizacje łamią schemat — struktura tabel zmienia się między wersjami bez dokumentacji zmian

Metoda 3: REST API (Optima API od WebArm)

Optima API — REST API do Comarch ERP Optima stworzone przez WebArm — to warstwa REST między Twoim systemem a Comarch Optimą. Zbudowana i utrzymywana przez WebArm.

Jak to wygląda w praktyce

# Pobranie listy kontrahentów
curl -X GET https://twoj-serwer/api/kontrahenci \
  -H "X-Api-Key: twoj-klucz" \
  -H "X-Optima-Firma: FIRMA-DB"

Odpowiedź:

{
  "data": [
    {
      "id": 1,
      "kod": "FIRMA-001",
      "nazwa": "Przykładowa Firma Sp. z o.o.",
      "nip": "1234567890",
      "email": "[email protected]"
    }
  ],
  "pagination": {
    "page": 1,
    "pageSize": 50,
    "totalCount": 342
  }
}

Zalety REST API

  • Dowolna platforma — Linux, macOS, Docker, przeglądarka, aplikacja mobilna
  • Dokumentacja Swagger/OpenAPI — pełna, interaktywna dokumentacja od razu po instalacji
  • Walidacja reguł biznesowych — każda operacja przechodzi przez silnik walidacyjny Optimy
  • Bezpieczeństwo — API Key + HTTPS, bez bezpośredniego dostępu do bazy
  • Stabilność po aktualizacji — WebArm testuje kompatybilność z nowymi wersjami Optimy
  • Czas integracji — 1–3 dni zamiast miesięcy

Waga złożoności — ciężkie legacy kontra lekki nowoczesny interfejs API

Porównanie metod

KryteriumCOM objectsBezpośredni SQLREST API (Optima API)
PlatformaTylko WindowsDowolna (z dostępem do DB)Dowolna
DokumentacjaBrak oficjalnejSchemat DB nieudokumentowanySwagger/OpenAPI
Walidacja biznesowaTak (przez COM)BrakTak
BezpieczeństwoSesja WindowsBezpośredni dostęp do bazyAPI Key + HTTPS
Czas integracji2–6 miesięcy1–4 tygodnie1–3 dni
Stabilność po aktualizacjiNiskaBardzo niskaWysoka
Wsparcie ComarchOgraniczoneBrakN/D (wsparcie WebArm)
ConcurrencyBrak (sesyjne)Pełna (DB-level)Pełna (HTTP)
Format danychObiekty COMSQL result setsJSON

Kiedy wybrać które rozwiązanie

COM objects — gdy masz istniejącą integrację COM, która działa i nie planujesz zmian. Koszt migracji nie jest uzasadniony, jeśli wszystko jest stabilne.

Bezpośredni SQL — nigdy jako rozwiązanie docelowe. Dopuszczalne jedynie do jednorazowych eksportów danych w trybie read-only, z pełną świadomością ryzyka.

REST API (Optima API) — nowe integracje, e-commerce, aplikacje mobilne, agenty AI, lub gdy obecna integracja COM sprawia problemy po każdej aktualizacji Optimy. Krok po kroku jak wygląda taka integracja opisujemy w przewodniku po integracji sklepu z Comarch Optima.

Podsumowanie

Brak oficjalnego REST API od Comarch to realny problem dla firm integrujących swoje systemy z Optimą. COM objects działają, ale są kruche, wolne w implementacji i przywiązane do Windows. Bezpośredni SQL to ryzyko, którego nie warto podejmować.

Optima API od WebArm eliminuje te problemy — standardowe REST API z dokumentacją, walidacją i wsparciem aktualizacji. Integracja, która zajmowała miesiące, trwa dni.


Masz pytania o integrację z Comarch Optima? Sprawdź odpowiedzi na najczęstsze pytania lub skontaktuj się z nami.


RM

Robert Mońka

Założyciel WebArm. 28 lat w IT, właściciel firmy produkcyjno-handlowej. Buduje narzędzia integracyjne do Comarch ERP Optima i używa ich we własnych firmach.

LinkedIn →

Masz pytania o integrację z Comarch Optima?