IntegracjaREST APIComarch Optima

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

Robert Mońka · · Zaktualizowano:

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.

Najważniejsze informacje

  • REST API Comarch Optima jest najwygodniejszym kontraktem dla e-commerce, WMS, CRM i aplikacji webowych, ale Comarch nie udostępnia go publicznie w standardzie HTTP/JSON.
  • COM objects zapewniają walidację biznesową, lecz wymagają Windows, sesji Optimy i programisty znającego nieudokumentowane obiekty.
  • Bezpośredni SQL nadaje się najwyżej do odczytów read-only. Zapis dokumentów przez SQL omija reguły Optimy i jest ryzykowny.
  • Optima API od WebArm łączy wygodę REST API z walidacją zapisów przez mechanizmy Comarch ERP Optima.
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.

Web API, REST API i Comarch ERP Optima: co to oznacza dla twojego biznesu

W praktyce firmy pytają o Web API, REST API i obiekty COM, ale porównują trzy różne poziomy integracji. Web API kojarzy się z usługą dostępną po sieci, często z XML lub SOAP. REST API oznacza prostszy kontrakt HTTP/JSON, z którym łatwo pracują sklepy, CRM, WMS i inne aplikacje webowe. Obiekty COM są natomiast lokalnym mechanizmem Windows, bliższym automatyzacji zainstalowanego programu niż publicznemu interfejsowi dla systemów zewnętrznych.

Dla systemu Comarch ERP Optima wybór metody wpływa nie tylko na kod. Decyduje też o czasie wdrożenia, kompatybilności wersji, kontroli dostępu, rozliczaniu błędów i dodatkowych kosztach utrzymania. Jeżeli integracja ma obsługiwać zamówienie ze sklepu, faktury sprzedaży, płatności, stany magazynowe i dane kontrahenta bez ręcznego przepisywania, warstwa API powinna ukrywać złożoność programu, a nie przerzucać ją na każdy system klienta ani na inne aplikacje w firmie.

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

Typowa integracja przez COM wymaga z grubsza takich kroków po stronie kodu klienta (.NET/C++ na Windows z zainstalowaną Comarch ERP Optima):

  1. Inicjalizacja sesji oficjalnym interfejsem Optimy (logon firmy, użytkownika, hasła)
  2. Utworzenie obiektu biznesowego odpowiadającego encji (np. kontrahenci, towary, faktury)
  3. Ustawienie filtra zawężającego zbiór rekordów
  4. Iteracja po rekordach z odczytem każdego pola pojedynczo
  5. Zwolnienie obiektu i zamknięcie sesji — krytyczne dla zwolnienia zasobów COM

W praktyce to kilkadziesiąt linii kodu .NET tylko na pobranie listy aktywnych kontrahentów — przy każdej operacji powtarzalnego boilerplate’u. Każda operacja zapisu (utworzenie faktury, modyfikacja kontrahenta) wymaga znajomości kolejności pól, walidacji wstępnej i obsługi błędów COM, które potrafią się objawiać brakiem komunikatu (HRESULT 0x80020009 jako jedyny ślad).

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ł

Niskopoziomowe SELECT na bazie wygląda kuszące — kilka linii, natychmiastowy wynik. Problem zaczyna się przy operacjach zapisu. Optima przy każdym dodaniu faktury, modyfikacji kontrahenta czy zatwierdzeniu dokumentu aktualizuje równolegle dziesiątki powiązanych encji: numerację dokumentów, rejestry VAT, rozrachunki, zapisy księgowe, stany magazynowe, historię zmian. Pominięcie którejkolwiek = niespójna baza i błędy widoczne dopiero przy zamknięciu miesiąca.

Dodatkowo: struktura wewnętrzna Optimy jest własnością Comarch i zmienia się między wersjami bez dokumentacji — to co działa dziś, jutro może wymagać przepisania. Bezpośrednie operacje na bazie nie są objęte wsparciem technicznym Comarch i mogą skutkować utratą gwarancji.

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 wygląda pobieranie danych przez REST API Comarch ERP Optima

# 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ź REST API to JSON: identyfikator, kod kontrahenta, NIP, adres e-mail oraz dane paginacji. Pobranie listy nie wymaga sesji Windows, a wyszukiwanie po NIP lub nazwie może działać tak samo z CRM, sklepu, panelu B2B albo narzędzia raportowego.

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

Przykładowe zadania integracyjne

ZadanieCOM objectsBezpośredni SQLREST API od WebArm
Pobieranie listy kontrahentówdziała, ale wymaga sesji Windowsszybki odczyt, read-onlyGET /api/kontrahenci z paginacją
Wyszukiwanie po NIP, kodzie lub nazwiewymaga osobnego filtra COMmożliwe, ale tylko na strukturze tabelquery parametry HTTP i spójny opis błędu
Dodawanie dokumentów handlowychpoprawne, ale wymaga kodu .NETryzykowne, bez walidacjiPOST /api/dokumenty/* przez walidację Optimy
Faktury sprzedaży i dokument FSzłożone obiekty COMwysokie ryzyko niespójnościREST payload + numeracja i rejestry po stronie Optimy
Korekty, płatności i numer obcywiele obiektów i zależnościłatwo pominąć rozrachunki lub rejestr VATjedna operacja z walidacją programu
E-commerce i systemy WMSwymaga własnego middlewaretylko część odczytowastandard HTTP/JSON dla dowolnej platformy

To dlatego pytanie “COM czy REST API” nie jest tylko preferencją technologiczną. Decyduje o tym, kto utrzymuje integrację po aktualizacji Optimy, jak szybko dodasz nowy system i czy operacje zapisu pozostają zgodne z logiką programu.

REST API, Web API i koszty utrzymania wersji

Web API, COM objects i REST API różnią się też kosztem życia integracji. Licencja jednorazowa albo pierwsze wdrożenie to zwykle mniejsza część wydatku. Większy koszt pojawia się przy aktualizacji wersji Comarch ERP Optima, zmianie pól dokumentów, dodaniu nowej funkcjonalności albo podłączeniu kolejnego systemu. REST API od WebArm ogranicza ten problem, bo stabilny protokół HTTP oddziela aplikacje klienta od mechanizmów Optimy.

Dodatkowe koszty i integracja z innymi aplikacjami

Dodatkowe koszty pojawiają się wtedy, gdy każda integracja z innymi aplikacjami wymaga osobnego kodu COM, osobnych testów wersji i osobnej obsługi błędów. REST API zmniejsza ten ciężar, bo CRM, sklep, WMS i raporty korzystają z tego samego formatu żądań.

W praktyce automatyzacja obejmuje zarządzania danymi, pobieranie towarów, aktualizacja cen, synchronizacja dokumentów i wdrożenie kolejnych funkcjonalności bez przebudowy całego systemu. To zwiększenie stabilności jest ważne szczególnie wtedy, gdy z Optimą pracuje więcej niż jedno oprogramowanie: sklep, magazyn, księgowość i panel sprzedażowy.

Jak wygląda dodawanie dokumentów i synchronizacja stanów

Największa różnica między metodami pojawia się przy zapisie, a nie przy samym pobieraniu listy. Dodawanie dokumentów handlowych oznacza zwykle utworzenie nagłówka, pozycji towarów, danych kontrahenta, płatności, numeru obcego, rejestru VAT i statusu w buforze. Do tego dochodzi tworzenie dokumentów powiązanych, na przykład faktury sprzedaży do zamówienia albo dokumentu magazynowego do wydania towarów.

Bezpośredni SQL widzi tylko tabele bazy danych, więc łatwo pominąć księgowość, korekty, rozliczanie dokumentów handlowych albo stany magazynowe. COM objects potrafią przeprowadzić zapis przez mechanizmy Optimy, ale wymagają kodu zależnego od sesji Windows. REST API od WebArm wystawia operacje przez HTTP, a walidację i aktualizację dokumentów zostawia po stronie Comarch ERP Optima. Dzięki temu eksport dokumentów, wyszukiwanie po NIP, aktualizacja cenników, synchronizacja produktów i pobranie stanów magazynowych całkowitych mogą być obsłużone jednym spójnym protokołem.

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.

FAQ

Czy REST API zastępuje COM objects całkowicie? Dla klienta integrującego systemy tak, bo pracuje na HTTP/JSON. W środku zapisy nadal mogą przechodzić przez COM, żeby zachować walidację biznesową Optimy.

Czy bezpośredni SQL jest zawsze zły? Do kontrolowanych odczytów read-only bywa użyteczny. Do zapisów dokumentów, kontrahentów, płatności i stanów magazynowych nie powinien być rozwiązaniem docelowym.

Czy Web API Comarch Optima to to samo co REST API? Nie. Web API Comarch opiera się na innym modelu integracji i nie daje prostego, publicznego kontraktu REST/JSON dla wszystkich scenariuszy, których potrzebują sklepy i aplikacje webowe.

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.


Robert Mońka, WebArm

Robert Mońka

Programista, właściciel firmy produkcyjno-handlowej, lider zespołu WebArm. Wraz z zespołem rozwija Optima API i VerSync: REST API oraz synchronizatory do Comarch ERP Optima używane też w jego własnych firmach.

LinkedIn →

Masz pytania o integrację z Comarch Optima?