Blog— Anton Ignashev

enova365, Comarch Optima i Subiekt GT: porównanie API dla integratorów

enova365, Comarch Optima i Subiekt GT: porównanie API dla integratorów

Dlaczego to piszę

Przez ostatnie dwa tygodnie wrzuciłem tu trzy przewodniki programisty, po jednym na ERP: enova365 WebAPI, pięć rzeczy, które Comarch Optima nazywa API i Sferę dla Subiekta GT. Każdy odpowiada na ten sam zestaw pytań, tyle że dla jednego systemu.

Tylko że nikt, kto wycenia projekt, nie siada do trzech tekstów po dwa tysiące słów naraz. Chce tabeli.

Więc tabela jest niżej. A pod nią akapity, których żadna tabela nie pomieści.

To inny tekst niż moje starsze porównanie trzech ERP-ów od strony portalu B2B. Tamten był o projekcie: zadania synchronizacyjne, przepływ zamówień, realne terminy. Ten jest o warstwie pod spodem. Do czego się podłączasz. Za co płacisz, zanim napiszesz pierwszą linijkę kodu. Kim jest integracja po zalogowaniu. I gdzie zatrzymuje się szkic.

Tabela

enova365 Comarch ERP Optima Subiekt GT
Czym jest „API" Soneta WebAPI, serwer REST (starsze WebWCF/SOAP wciąż istnieje) Pięć rzeczy: CDN.API (COM), Comarch ERP Web API (REST), Praca Rozproszona (pliki XML), SQL, dodatki firm trzecich Jedna rzecz: Sfera, biblioteka obiektów COM/OLE Automation
Gdzie stoi Twój kod Gdziekolwiek, skąd widać serwer WebAPI Na hoście Optimy albo obok niego; CDN.API działa w procesie Na hoście Windows obok subiekt.exe, w procesie 32-bitowym
Za co płacisz najpierw Moduł WebAPI, wieczysty albo w subskrypcji Stanowisko licencyjne dla operatora integracji; Web API firmy trzeciej, jeśli kupujesz zamiast budować (rząd 5 800–8 800 zł netto) Sfera per program: 1 045 zł netto dla Subiekta GT, 655 za każde kolejne stanowisko, 1 975 dla Rewizora GT
Gdzie jest dokumentacja Swagger UI generowany na Twojej instalacji Specyfikacja Comarch ERP Web API za ścianą partnerską; CDN.API od Comarchu gta.chm w katalogu instalacji; brak publicznego opisu
Kim jest integracja Użytkownik integracyjny z tokenem JWT Operator zajmujący stanowisko Dwie tożsamości: login SQL i operator Subiekta
Gdzie zatrzymuje się szkic Bufor: true na dokumencie Trzy miejsca: bufor, Księguj, bufor Księgi Handlowej Nie ma bufora, na którym da się oprzeć; kolejka do przeglądu żyje w Twojej usłudze
Czy ERP potrafi wypchnąć zdarzenie? Harmonogram Zadań z wywołaniem HTTP, jeśli skonfigurowany Nie; odpytujesz albo pilnujesz katalogu Pracy Rozproszonej Nie; odpytujesz przez usługę pośredniczącą
Co psuje się pierwsze Brak drogi sieciowej do serwera Aktualizacja wersji albo host Windows, którego nikt nie zabudżetował Kompilacja AnyCPU przeciwko 32-bitowemu obiektowi COM

Każda komórka pochodzi z jednego z trzech przewodników, a każdy przewodnik powołuje się na dokumentację albo cennik producenta. Tam, gdzie wersja ma znaczenie, przewodnik ją podaje. Żadnej nazwy endpointu nie wymyśliłem po to, żeby wiersz wyglądał na kompletny.

To samo pytanie, trzy odpowiedzi

W tabeli sześć pytań z pierwszego spotkania każdego projektu ERP zostało ściśniętych do jednej linijki. Tu je rozpakowuję.

Czy mogę to wywołać z mojego kontenera?

enova365: tak. WebAPI jest serwerem. Integracja wysyła do niego JSON po HTTPS z miejsca, w którym akurat stoi — pod warunkiem że IT otworzyło drogę. I to ostatnie zdanie to cała historia terminów w projektach na enova365. Kod zajmuje dni. Zgłoszenie do firewalla — tygodnie. Wyślij jedno testowe zapytanie ze swojego prawdziwego środowiska, zanim napiszesz cokolwiek innego.

Optima: nie dla tej części, którą Comarch ma na myśli, mówiąc API. CDN.API to model obiektowy COM. Ładuje się w procesie, na Windowsie, obok zainstalowanej Optimy. Comarch ERP Web API idzie po HTTP, produkty firm trzecich też, ale i one stoją na hoście albo tuż obok. Układ, który się sprawdza: cienka usługa HTTP na maszynie z Windowsem trzyma sesję COM, a wszystko inne rozmawia już tylko z tą usługą. Wtedy ona jedna jest sprzężona z wersją Optimy — i dokładnie tam chcesz mieć to sprzężenie.

Subiekt GT: nie. Sfera to COM i OLE Automation, ładowana obok działającego subiekt.exe, w procesie 32-bitowym. Ta sama usługa pośrednicząca co przy Optimie, plus jedna zasada: kompiluj pod x86. Inaczej pierwszym błędem, jaki zobaczysz, będzie „Klasa niezarejestrowana" przy obiekcie zarejestrowanym bez zarzutu.

Za co płacę przed pierwszą linijką kodu?

enova365: za moduł WebAPI. Nie ma go w licencji bazowej i nie włącza się sam dlatego, że klient „ma enova365". Reseller aktywuje go na konkretnej licencji, jako dodatek wieczysty albo miesięczną subskrypcję. Weź to na piśmie, razem z numerem wersji.

Optima: za stanowisko licencyjne. Integracja loguje się jako operator, a operator odpytujący co pięć minut jest z punktu widzenia licencjonowania Comarchu zwykłym użytkownikiem. Kupujesz Web API firmy trzeciej zamiast budować usługę pośredniczącą? Dolicz jego cenę: te, które wyceniałem, mieszczą się między 5 800 a 8 800 zł netto, zależnie od zakresu i od tego, czy licencja obejmuje jedną firmę, czy biuro rachunkowe. Do tego host Windows, który wypływa w drugim tygodniu projektu wycenionego w tygodniu zerowym.

Subiekt GT: za Sferę, kupowaną per program i per stanowisko. Sfera dla Subiekta GT kosztuje 1 045 zł netto według cennika InsERT-u z 2 stycznia 2026, każde kolejne stanowisko 655 zł. Rozmowę zmienia dopiero wiersz z Rewizorem GT za 1 975 zł. W chwili, gdy zakres rośnie z „wystaw dokument sprzedaży" do „i zaksięguj go", kupujesz drugą Sferę za prawie dwukrotność pierwszej. Sprawdź aktualny cennik przed wyceną, ale struktura się nie rusza.

Subiekt ma za to jedno, czego nie mają tamte dwa: 15-dniową wersję próbną Sfery, włączaną ikoną na pasku narzędzi. Nie po to, żeby na niej zbudować integrację. Po to, żeby sprawdzić, czy dokumenty, na których stoi cały projekt, w ogóle dają się utworzyć na bazie tego klienta, przy tej konfiguracji. Prawie nikt z tego nie korzysta. A proof of concept zostawiony na wersji próbnej umiera szesnastego dnia — u klienta.

Kim jest integracja po zalogowaniu?

To pytanie decyduje o tym, co naprawdę znaczy „tylko do odczytu". Trzy systemy odpowiadają na nie na tyle różnie, że dostało osobny tekst o kontach serwisowych.

enova365: użytkownik integracyjny — nie login żywego operatora — wymieniający dane logowania na token JWT. Jedna tożsamość, jeden model uprawnień, token odświeżany z wyprzedzeniem na timerze, żeby długi batch nie odkrył w połowie przebiegu, że właśnie wygasł.

Optima: operator. Ten sam rodzaj konta, którego używa człowiek, z tymi samymi uprawnieniami i tym samym stanowiskiem.

Subiekt GT: dwie tożsamości w jednym połączeniu. Obiekt Sfery przyjmuje Uzytkownik i UzytkownikHaslo, czyli login do Microsoft SQL Server, i osobno Operator i OperatorHaslo, czyli konto osoby wewnątrz ERP-a. Login SQL nie dziedziczy żadnego z ograniczeń operatora. Więc kiedy ktoś mówi Ci, że konto integracji jest tylko do odczytu, dopytaj, o którym z dwóch mowa.

Jest jeszcze rzecz wspólna dla całej trójki: bezpośrednie połączenie SQL nie ma pojęcia, że model uprawnień ERP-a w ogóle istnieje. Tylko do odczytu na bazie to dużo szersze uprawnienie niż tylko do odczytu w ERP-ie. Te same słowa, zupełnie inne spotkanie.

Gdzie zatrzymuje się szkic?

Jeśli przez integrację zapisujesz cokolwiek finansowego, ten wiersz przeczytaj dwa razy.

enova365 ma status bufora wbudowany w każdy dokument — ten sam stan, który człowiek przełącza skrótem Shift+F11. Utwórz fakturę zakupu z Bufor: true, a jest zapisana, ponumerowana, wyceniona według reguł enova365, widoczna i edytowalna, ale niezatwierdzona: bez ruchu magazynowego, bez rejestru VAT, bez księgowania. Zatwierdzenie to drugie, celowe wywołanie. I należy do człowieka.

Optima ma tę samą ideę trzy razy. Dokument handlowy w buforze. Zapis w rejestrze VAT, na którym nikt nie uruchomił Księguj. Dekret wciąż w buforze Księgi Handlowej. Wczoraj opisałem agenta księgowego, który zatrzymuje się na wszystkich trzech — cały projekt stoi na tym, że Optima te miejsca już ma.

Subiekt GT jest uczciwym wyjątkiem. Dokumenty tworzone przez Sferę są prawdziwe: ponumerowane, wycenione, ze zdjętym stanem, dokładnie tak, jakby ktoś wyklikał je ręcznie. To jest powód, żeby używać Sfery zamiast tabel. I to samo znaczy, że stanu do przeglądu Subiekt Ci nie da. Zaprojektuj go po swojej stronie. Usługa pośrednicząca trzyma kolejkę, człowiek zatwierdza w Twoim interfejsie, a wywołanie Sfery następuje po kliknięciu, nie przed.

Czy ERP potrafi mi powiedzieć, że coś się zmieniło?

enova365: tak, jeśli ktoś to skonfigurował. Harmonogram Zadań potrafi wystrzelić wywołanie HTTP, gdy dokument zmienia status albo pojawia się nowa faktura — i tym samym zamienia architekturę odpytującą w sterowaną zdarzeniami. Czy jest ustawiony na instalacji, z którą się integrujesz, to pytanie do administratora, nie założenie. Po Twojej stronie musi jeszcze stać publicznie dostępny endpoint HTTPS, żeby to odebrać.

Optima: nic z listy pięciu nie wywołuje HTTP samo z siebie. Odpytujesz przez CDN.API albo Web API, albo używasz Pracy Rozproszonej i pilnujesz katalogu. Pilnujesz katalogu? Daj mu heartbeat. Zadanie, które przestało działać, i zadanie, które nie miało nic do wysłania, zostawiają ten sam ślad, czyli żaden. Widziałem, jak taka awaria trwała sześć tygodni, zanim ktokolwiek to zauważył.

Subiekt GT: odpytujesz przez usługę pośredniczącą, a ta usługa musi zauważyć, kiedy znika serwer RPC. Sfera trzyma żywy uchwyt do działającego procesu. Użytkownik go zamknie, aktualizacja go zrestartuje, maszyna wstanie po nocnym restarcie — i uchwyt jest martwy, i sam się nie naprawi. Wykrywaj i łącz ponownie. Inaczej usługa działa spokojnie miesiąc, a potem po cichu staje.

Co psuje się pierwsze?

enova365: brak drogi sieciowej. Potem moduł licencyjny założony zamiast potwierdzonego. Potem naiwne odświeżanie tokena. Potem pola własne z zainstalowanych dodatków, które kontrolery dynamiczne wystawiają tylko wtedy, gdy wiesz, że istnieją — dłuższa wersja w tekście o polach własnych.

Optima: aktualizacje wersji. Comarch wydaje kilka rocznie i przesunąć się może zarówno schemat bazy, jak i powierzchnia obiektowa. Potem host Windows, którego nikt nie zabudżetował. Potem stanowisko licencyjne odkryte na koniec miesiąca. Potem semantyka rezerwacji: rezerwacja odbiorcy to prawdziwy dokument, a integracja, która tworzy jedną na koszyk, sprawia, że towar znika na trzy dni.

Subiekt GT: bitowość pierwszego dnia, martwy uchwyt RPC w drugim miesiącu, wygaśnięcie wersji próbnej szesnastego dnia. A w tle dryf wersji: 1.89 niesie bieżącą falę zmian KSeF, a licencja Sfery i tak wymaga aktywacji na aktualnej wersji.

Co jest takie samo we wszystkich trzech

Pięć zasad, które nie zależą od producenta.

  1. Numer dokumentu zawsze nadaje ERP. Łamana we wszystkich trzech z tego samego kuszącego powodu: przecież już wiesz, jaki powinien być.
  2. Z SQL czytaj swobodnie, nie pisz nigdy. Raportowanie z tabel to normalna praktyka. Zapis do nich omija logikę biznesową, która była całym powodem sięgnięcia po API, produkuje dokumenty, w które ERP do końca nie wierzy, i wyprowadza Cię poza wsparcie producenta.
  3. Zacznij od odczytu, z heartbeatem. Stany magazynowe i dane kontrahentów, wystawione przez usługę pośredniczącą albo WebAPI, z kontrolą, która głośno pada w ciągu minut. Tydzień pracy, który daje prawo do rozmowy o zapisie.
  4. Pozycją kalendarzową jest host albo droga sieciowa, nie kod. Maszyna z Windowsem dla Optimy i Subiekta, reguła na firewallu dla enova365. Najszybciej pierwszy działający odczyt z produkcyjnego ERP-a miałem tego samego popołudnia. Najwolniej — po pięciu tygodniach. Opisałem, gdzie naprawdę idzie czas wdrożenia, i nie idzie w kod.
  5. Trzymaj bazę testową na docelowej wersji. Wszyscy trzej producenci wydają kilka wersji rocznie. Sprawdzaj przed aktualizacją produkcji u klienta, nie po.

Jak bym decydował

Jeśli klient już ma ERP, to nie wybierasz. Wyceniasz — a tabela daje Ci gotowe pozycje: moduł albo licencja, host albo droga sieciowa, usługa pośrednicząca albo jej brak, bufor albo własna kolejka.

Jeśli klient dopiero wybiera ERP z myślą o integracji i pyta mnie o zdanie, odpowiadam: enova365, ze względu na samo API. To nie jest to samo co najlepszy ERP dla firmy i mówię to za każdym razem.

A jeśli jesteś integratorem i budujesz praktykę — zbuduj usługę pośredniczącą raz. Cienka usługa HTTP, która trzyma sesję COM i mówi po JSON, to ten sam komponent dla Optimy i dla Subiekta GT. To ona sprawia, że reszta Twojego stosu przestaje zależeć od ERP-a. Wszystko powyżej niej i tak wygląda wtedy jak enova365.

Dokąd to prowadzi

To wszystko jest hydraulika. To, co przez nią puszczam, to agent: czyta dokumenty z ERP-a, konfrontuje je z czymś spoza niego i kładzie przed człowiekiem szkic do przeglądu, zamiast prosić o przepisanie. Na enova365 ten szkic siedzi w buforze przez WebAPI. Na Optimie zatrzymuje się na trzech buforach. Na Subiekcie czeka w kolejce, aż ktoś kliknie.

Wyceniasz integrację z jednym z tych trzech systemów i chcesz, żeby ktoś, kto rozbił się o tryby awarii każdego z nich, spojrzał na instalację, zanim zobowiążesz się do terminu? Odezwij się. Ta hydraulika to fundament, na którym buduję agenty AI dla firm, również na enova365: najpierw odczyt, potem zapis, a każde zatwierdzenie zostaje przy człowieku.

Porozmawiajmy o Twoim projekcie

Bezpłatna 30-minutowa konsultacja. Sprawdzimy, czy i jak mogę pomóc.

Umów bezpłatną 30-minutową rozmowę

Wybierz datę

Listopad 2026
Pon
Wt
Śr
Czw
Pt
Sob
Ndz
← Powrót do bloga

Powiązane wpisy

Ile kosztuje Subiekt nexo i Subiekt GT w 2026: cennik licencji, abonament i 30 dni, które podnoszą cenę o połowę
Blog

Ile kosztuje Subiekt nexo i Subiekt GT w 2026: cennik licencji, abonament i 30 dni, które podnoszą cenę o połowę

Subiekt nexo na 3 stanowiska kosztuje 1 275 zł netto, Subiekt GT 1 045 zł, nexo PRO 2 575 zł. To licencje wieczyste, ale co roku dochodzi Abonament: 349 zł za nexo, jeśli przedłużysz do 30 dni po wygaśnięciu, i 539 zł, jeśli później. Do tego Sfera, czyli API, licencje dla klientów biur rachunkowych i porównanie z Optimą i enova365.

Czytaj dalej→
Ile kosztuje Comarch ERP Optima w 2026: cennik subskrypcji, Basic i Pro, i trzy koszty, których w nim nie ma
Blog

Ile kosztuje Comarch ERP Optima w 2026: cennik subskrypcji, Basic i Pro, i trzy koszty, których w nim nie ma

Cennik Optimy jest publiczny: moduł Podstawowy 59 zł miesięcznie, Logistyka Basic 75 zł, Księga Handlowa 175 zł. Haczyk siedzi w słowie Pro: to dopłata do Basic, nie osobna wersja, więc pełna księgowość w Finansach kosztuje 250 zł, a nie 200. Do tego limity modułu Podstawowy, liczenie pracowników w HR dla biur i dwa przeliczone przykłady.

Czytaj dalej→
Pensje za grudzień wypłacone w styczniu 2027: koszt 2026 r. czy 2027 r.? Termin 8 stycznia, ZUS do 15 lub 22 lutego
Blog

Pensje za grudzień wypłacone w styczniu 2027: koszt 2026 r. czy 2027 r.? Termin 8 stycznia, ZUS do 15 lub 22 lutego

Grudniowa lista płac wypłacona w styczniu to koszt 2026 r., ale tylko jeśli pensje wyjdą w terminie z regulaminu, a składki ZUS w terminie ZUS. 10 stycznia 2027 r. to niedziela, więc ustawowy termin kończy się w piątek 8 stycznia. Ta sama pensja trafia do PIT-11 za 2027 r. Co biuro sprawdza w grudniu i w lutym.

Czytaj dalej→