VSS łączy się z WMS i ERP przez interfejsy wymiany danych typu API lub webservice. Zatwierdzona awizacja staje się zadaniem przyjęcia w magazynie i jest zestawiana z zamówieniem zakupu zapisanym w ERP. Dane wprowadzone raz przy rejestracji awizacji służą potem na placu oraz przy księgowaniu dostawy.
Spis treści
- Podział ról między trzema systemami
- Kierunek przepływu danych
- Zadanie przyjęcia z awizacji
- Weryfikacja zamówienia w ERP
- Rozbieżność między dostawą a zamówieniem
- Wymagania techniczne wdrożenia
- Dlaczego dane wracają do ERP dopiero po przyjęciu
- Korzyści dla planowania pracy magazynu
- Pytania i odpowiedzi o integrację VSS z WMS i ERP
- Glosariusz pojęć związanych z integracją VSS, WMS i ERP
Podział ról między trzema systemami
Żaden z systemów nie powiela funkcji pozostałych. ERP przechowuje zamówienia oraz rozliczenia z dostawcą. VSS zarządza harmonogramem dostaw oraz ruchem pojazdów na placu. WMS obsługuje fizyczne przemieszczanie towaru wewnątrz magazynu.
Integracja nie polega więc na kopiowaniu całych baz. Przekazywany jest ściśle określony zestaw informacji w chwili, gdy potrzebuje go następne ogniwo procesu. Poniższa tabela pokazuje, gdzie odbywa się każdy etap i co zostaje przekazane dalej.
| Etap | System | Dane wejściowe | Dane przekazywane dalej |
|---|---|---|---|
| Awizacja dostawy | Studio VSS.net | numer zamówienia z ERP, planowany termin, dane przewoźnika, lista pozycji | numer awizacji, okno czasowe, dane pojazdu i kierowcy - do WMS |
| Wjazd na plac | Studio VSS.net | tożsamość kierowcy, numer rejestracyjny, rzeczywista godzina przyjazdu | status pojazdu i przypisanie do bramy lub doku - do WMS |
| Przyjęcie towaru | Studio WMS.net | zadanie przyjęcia z awizacji, lista oczekiwanych pozycji, miejsce rozładunku | faktyczne ilości, numery partii i rozbieżności - do ERP |
| Księgowanie dostawy | ERP | potwierdzone dane przyjęcia powiązane z zamówieniem | dokument przyjęcia, stany magazynowe i zobowiązania wobec dostawcy |
Reguła: każdy system jest źródłem prawdy dla własnych danych. Zamówienie zmienia się wyłącznie w ERP, termin dostawy w VSS, a ilość przyjętą potwierdza WMS. Ręczna poprawka tej samej wartości w dwóch miejscach kończy się rozjazdem.
Kierunek przepływu danych
Zamówienie zakupu w ERP jest punktem odniesienia dla awizacji. VSS odczytuje je, gdy przewoźnik zakłada zgłoszenie i wskazuje numer zamówienia. System sam uzupełnia nazwę dostawcy oraz listę zamówionych pozycji.
Zatwierdzona awizacja trafia do WMS w chwili, gdy pojazd zostaje potwierdzony w harmonogramie. Magazyn przygotowuje się do rozładunku jeszcze przed przyjazdem ciężarówki. Potwierdzone przyjęcie wraca do ERP, gdzie aktualizuje stan i staje się podstawą dokumentu księgowego.
Zadanie przyjęcia z awizacji
Zadanie powstaje w chwili zatwierdzenia awizacji, bez ręcznego zakładania przez pracownika. Mechanizm działa jak zdarzenie wyzwalające. Zatwierdzenie terminu w harmonogramie VSS uruchamia w tle zapytanie do WMS, które tworzy rekord powiązany z konkretną awizacją. W Studio WMS.net odpowiada mu zlecenie przyjęcia ZPZ, na podstawie którego powstaje dokument PZ.
Magazynier otwiera listę przyjęć na dany dzień i widzi gotowe zadanie, zanim pojazd dotrze do bramy. Zamknięcie przyjęcia opisuje strona o przyjęciu towaru do magazynu, a komplet dokumentów opisują dokumenty magazynowe.
Dane przekazywane z awizacji
Do zadania trafia komplet informacji zapisanych w VSS. Są to wartości oczekiwane, względem których magazyn porówna to, co faktycznie zostanie rozładowane.
- Zamówienie. Numer zamówienia zakupu oraz nazwa i dane dostawcy.
- Pozycje. Asortyment z zamówionymi ilościami i jednostkami miary.
- Pojazd. Numer rejestracyjny i dane kierowcy.
- Termin. Planowana data i godzina oraz numer dokumentu przewozowego, jeśli wpisał go przewoźnik.
Miejsce rozładunku i zasoby z wyprzedzeniem
Ponieważ zadanie istnieje przed przyjazdem, WMS może przypisać dok lub bramę. Bierze pod uwagę rodzaj towaru i obciążenie stanowisk w danym przedziale. Tą samą logiką rezerwuje wózek oraz skaner kodów kreskowych, a także strefę odkładczą.
Personel nie improwizuje w chwili przyjazdu, bo dok jest już przypisany. Ryzyko skierowania dwóch dostaw do tego samego doku w tym samym czasie maleje, ponieważ WMS widzi zajęte terminy przy tworzeniu kolejnych zadań. Rozładunek potwierdza się skanerem, jak opisuje strona o aplikacji WMS na Androida.
Weryfikacja zamówienia w ERP
System sprawdza zgodność awizacji z zamówieniem już przy rejestracji. Porównuje numer wskazany przez dostawcę z danymi w ERP. Pierwszy test dotyczy istnienia zamówienia i jego przypisania do dostawcy. Drugi sprawdza status, bo zamówienie zrealizowane lub anulowane nie przyjmuje kolejnych dostaw.
Gdy warunki są spełnione, VSS pobiera listę pozycji z ilościami i uzupełnia formularz. Osoba rejestrująca wpisuje mniej danych. Próba awizowania pod nieistniejącym numerem kończy się odrzuceniem, zanim pojazd wyruszy w trasę.
Jedno zamówienie może mieć kilka awizacji, jeśli dostawca wysyła towar w partiach. System śledzi, jaka część została awizowana. Poniższe zapytanie ilustruje to na przykładowych tabelach i nie pokazuje kodu produktu.
SELECT z.NumerZamowienia, z.IndeksId, z.IloscZamowiona,
ISNULL(SUM(a.IloscAwizowana), 0) AS Awizowano,
z.IloscZamowiona - ISNULL(SUM(a.IloscAwizowana), 0) AS PozostaloDoAwizacji
FROM dbo.ZamowieniaZakupuPozycje AS z
LEFT JOIN dbo.AwizacjePozycje AS a
ON a.NumerZamowienia = z.NumerZamowienia AND a.IndeksId = z.IndeksId
WHERE z.NumerZamowienia = @NumerZamowienia
GROUP BY z.NumerZamowienia, z.IndeksId, z.IloscZamowiona;
Powiązanie awizacji z zamówieniem zabezpiecza w bazie klucz obcy, który nie pozwala zapisać pozycji awizacji dla nieistniejącego zamówienia. Zasady tworzenia takich relacji opisuje dokumentacja kluczy obcych w SQL Server.
Rozbieżność między dostawą a zamówieniem
Gdy ilość awizowana albo dostarczona różni się od zamówienia, system oznacza pozycję jako rozbieżność i wstrzymuje automatyczne zatwierdzenie. Decyzję podejmuje osoba odpowiedzialna za przyjęcia lub za zakupy. Różnica zostaje zapisana z dokładną wartością oczekiwaną i rzeczywistą.
| Rodzaj rozbieżności | Przykład | Reakcja systemu |
|---|---|---|
| Ilościowa | mniej palet, niż wynika z zamówienia | zapis różnicy i wstrzymanie zatwierdzenia |
| Asortymentowa | inny towar niż pozycja zamówienia | sygnał niezgodności do ręcznej weryfikacji przed zamknięciem przyjęcia |
Magazyn może przyjąć towar warunkowo z odnotowaną rozbieżnością. Pojazd zostaje rozładowany i nie blokuje rampy. Informacja trafia do ERP razem z danymi przyjęcia, a dział zakupów korzysta z niej przy korekcie zamówienia lub reklamacji. Odnotowanie rozbieżności następuje tam, gdzie powstała, czyli przy fizycznym przyjęciu.
Wymagania techniczne wdrożenia
API albo webservice wymieniają dane w czasie zbliżonym do rzeczywistego. Alternatywą jest nocny transfer plików, który działa wolniej. Warunkiem jest udostępnienie przez ERP punktów dostępowych do danych zamówień oraz uzgodnienie formatu wymiany, co zwykle ustala się w analizie przedwdrożeniowej z dostawcą ERP.
Po stronie VSS i WMS konfiguruje się reguły mapowania pól. Wskazują one, które dane zamówienia ERP odpowiadają polom formularza awizacji i zadania przyjęcia. Poniższa tabela jest przykładem ilustracyjnym, a rzeczywiste nazwy pól zależą od wdrożenia.
| Pole w ERP | Pole w awizacji VSS | Pole w zadaniu WMS |
|---|---|---|
| numer zamówienia zakupu | numer zamówienia | dokument źródłowy |
| kod dostawcy | przewoźnik lub dostawca | kontrahent |
| indeks towaru | pozycja awizacji | asortyment pozycji przyjęcia |
| ilość zamówiona | ilość awizowana | ilość oczekiwana |
Niedostępność systemu i ponowienie wysyłki
Wywołanie interfejsu może się nie udać, gdy ERP jest chwilowo niedostępny. Zapis przyjęcia i wpis do dziennika integracji powinny wejść do jednej transakcji. Błąd zostaje zatrzymany i zapisany, a komunikat czeka w kolejce na ponowienie, więc nie ginie przy awarii łącza. Zakres obsługi takich sytuacji ustala się na etapie wdrożenia.
BEGIN TRY
BEGIN TRAN;
INSERT dbo.PrzyjeciaZAwizacji (AwizacjaId, IndeksId, IloscPrzyjeta)
VALUES (@AwizacjaId, @IndeksId, @IloscPrzyjeta);
UPDATE dbo.DziennikIntegracji SET Status = 'Wyslano' WHERE KomunikatId = @KomunikatId;
COMMIT;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK;
UPDATE dbo.DziennikIntegracji
SET Status = 'Blad', Komunikat = ERROR_MESSAGE(), LiczbaProb = LiczbaProb + 1
WHERE KomunikatId = @KomunikatId;
END CATCH;
Przykład jest ilustracyjny. Blok TRY...CATCH wycofuje transakcję i zapisuje przyczynę oraz licznik prób, które wykorzysta mechanizm ponawiania. Składnię opisuje dokumentacja TRY...CATCH w T-SQL.
Dlaczego dane wracają do ERP dopiero po przyjęciu
Księgowanie na podstawie samej awizacji byłoby przedwczesne, bo awizacja jest zapowiedzią, a nie faktem. Dopiero potwierdzone przyjęcie w WMS zawiera ilości, które fizycznie trafiły na stan. Dlatego ERP dostaje je po zakończeniu rozładunku, razem z numerami partii.
Taka kolejność zapobiega sytuacji, w której dokument finansowy powstaje dla towaru, który nie dojechał albo przyjechał w innej ilości. Rozbieżności są wtedy znane przed zaksięgowaniem zobowiązania wobec dostawcy. Dla działu zakupów oznacza to mniej korekt i mniej wyjaśnień po fakcie.
Korzyści dla planowania pracy magazynu
Zbiorczy harmonogram potwierdzonych dostaw pokazuje, ilu pracowników potrzeba w poszczególnych godzinach. Obsada rozkłada się równomiernie na całą zmianę. Znany rodzaj i ilość towaru pozwalają zawczasu przydzielić wózki widłowe i skanery.
Dane z ERP o terminach realizacji zamówień można uwzględnić już przy proponowaniu przewoźnikowi okien w VSS. Dwie duże dostawy rzadziej trafiają na tę samą godzinę. Historia przyjęć zestawiona z zamówieniami pokazuje sezonowość dostaw, co pomaga planować urlopy i pracowników tymczasowych. Model okien opisuje strona o awizacji dostaw i oknach czasowych transportu, a eliminację kolejek opisuje artykuł o systemie VSS i kolejkach na placu.
Połączenie z konkretnymi systemami księgowymi opisują strony o integracji Symfonii z WMS i o integracji z SAP.
Pytania i odpowiedzi o integrację VSS z WMS i ERP
Przez interfejsy typu API lub webservice, które przekazują dane w czasie zbliżonym do rzeczywistego. Nie wymaga to ręcznego eksportowania i importowania plików. Alternatywny nocny transfer plików jest wolniejszy i bardziej podatny na błędy.
Zatwierdzenie uruchamia zdarzenie, które w WMS tworzy zadanie przyjęcia powiązane z awizacją. Magazynier widzi je na liście przyjęć, zanim pojazd dojedzie do bramy. Z zadania powstaje potem dokument przyjęcia.
Tak, już przy rejestracji awizacji. Sprawdza, czy zamówienie istnieje w ERP, czy należy do danego dostawcy i czy nie zostało zrealizowane albo anulowane. Przy zgodności pobiera z ERP listę pozycji i ilości.
Oznacza pozycję jako rozbieżność i wstrzymuje jej automatyczne zatwierdzenie. Magazyn może przyjąć towar warunkowo, a informacja o różnicy trafia do ERP. Dział zakupów korzysta z niej przy korekcie zamówienia albo reklamacji.
Punkty dostępowe do danych zamówień po stronie ERP, format wymiany i reguły mapowania pól. Zwykle ustala się je w analizie przedwdrożeniowej wspólnie z dostawcą ERP. Dopiero potem proces działa w tle bez udziału użytkowników.
Glosariusz pojęć związanych z integracją VSS, WMS i ERP
- API
- Interfejs programistyczny, przez który jeden system udostępnia innemu dane i funkcje w ustalonym formacie.
- Webservice
- Usługa udostępniana przez sieć, którą system wywołuje, aby przekazać lub odebrać dane w uzgodnionym formacie.
- ERP
- System klasy ERP, w którym przechowywane są zamówienia, dokumenty finansowe i rozliczenia z dostawcami.
- Zlecenie przyjęcia ZPZ
- Dokument w Studio WMS.net zapowiadający przyjęcie towaru, na podstawie którego powstaje dokument PZ.
- Mapowanie pól
- Reguły wskazujące, które pole jednego systemu odpowiada polu w drugim.
- Rozbieżność
- Różnica między ilością albo asortymentem oczekiwanym a faktycznie dostarczonym.
- Dziennik integracji
- Tabela zapisująca komunikaty wymieniane między systemami wraz ze statusem i liczbą prób.
- Przyjęcie warunkowe
- Przyjęcie towaru z odnotowaną rozbieżnością, które nie blokuje rozładunku pojazdu.