Studio WMS.net

Integracja systemu WMS z Subiektem GT w trzech niezależnych torach

Jak w opisywanym wdrożeniu WMS przekazuje dane do Subiekta GT przez kolejki w bazie danych i dlaczego odczyt idzie inną drogą niż zapis.

Autor: Adam Siemiątkowski Aktualizacja: 13 października 2026
system.wms.net.pl/oprogramowanie-wms/
Pracownik magazynu z otwartym laptopem na tle regałów z paletami
Pracownik magazynu z otwartym laptopem na tle regałów z paletami

W opisywanym wdrożeniu system WMS nie rozmawia z Subiektem GT bezpośrednio. Zapisuje zadanie do kolejki w bazie danych, a osobny proces po stronie serwera Subiekta odbiera je i wykonuje przez Sferę, czyli interfejs programistyczny Subiekta GT. Z tej zasady wynikają trzy niezależne tory wymiany danych.

Opisujemy to na przykładzie systemu Studio WMS.net. Ogólną zasadę zapisu dokumentu do kolejki zamiast wysyłki wprost opisuje strona o integracji systemu magazynowego z ERP. Tutaj pokazujemy jej odmianę dla Subiekta GT: własne kolejki i różne drogi odczytu oraz zapisu.

Trzy tory zamiast jednego

Integracja ma trzy niezależne tory. Pierwszy przenosi dokumenty magazynowe z WMS do Subiekta. Drugi sprowadza z Subiekta do WMS dokumenty i stany. Trzeci wysyła z WMS do Subiekta kartoteki towarowe.

Każdy tor ma własną kolejkę i własne zadania w harmonogramie. Awaria jednego toru nie zatrzymuje pozostałych, więc kłopot z kartotekami nie wstrzymuje wysyłki dokumentów magazynowych.

Trzy tory integracji WMS z Subiektem GT
TorKierunekCo przesyła
Dokumenty magazynoweWMS do SubiektaDokumenty z kolejki nagłówków i pozycji
Import dokumentów i stanówSubiekt do WMSDokumenty i stany magazynowe odczytane z Subiekta do lustra w bazie WMS
Kartoteki towaroweWMS do SubiektaDodawanie i aktualizacja towarów z kolejki kartotek
Trzy tory integracji WMS z Subiektem GT Schemat: WMS zapisuje do kolejek w bazie, a proces po stronie Subiekta GT wykonuje zadania; poniżej trzy tory wymiany danych Trzy tory integracji WMS z Subiektem GTWMS zapisuje do kolejek w bazie, a wykonuje je osobny proces po stronie SubiektaSystem WMSDokumenty i kartotekitowarowe zapisują zadania dokolejek.Baza danych WMSKolejki wychodzące (nagłówki, pozycje,kartoteki) i lustro danych Subiekta.Usługa harmonogramuDziała poza serweremaplikacji. Uruchamia zadaniaintegracji.Subiekt GTZapis przez Sferę, nawolnym stanowiskulicencyjnym.Odczyt danych z Subiekta idzie przez SQL, bez SferyTrzy niezależne toryTorKierunekCo przesyłaDokumenty magazynoweWMS do SubiektaDokumenty z kolejki nagłówków i pozycji.Import z SubiektaSubiekt do WMSDokumenty i stany magazynowe odczytywane przez SQL do lustra w bazieWMSKartoteki towaroweWMS do SubiektaDodawanie i aktualizacja towarów z kolejki kartotekKolejki zamiast połączeniaWiersz kolejki ma znacznik przetwarzania: 0 czeka, 1 wysłano, -1 błąd. Treśćbłędu jest w kolumnie statusu.Tor kontrahentówWyłączony celowo. Kontrahenci nie należą do zakresu integracji, a ichpobieranie przez Sferę kończyło się błędami na nazwach ze znakami specjalnymi.
Trzy tory integracji: WMS zapisuje do kolejek w bazie, a zadania wykonuje osobny proces po stronie Subiekta GT.
WMS zapisuje zadanie do kolejki, a wykonuje je osobny proces po stronie Subiekta. Awaria jednego toru nie zatrzymuje pozostałych.

Zadania torów są osobne. Zadanie wysyłki kartotek jest aktywne w harmonogramie, a wieczorem osobna procedura kolejkuje kartoteki do wysłania. Pobieranie dokumentów z Subiekta to inne zadanie. Każdy tor można więc oceniać osobno, patrząc na jego kolejkę.

Niezależne znaczy tu: osobna kolejka i własne zadania w harmonogramie. Dokument magazynowy czeka na własną kolejkę, a nie na zakończenie importu stanów albo wysyłki kartotek. Przy każdej rozbieżności między programami pierwsze pytanie brzmi więc, którym torem dana informacja przechodzi.

Kolejka w bazie zamiast połączenia bezpośredniego

Zadania do wykonania leżą w tabelach kolejek w bazie danych WMS. Kolejki wychodzące służą do wysyłki do Subiekta, a tabele lustra są kopiami danych Subiekta odczytywanymi przez WMS. Obok nich są tabele sterujące, na przykład ponowień i wzorców błędów.

Kolejka dokumentów ma dwie tabele: nagłówki i pozycje. Pozycja wskazuje swój nagłówek przez identyfikator zewnętrzny, którym jest numer referencyjny dokumentu w WMS. W przykładzie dokument o numerze referencyjnym 1001 ma jeden nagłówek i dwie pozycje, a obie pozycje niosą identyfikator zewnętrzny 1001. Numer jest wymyślony.

Wiersz kolejki jest zamrożonym obrazem danych z chwili zapisu. Nie pokazuje bieżącego stanu kartoteki ani dokumentu, więc późniejsza zmiana w WMS nie poprawia wiersza, który już czeka w kolejce.

Zadania uruchamia usługa harmonogramu działająca poza serwerem aplikacji WMS. WMS przekazuje dane do Subiekta wyłącznie przez kolejki w bazie danych. Zadania wykonuje usługa harmonogramu, a WMS może dodatkowo uruchomić wybrane zadanie na żądanie. Samą usługę i wywołanie zadania z transakcji opisuje artykuł o usłudze harmonogramu zadań.

Odczyt przez SQL, zapis przez Sferę

Dane z Subiekta WMS odczytuje bezpośrednio z jego bazy SQL, z pominięciem Sfery. Odczyt nie zajmuje więc stanowiska licencyjnego. Zapis do Subiekta zawsze wymaga Sfery i wolnego stanowiska.

Skutek tej asymetrii jest taki, że wysyłka potrzebuje stanowiska licencyjnego i bywa wrażliwa na zajętą licencję. Zajęte stanowisko Sfery i przekroczony limit licencji należą do błędów, które integracja traktuje jako tymczasowe. Zasady ponawiania opisuje artykuł o klasyfikacji błędów i ponowieniach wysyłki.

Dokumenty i stany, które WMS odczytuje z bazy Subiekta, trafiają do lustra danych w bazie WMS. Stany magazynowe w samym programie opisuje strona o stanach magazynowych.

Znacznik przetwarzania w wierszu kolejki

Każdy wiersz kolejki ma znacznik przetwarzania. Wartość 0 oznacza oczekiwanie, 1 oznacza, że wiersz wysłano, a -1 oznacza błąd. Treść błędu trafia do kolumny statusu.

Wartości znacznika przetwarzania w wierszu kolejki
ZnacznikZnaczenieCo dzieje się z wierszem
0OczekiwanieWiersz czeka na wysyłkę do Subiekta
1WysłanoZadanie zostało wykonane po stronie Subiekta
-1BłądTreść błędu jest w kolumnie statusu

W przykładzie dokument WZ o numerze referencyjnym 1001 zapisuje się do kolejki ze znacznikiem 0. Gdy proces po stronie Subiekta wykona zadanie, znacznik zmienia się na 1. Gdyby wykonanie się nie powiodło, znacznik miałby wartość -1, a w kolumnie statusu pojawiłaby się treść błędu. Numer jest wymyślony.

Znacznik pokazuje w samej kolejce, które wiersze czekają, które wysłano i które zakończyły się błędem. Pięć zapytań, którymi tę kolejkę się diagnozuje, opisuje artykuł o diagnostyce kolejki integracji w T-SQL.

Dokumenty trafiające do tej kolejki powstają w procedurach eksportu, które opisuje artykuł o eksporcie dokumentów magazynowych do Subiekta GT. Rodzaje dokumentów, które WMS prowadzi, zestawia strona o dokumentach magazynowych.

Tor, który jest wyłączony celowo

Poza trzema opisanymi torami istnieje tor kontrahentów, ale jest wyłączony celowo. Kontrahenci nie należą do zakresu integracji, a pobieranie ich przez Sferę kończyło się błędami na nazwach ze znakami specjalnymi.

Wyłączony tor jest decyzją o zakresie, a nie usterką. Do Subiekta trafiają natomiast kartoteki towarowe, które obsługuje trzeci tor, a ich pola opisuje strona o kartotekach w systemie WMS.

Granica zakresu ma znaczenie przy planowaniu. Kto zamierza przenosić kontrahentów między programami, musi to uzgodnić poza torami opisanymi na tej stronie.

Pytania przed projektem integracji z Subiektem GT

Poniższe pytania nie są faktami o opisywanym wdrożeniu. Pomagają przygotować analizę przedwdrożeniową, którą opisuje artykuł o analizie przedwdrożeniowej WMS.

  • Zakres. Które dokumenty magazynowe mają trafiać do Subiekta, a które zostają tylko w WMS?
  • Kartoteki. Czy towary mają być zakładane w WMS i wysyłane do Subiekta, czy odwrotnie?
  • Licencje. Ile stanowisk Sfery będzie wolnych w porach wysyłki dokumentów?
  • Kontrahenci. Czy wystarczy numer kontrahenta w kartotece, czy trzeba przenosić całą kartotekę?

Granice tego opisu

Strona opisuje mechanizm, a nie wyniki. Nie podajemy liczby wierszy w kolejkach, dat ostatniego ruchu ani nazw obiektów w bazie. Nie twierdzimy też, że integracja działa bez awarii. Nie opisujemy bieżącego stanu poszczególnych torów w opisywanym wdrożeniu, tylko ich zasadę działania.

Zobacz Studio WMS.net na własnych danych

Demo działa w przeglądarce, bez instalacji i bez rejestracji. Wycena wdrożenia w jeden dzień roboczy.

Uruchom DEMO
Słownik

Słownik pojęć - integracja WMS z Subiektem GT

SG Sfera Subiekt GT
Interfejs programistyczny Subiekta GT. W opisywanym wdrożeniu zapis do Subiekta zawsze przechodzi przez Sferę i wymaga wolnego stanowiska licencyjnego.
KW Kolejka wysyłki
Tabele w bazie WMS, do których system zapisuje zadania dla Subiekta. Osobny proces odbiera je i wykonuje przez Sferę.
LD Lustro danych
Tabele w bazie WMS będące kopiami danych Subiekta. WMS odczytuje je i nie wysyła z nich nic do Subiekta.
TI Tor integracji
Niezależna droga wymiany danych z własną kolejką i własnymi zadaniami w harmonogramie. Awaria jednego toru nie zatrzymuje pozostałych.
UH Usługa harmonogramu zadań
Usługa działająca poza serwerem aplikacji WMS, która uruchamia zadania integracji. WMS może dodatkowo uruchomić wybrane zadanie na żądanie.
ZP Znacznik przetwarzania
Wartość w wierszu kolejki: 0 oznacza oczekiwanie, 1 wysłano, a -1 błąd. Treść błędu jest w kolumnie statusu.
IZ Identyfikator zewnętrzny
Pole, którym pozycja kolejki wskazuje swój nagłówek. Jest nim numer referencyjny dokumentu w WMS.

Pozostałe pojęcia z zakresu magazynu oraz znakowania jednostek zbiera słownik pojęć WMS.

FAQ

Najczęstsze pytania - integracja WMS z Subiektem GT

01

Czy WMS łączy się z Subiektem GT bezpośrednio?

Nie. WMS zapisuje zadanie do kolejki w bazie danych, a osobny proces po stronie serwera Subiekta odbiera je i wykonuje przez Sferę. Odczyt danych z Subiekta idzie inną drogą, bezpośrednio z jego bazy SQL.

02

Dlaczego integracja ma trzy osobne tory?

Każdy tor ma własną kolejkę i własne zadania w harmonogramie. Awaria jednego toru nie zatrzymuje więc pozostałych.

03

Do czego służy kolejka w bazie danych?

Czekają w niej zadania wysyłki z WMS do Subiekta. Wiersz niesie zamrożony obraz danych z chwili zapisu, a nie bieżący stan kartoteki czy dokumentu.

04

Dlaczego odczyt z Subiekta nie wymaga Sfery, a zapis wymaga?

Odczyt idzie bezpośrednio z bazy SQL Subiekta, z pominięciem Sfery, więc nie zajmuje stanowiska licencyjnego. Zapis zawsze wymaga Sfery i wolnego stanowiska, więc wysyłka go potrzebuje i bywa wrażliwa na zajętą licencję.

05

Co oznacza wartość -1 w wierszu kolejki?

Znacznik -1 oznacza błąd, a treść błędu trafia do kolumny statusu. Wartość 0 oznacza oczekiwanie, a 1 oznacza, że wiersz wysłano.

Chcesz zobaczyć Studio WMS.net w działaniu?

Uruchom bezpłatne demo systemu WMS.net lub zapytaj o szczegóły wdrożenia.

Bezpłatne DEMO Wycena