Baza wiedzy Studio VSS.net

Integracja awizacji dostaw z Comarch ERP XL i enova365

System awizacji pobiera z ERP zamówienia zakupu i oddaje dane o realizacji. Strona opisuje, jak wygląda ta wymiana w Comarch ERP XL i enova365, jakie mechanizmy chronią dane przy awarii łączności oraz które integracje są wdrożone, a które realizujemy jako projekt.

integracja awizacji Comarch ERP XL, enova365, integracja ERP, CDN_API, kolejka wymiany
Studio VSS.net - edycja awizacji z numerem dokumentu i numerem zamówienia
W skrócie

Z Comarch ERP XL wymieniamy dane przez API producenta (CDN_API), a odczytujemy je kontem bazy tylko do odczytu. Dla enova365 nie mamy gotowego konektora: wymianę budujemy na warstwie XML i REST, a zakres interfejsu po stronie enova ustala partner enova.

Numer zamówienia i dane kontrahenta powstają w ERP, więc awizacja nie powinna ich wpisywać od nowa. Informacja o faktycznym przebiegu rozładunku powstaje w systemie awizacji i musi wrócić do dokumentu przyjęcia. Integracja obejmuje oba kierunki.

Ogólny opis wymiany z ERP i WMS zawiera artykuł integracja ERP z systemem awizacji. Ta strona zawęża temat do Comarch ERP XL i enova365, a mechanizmy pokazuje na poziomie bazy danych.

Wymiana danych między ERP a systemem awizacjiTrzy pola w rzędzie: ERP, warstwa wymiany z tabelą wysyłkową i systemem ponawiania oraz Studio VSS.net, połączone strzałkami w obu kierunkach.STUDIO VSS.NETWymiana danych między ERP a systemem awizacjiERPzamówienia zakupukontrahenciasortymentdokumenty przyjęciaWarstwa wymianytabela wysyłkowaunikalny ID komunikatuponawianie wysyłkilog każdej wymianyStudio VSS.netawizacjeokna czasowestatusy obsługidane o realizacjidane z ERPwynik obsługidane z ERPwynik obsługi
Dane o dostawie płyną z ERP do awizacji, a wynik obsługi wraca w drugą stronę. Warstwa pośrednia trzyma komunikaty do czasu potwierdzenia przez odbiorcę.

Jakie dane wymieniają awizacja i ERP

Zakres wymiany ustala specyfikacja integracji. Poniższa tabela pokazuje typowy układ, który potwierdza się z działem logistyki i dostawcą ERP.

KierunekDaneZastosowanie w awizacji
ERP do VSS.netZamówienia zakupu: numer, kontrahent, asortyment, liczba paletAwizacja dostawy wypełnia się danymi zamówienia, a numer nie jest przepisywany ręcznie
ERP do VSS.netKartoteki kontrahentów i asortymentuSłowniki w portalu są zgodne z ERP
VSS.net do ERPPotwierdzenie realizacji: czasy obsługi i faktyczna liczba paletDokument przyjęcia otrzymuje dane o rzeczywistym przebiegu rozładunku
VSS.net do ERPZmiany statusów awizacjiPlanista widzi w ERP, na jakim etapie jest dostawa
Studio VSS.net

Numer dokumentu i numer zamówienia w awizacji

Zakładka Dane ewidencyjne zawiera numer dokumentu i numer zamówienia. W projekcie integracyjnym te pola wypełnia ERP, a nie użytkownik portalu.

Jeśli obiekt korzysta z własnego WMS, ta sama warstwa wymiany obsługuje przyjęcia. Opis połączenia z magazynem znajduje się w artykule jak VSS łączy się z WMS i ERP, a własny system magazynowy producenta to Studio WMS.net.

Które systemy ERP obsługujemy i w jakim stanie

Poniższa tabela rozróżnia integracje wdrożone od tych, które realizujemy jako projekt po analizie. Dla systemów bez gotowego konektora wskazuje, kto dostarcza interfejs.

SystemStanMechanizm wymianyInterfejs po stronie
SAP i SAP EWMWdrożonaREST API albo IDoc, opis na stronie o integracji z SAPSAP
Symfonia ERPWdrożonaTabela wysyłkowa i kolejka FIFOSymfonia
Comarch ERP XLRealizowana jako projektAPI producenta (CDN_API) do zapisu, konto tylko do odczytu do pobierania danychComarch
Comarch ERP OptimaZakres po analiziePlanowana przez Sferę, licencja Sfery po stronie klientaComarch
enova365Bez gotowego konektoraWarstwa XML i REST sterowana parametramiPartner enova
Dynamics 365Mechanizm opisany, wdrożenie jako projektDataverse Web API z uwierzytelnianiem aplikacyjnymMicrosoft

Doświadczenie wdrożeniowe deklarujemy tylko tam, gdzie istnieje zakończona integracja. Dla pozostałych systemów opisujemy mechanizm i przyjmujemy, że wiążący zakres powstaje po otrzymaniu dokumentacji interfejsu.

Comarch ERP XL - API producenta i licencje stanowiskowe

Zapis do Comarch ERP XL idzie wyłącznie przez API producenta. Dzięki temu numeracja dokumentów i walidacje ERP nie są omijane, a aktualizacja wersji XL nie psuje integracji. API działa na maszynie z systemem Windows, na której zainstalowano klienta XL, i zużywa licencję stanowiskową.

  • Zapis - dokumenty tworzone wyłącznie przez CDN_API, bez bezpośrednich instrukcji INSERT do tabel ERP.
  • Odczyt - zapytania SQL wykonywane kontem bazy z uprawnieniem tylko do odczytu.
  • Licencje - logowanie do ERP na czas jednej paczki dokumentów i wylogowanie po niej, co oszczędza współbieżne licencje XL.
  • Sieć - usługa działa w sieci klienta i nawiązuje wyłącznie połączenia wychodzące przez HTTPS, więc nie wymaga otwarcia portu z Internetu.

Brak publikowanego punktu dostępowego ma znaczenie przy wymaganiach dyrektywy NIS2. Licencje XL oraz prace po stronie dostawcy ERP leżą po stronie klienta, a dopóki dostawca nie udostępni dokumentacji interfejsu, szacunek czasu zawiera margines niepewności.

Dla Comarch ERP Optima wymianę planujemy przez Sferę. Licencję Sfery kupuje klient, a wariant Optimy w chmurze Comarch ma ograniczenia, które sprawdzamy w analizie.

Kolejka wymiany z ponawianiem i brak duplikatów

Połączenie z ERP bywa niedostępne, na przykład po restarcie usługi albo w oknie serwisowym. Komunikat do ERP nie może wtedy zniknąć ani zostać wysłany dwa razy. Rozwiązuje to tabela wysyłkowa, nazywana w literaturze wzorcem outbox.

Komunikat do ERP powstaje w tej samej transakcji co zmiana statusu awizacji. Bez tego awaria między zapisem a wysyłką zostawia status bez komunikatu albo komunikat bez statusu.

Każdy komunikat dostaje unikalny identyfikator, a proces wysyłający ponawia próbę do czasu potwierdzenia. Po wznowieniu łączności ERP nie tworzy drugiego dokumentu, bo rozpoznaje powtórzony identyfikator. Kilka procesów wysyłających może pracować równolegle, ponieważ każdy pobiera tylko wiersze, których nie zablokowała inna sesja.

Element kolejkiSQL Server (T-SQL)PostgreSQL (platforma GT)
Pobranie partiiUPDLOCK, READPAST pomijają wiersze zablokowane przez inne sesjeFOR UPDATE SKIP LOCKED robi to samo na poziomie wiersza
Indeks kolejkiIndeks filtrowany po statusie i priorytecieIndeks częściowy z warunkiem na status
Wybudzenie procesuOdpytywanie tabeli w stałym interwaleLISTEN/NOTIFY informuje proces o nowym wierszu
-- SQL Server (T-SQL): pobranie partii komunikatów do wysłania do ERP
SELECT TOP (50) Id, MessageId, Payload
FROM dbo.OutboxErp WITH (UPDLOCK, READPAST, ROWLOCK)
WHERE Status = 'oczekuje'
ORDER BY Priority DESC, Id;
-- PostgreSQL (platforma GT): ta sama operacja
SELECT id, message_id, payload
FROM outbox_erp
WHERE status = 'oczekuje'
ORDER BY priority DESC, id
LIMIT 50
FOR UPDATE SKIP LOCKED;

Oba zapytania są uproszczonym przykładem wzorca, a nazwy tabel mają charakter poglądowy. Działanie wskazówek blokad opisuje dokumentacja wskazówek tabelowych T-SQL oraz klauzula FOR UPDATE w PostgreSQL.

Na platformie StudioSystemGT kroki wymiany zapisuje się w silniku RunSteps jako pliki YAML, a zapytania jako wersjonowane codeSQL. Zmiana mapowania pola polega więc na podmianie pliku konfiguracji, bez restartu i bez okna serwisowego.

enova365 - warstwa XML i REST

Dla enova365 nie mamy gotowego konektora. Wymianę budujemy na warstwie XML i REST, którą steruje się parametrami: nowa integracja oznacza nowy wiersz konfiguracji, a nie nowy kod. Każde wywołanie zapisuje się w pełnym logu wymiany, dzięki czemu błąd mapowania da się odtworzyć.

Zakres interfejsu enova365 oraz ewentualne moduły dodatkowe ustala partner enova. Do projektu potrzebujemy od niego opisu dostępnych metod i konta w środowisku testowym.

Studio VSS.net

Kartoteka kontrahentów synchronizowana z ERP

Lista kontrahentów w kartotekach portalu. W projekcie integracyjnym kod i nazwa kontrahenta pochodzą z ERP, więc kartoteka nie rozchodzi się z systemem finansowym.

Microsoft Dynamics 365 i Dataverse

Dla Dynamics 365 przewidujemy wymianę przez Dataverse Web API z uwierzytelnianiem aplikacyjnym w Microsoft Entra ID. Integracja działa wtedy bez konta interaktywnego, a uprawnienia nadaje się aplikacji, nie osobie. Specyfikację interfejsu opisuje dokumentacja Dataverse Web API.

To opis mechanizmu, a nie zapowiedź gotowego produktu. Wdrożenie przebiega jako osobny projekt, który zaczyna się od specyfikacji.

Przebieg i koszt projektu integracyjnego

Projekt zaczyna się od specyfikacji technicznej z mapowaniem pól. Dopiero po niej zespół otrzymuje dokumentację interfejsu i dostęp do środowiska testowego, więc czas całości zależy od dostawcy ERP.

Etapy integracji z systemem ERPOś z pięcioma etapami projektu integracyjnego: specyfikacja, dokumentacja interfejsu, środowisko testowe, testy w obu kierunkach i uruchomienie produkcyjne.PROJEKT INTEGRACYJNYEtapy integracji z systemem ERP1Specyfikacja16-24 godziny,mapowanie pól2Dokumentacjainterfejs oddostawcy ERP3Środowiskotestowe kontoi dane próbne4Testywymiana w obukierunkach5Uruchomienieprodukcjaz logiem wymiany
Czas projektu zależy głównie od tego, kiedy dostawca ERP udostępni dokumentację i środowisko testowe. W harmonogramie wdrożenia YMS na integracje przewidujemy jeden do dwóch tygodni.

Orientacyjną pracochłonność integracji z ERP, systemem finansowo-księgowym i SAP podaje cennik systemu awizacji. Miejsce integracji w całym wdrożeniu opisuje artykuł o wdrożeniu systemu awizacji etapami, a wymagania infrastrukturalne strona o wymaganiach technicznych.

Omów integrację z własnym systemem ERP

Opisz system ERP i zakres wymiany. Przygotujemy specyfikację integracji albo pokażemy w DEMO, jak awizacja wygląda po stronie portalu.

FAQ

Najczęstsze pytania o integrację z Comarch ERP XL i enova365

01

Czy integracja z Comarch ERP XL wymaga zmian w samym ERP?

Nie wymaga modyfikacji kodu XL. Zapis idzie przez API producenta, a odczyt kontem bazy tylko do odczytu. Po stronie klienta potrzebna jest maszyna z klientem XL i licencja stanowiskowa, bo CDN_API zużywa jedną licencję na czas logowania.

02

Czy integracja wymaga otwarcia portu z Internetu do sieci firmy?

Nie. Usługa pracuje w sieci klienta i nawiązuje wyłącznie połączenia wychodzące przez HTTPS, więc sieć firmowa nie publikuje punktu dostępowego.

03

Co dzieje się z komunikatami, gdy ERP jest niedostępny?

Czekają w tabeli wysyłkowej, a proces wysyłający ponawia próbę. Unikalny identyfikator komunikatu sprawia, że po wznowieniu łączności ERP nie tworzy duplikatu dokumentu.

04

Czy macie gotową integrację z enova365?

Nie mamy gotowego konektora. Wymiana opiera się na warstwie XML i REST sterowanej parametrami, a zakres interfejsu enova365 i ewentualne moduły dodatkowe ustala partner enova.

05

Ile trwa integracja z systemem ERP?

Specyfikacja techniczna zajmuje 16-24 godziny. W harmonogramie wdrożenia YMS na integracje przewidujemy jeden do dwóch tygodni, a ostateczny czas zależy od momentu, w którym dostawca ERP udostępni dokumentację interfejsu.

Słownik pojęć

Słownik pojęć - integracja awizacji z ERP

Pojęcia techniczne używane przy wymianie danych między systemem awizacji a ERP.

CCDN_API
Interfejs programistyczny Comarch ERP XL, przez który zapisuje się dokumenty bez omijania numeracji i walidacji ERP.
OOutbox (tabela wysyłkowa)
Tabela, w której komunikat do systemu zewnętrznego zapisuje się w tej samej transakcji co zmiana danych, a wysyła osobny proces.
IIdentyfikator komunikatu
Unikalny numer wiadomości, dzięki któremu odbiorca rozpoznaje powtórzenie i nie tworzy duplikatu dokumentu.
SSKIP LOCKED
Klauzula PostgreSQL pomijająca wiersze zablokowane przez inne sesje, co pozwala kilku procesom pobierać różne wiersze kolejki.
LLicencja stanowiskowa
Licencja ERP przypisana do jednoczesnej sesji; integracja loguje się na czas paczki dokumentów i wylogowuje po niej.
SSfera
Interfejs programistyczny Comarch ERP Optima, wymagający licencji po stronie klienta.
DDataverse Web API
Interfejs REST platformy Dataverse, używany przez Dynamics 365 do odczytu i zapisu danych.
MMicrosoft Entra ID
Usługa tożsamości Microsoft, w której aplikacja integracyjna uwierzytelnia się bez udziału użytkownika interaktywnego.

Zobacz pełny słownik pojęć awizacji i YMS