REST API vs COM objects — porównanie metod integracji z Comarch Optima
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.

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

Porównanie metod
| Kryterium | COM objects | Bezpośredni SQL | REST API (Optima API) |
|---|---|---|---|
| Platforma | Tylko Windows | Dowolna (z dostępem do DB) | Dowolna |
| Dokumentacja | Brak oficjalnej | Schemat DB nieudokumentowany | Swagger/OpenAPI |
| Walidacja biznesowa | Tak (przez COM) | Brak | Tak |
| Bezpieczeństwo | Sesja Windows | Bezpośredni dostęp do bazy | API Key + HTTPS |
| Czas integracji | 2–6 miesięcy | 1–4 tygodnie | 1–3 dni |
| Stabilność po aktualizacji | Niska | Bardzo niska | Wysoka |
| Wsparcie Comarch | Ograniczone | Brak | N/D (wsparcie WebArm) |
| Concurrency | Brak (sesyjne) | Pełna (DB-level) | Pełna (HTTP) |
| Format danych | Obiekty COM | SQL result sets | JSON |
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.
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?