Awizacja dostawy jako plan dostaw dnia

Pojedyncza awizacja dostawy informuje magazyn, że konkretny pojazd przywiezie konkretny towar w określonym oknie czasowym. Dopiero zbiór wszystkich awizacji na jeden dzień tworzy plan, z którego korzysta kierownik przyjęć. Widzi w nim, ile pojazdów wjedzie w każdej godzinie i kiedy zbiegną się szczyty obłożenia.

Tradycyjny sposób oparty na telefonie i e-mailu do portierni nie daje takiego obrazu. Informacje rozsypują się po skrzynkach i notatkach, a kolizje wychodzą dopiero wtedy, gdy trzy pojazdy stoją przy jednej bramie. System awizacji dostaw zbiera zgłoszenia w jednej bazie i przydziela każdemu slot z puli okien czasowych.

Ten tekst skupia się na planowaniu: jak z zatwierdzonych zgłoszeń zbudować harmonogram dostaw i jak go pilnować w ciągu zmiany. Sam moment wjazdu i obsługę kierowcy opisuje artykuł o awizacji kierowcy, a przyjęcie towaru po rozładunku - strona o awizacjach dostaw do magazynu.

Dane z awizacjiDecyzja w planie dniaKto z niej korzysta
okno czasowe i ramparezerwacja slotu, kontrola kolizji z innymi dostawamiplanista przyjęć
liczba jednostek i typ nośnikadługość okna, wybór sprzętu do rozładunkubrygadzista przyjęć
numer zamówienia zakupukontrola dostawcy i ilości przed przyjazdemdział zakupów
numer rejestracyjny i kierowcalista oczekiwanych pojazdów przy bramieportiernia

Reguła: plan dnia jest poprawny wtedy, gdy w żadnej godzinie suma czasu obsługi zgłoszonych dostaw nie przekracza zdolności przeładunkowej danej rampy.

Zasada wygląda banalnie, ale jej egzekwowanie wymaga danych. Potrzebna jest liczba ramp dostępnych jednocześnie oraz czas rozładunku dla każdego typu dostawy. Kolejne sekcje pokazują, skąd te dane pochodzą i jak system z nich korzysta.

Zgodność awizacji z zamówieniem zakupu

Awizacja bez odniesienia do zamówienia to anonimowa wizyta pojazdu. Magazyn wie, że ktoś przyjedzie, ale nie wie, czego ma oczekiwać ani czy towar jest w ogóle zamówiony. Zgłoszenie powinno wskazywać numer zamówienia zakupu, a system sprawdza je względem danych z ERP.

W VSS.net integracja z ERP przebiega przez REST API albo pliki EDI. System pobiera zamówienia zakupu i tworzy z nich propozycje awizacji, które dostawca potwierdza w portalu przeglądarkowym. Taki układ ogranicza ręczne przepisywanie i od razu wiąże wizytę z konkretną pozycją zamówienia.

Kontrole przed zatwierdzeniem

Zatwierdzenie awizacji może być poprzedzone kilkoma sprawdzeniami. Każde z nich odpowiada na inny typ błędu, który w przeciwnym razie wyszedłby dopiero przy rampie.

KontrolaWarunek zgodnościSkutek przy niezgodności
dostawcanadawca zgłoszenia jest dostawcą z zamówieniaawizacja zostaje w buforze do decyzji planisty
pozycjezgłoszone indeksy występują w zamówieniupozycja obca jest oznaczana do wyjaśnienia
ilośćsuma awizacji nie przekracza ilości pozostałej do dostawynadwyżka wymaga akceptacji zakupów
termindata okna mieści się w terminie dostawy z zamówieniaostrzeżenie o dostawie przed terminem lub po nim

Kontrolę ilości najłatwiej zrozumieć na zapytaniu. Poniższy przykład zestawia ilość pozostałą do dostarczenia z sumą zgłoszoną w awizacjach, które są w buforze lub zatwierdzone. Nazwy tabel są umowne i nie odpowiadają schematowi produktu.

SELECT p.NrZamowienia,
       p.Indeks,
       p.IloscZamowiona - p.IloscPrzyjeta AS Pozostalo,
       SUM(pa.Ilosc)                      AS Awizowano
FROM dbo.PozycjaZamowienia AS p
JOIN dbo.PozycjaAwizacji   AS pa ON pa.PozycjaZamowieniaId = p.Id
JOIN dbo.Awizacja          AS a  ON a.Id = pa.AwizacjaId
                                AND a.Ach IN ('0', '1')   -- bufor lub zatwierdzona
GROUP BY p.NrZamowienia, p.Indeks, p.IloscZamowiona, p.IloscPrzyjeta
HAVING SUM(pa.Ilosc) > p.IloscZamowiona - p.IloscPrzyjeta;

Wynik zawiera wyłącznie pozycje, w których dostawcy zgłosili więcej, niż zamówiono. Kolumna Ach przechowuje status rekordu: 0 oznacza bufor, 1 zatwierdzenie, a anulowanie zapisuje się jako X. Składnię grupowania i filtrowania po agregacie opisuje dokumentacja GROUP BY w Microsoft Learn.

Obłożenie ramp i długość okna czasowego

Liczba zgłoszeń w godzinie nie mówi jeszcze, czy rampa da radę. Dwie dostawy po dwie palety zajmują rampę krócej niż jedna dostawa drobnicy w kartonach. Plan opiera się na czasie obsługi, a nie na liczbie pojazdów.

Prosty model liczy czas okna jako sumę części stałej i części zależnej od ładunku. Część stała obejmuje dokowanie i formalności, a część zmienna wynika z liczby jednostek pomnożonej przez czas obsługi jednej jednostki. Oba parametry wyznacza się z historii wizyt. Przykładowo dla założenia 10 minut stałych i 2 minut na paletę okno dla 24 palet trwa 58 minut, ale te wartości są ilustracją, nie normą.

Ilustracja obliczania przewidywanego czasu trwania załadunku i wyładunku przy planowaniu okien czasowych
Czas okna zależy od typu ładunku - to parametr, który planista dopasowuje do danych z historii przyjęć

Parametry jednostkowe wylicza się z historii przyjęć. Poniższe zapytanie liczy średni czas rozładunku przypadający na jedną paletę, z pominięciem wizyt bez pomiaru. Funkcję różnicy czasu opisuje dokumentacja DATEDIFF.

SELECT AVG(DATEDIFF(MINUTE, a.RozladunekOd, a.RozladunekDo) * 1.0
           / NULLIF(a.LiczbaPalet, 0)) AS MinutNaPalete
FROM dbo.Awizacja AS a
WHERE a.RozladunekDo IS NOT NULL
  AND a.TypDostawy = 'paleta';

Poza rampą planista musi uwzględnić zasoby, które ograniczają przepustowość niezależnie od liczby bram. Zestawienie poniżej pokazuje cztery takie ograniczenia.

ZasóbOgraniczenieWpływ na plan dnia
rampyliczba bram obsługiwanych równoleglegórna granica liczby okien w tej samej godzinie
obsada wózkówliczba operatorów na zmianieskraca lub wydłuża czas rozładunku
strefa przyrampowamiejsce odkładcze na rozładowane paletyblokuje kolejne okno, gdy brakuje miejsca
kontrola przyjęcialiczba stanowisk weryfikacji jakościtworzy kolejkę za rampą, nawet gdy rampa jest wolna

Ostatni wiersz bywa pomijany. Rampa bywa wolna, choć towar nadal stoi, bo kontrola jakości nie nadąża. Wtedy zwiększanie liczby okien pogarsza sytuację zamiast ją poprawiać.

Kontrola obłożenia w bazie danych

Harmonogram ma sens tylko wtedy, gdy system odrzuca rezerwację, która przekroczyłaby limit. Sprawdzenie musi być wykonane w tej samej transakcji, w której powstaje rekord awizacji. W przeciwnym razie dwaj przewoźnicy zajmą ostatni slot w tej samej sekundzie.

Do podglądu obłożenia wystarczy zapytanie agregujące po godzinach. Przykład poniżej sumuje palety w godzinach wybranego dnia i wskazuje te, w których przekroczono przykładowy limit.

DECLARE @dzien DATE = '2026-10-05';

SELECT DATEPART(HOUR, a.OknoOd) AS Godzina,
       COUNT(*)                 AS Awizacje,
       SUM(a.LiczbaPalet)       AS Palety
FROM dbo.Awizacja AS a
WHERE a.OknoOd >= @dzien
  AND a.OknoOd <  DATEADD(DAY, 1, @dzien)
  AND a.Ach IN ('0', '1')
GROUP BY DATEPART(HOUR, a.OknoOd)
HAVING SUM(a.LiczbaPalet) > 60      -- limit palet na godzinę, wartość przykładowa
ORDER BY Godzina;

Podgląd nie chroni jednak przed wyścigiem. Przy zapisie nowej awizacji trzeba zablokować wiersz okna, odczytać wolną pojemność i dopiero wtedy wstawić rekord. Służy do tego blokada aktualizacji z wymuszonym poziomem serializacji. Sposób działania poziomów izolacji opisuje dokumentacja SET TRANSACTION ISOLATION LEVEL.

BEGIN TRAN;

DECLARE @wolne INT;
SELECT @wolne = o.Pojemnosc - o.Zajete
FROM dbo.OknoCzasowe AS o WITH (UPDLOCK, HOLDLOCK)
WHERE o.Id = @oknoId;

IF @wolne >= @liczbaPalet
BEGIN
    UPDATE dbo.OknoCzasowe SET Zajete = Zajete + @liczbaPalet WHERE Id = @oknoId;
    INSERT dbo.Awizacja (OknoId, LiczbaPalet, Ach) VALUES (@oknoId, @liczbaPalet, '0');
    COMMIT;
END
ELSE
    ROLLBACK;

Reguła: sprawdzenie wolnej pojemności i zapis rezerwacji należą do jednej transakcji, a wiersz okna jest zablokowany do jej zakończenia.

Klient, któremu zabrakło miejsca w wybranym oknie, otrzymuje propozycję najbliższego wolnego terminu zamiast odmowy. Dzięki temu liczba pojazdów oczekujących jednocześnie przy bramie zostaje ograniczona z góry, a nie dopiero po wjeździe na plac.

Rozkład dostaw w ciągu zmiany

Bez awizacji przewoźnicy przyjeżdżają według własnych grafików. Rampa stoi wtedy pusta o siódmej rano, a o dziesiątej zbiera się kolejka pojazdów. Limit pojemności okien wymusza równomierne rozłożenie ruchu, bo nadmiar zgłoszeń w szczycie dostaje propozycję najbliższego wolnego terminu poza nim.

Planista nie musi jednak czekać na skargi kierowców. Wystarczy przejrzeć wykres obłożenia z poprzednich tygodni i rozpoznać powtarzalne wzorce. Poniższa tabela zestawia cztery najczęstsze z nich razem z reakcją, która zwykle przynosi efekt.

Wzorzec obciążeniaObjaw na placuReakcja planisty
szczyt porannykolejka pojazdów przed bramą od otwarcia magazynuobniżenie pojemności okien w pierwszych godzinach zmiany
pusta rampa po południuniewykorzystany zespół przyjęćzachęcanie dostawców do rezerwacji późniejszych okien
skupienie jednego dostawcykilka pojazdów tej samej firmy w jednej godzinielimit okien na dostawcę w godzinie
dostawy tuż przed końcem zmianytowar czeka w strefie przyjęć do następnego dniawcześniejsze zamykanie ostatnich okien

Ostatni wzorzec ma poważne skutki księgowe. Towar, który stoi w strefie przyjęć bez przyjęcia dokumentem, nie istnieje w stanach magazynowych, więc sprzedaż nie może go zarezerwować. Z tego powodu okna kończące się tuż przed zamknięciem zmiany powinny mieć zapas czasu na pełne przyjęcie, a nie tylko na rozładunek. Zasady przyjęcia i dokumenty opisuje tekst o przyjęciu towaru do magazynu.

Dostawy stałe i cykliczne

Część dostaw powtarza się co tydzień o tej samej porze: linie produkcyjne dostają komponenty według grafiku, a sklepy uzupełnienia według stałych tras. Dla takich przewoźników nie ma sensu rezerwowanie okna od zera. Kalendarz awizacji pozwala ustawić rezerwację cykliczną w wybranym interwale, co opisuje artykuł o aplikacji kalendarz do awizacji dostaw.

Zapis cykliczny zmniejsza ryzyko pomyłki, ale wymaga dyscypliny w utrzymaniu. Dostawca, który zmienił trasę, musi zmienić serię, a nie pojedyncze wystąpienie. Ogólną logikę rezerwacji slotów porządkuje strona o slotach czasowych w logistyce.

Rezerwa pojemności i dostawy nieawizowane

Nawet najlepiej zaprojektowany harmonogram spotyka się z kierowcami, którzy przyjeżdżają bez zgłoszenia. Jeśli okna są zapełnione w stu procentach, taki pojazd wywraca cały plan. Rozsądne rozwiązanie zostawia w dobowej pojemności niewielką rezerwę na dostawy nieawizowane i pilne.

Sposób postępowania z takimi transportami zależy od polityki magazynu: można je przyjmować w wolnych oknach albo obsługiwać po zakończeniu awizowanych. Część magazynów odsyła takie pojazdy. Pełniejszy opis tego przypadku znajduje się w artykule o transporcie nieawizowanym.

  • Rezerwa dobowa - część pojemności ramp, której nie da się zarezerwować z portalu, dostępna dla dyspozytora.
  • Priorytet - oznaczenie dostaw, które wyprzedzają inne przy konflikcie, na przykład komponentów dla linii produkcyjnej.
  • Tolerancja spóźnienia - liczba minut, po których awizacja traci rezerwację i wraca do puli.
  • Limit przesunięć - maksymalna liczba zmian terminu, jakie przewoźnik może zrobić samodzielnie.

Każdy z tych parametrów jest wartością konfiguracyjną, więc kierownik przyjęć może je korygować po analizie tygodni pracy, zamiast zmieniać kod aplikacji.

Zmiany terminu i opóźnienia w ciągu dnia

Plan zbudowany rano zmienia się już przed południem. Kierowca stoi w korku, awaria wstrzymuje rozładunek na rampie albo dostawca odwołuje transport. System powinien traktować takie zdarzenia jako zwykłe operacje na harmonogramie, a nie wyjątki obsługiwane telefonem.

Aplikację awizacyjną można połączyć z monitorowaniem pojazdów. Gdy położenie auta wyklucza dotarcie na czas, wszystkie zainteresowane strony dostają powiadomienie e-mailem lub SMS-em, a planista widzi ryzyko w harmonogramie z wyprzedzeniem. Szczególnie ważne jest to w zakładach pracujących w modelu just in time, gdzie opóźnienie jednej dostawy zatrzymuje linię.

Reguła: odstępy między oknami ustala się według rzeczywistego czasu obsługi z historii, a nie według czasu deklarowanego przez dostawców.

Dostawa drobnicowa z wieloma pozycjami potrafi zająć dwa razy więcej czasu niż transport jednego asortymentu na paletach. Jeśli interwał został ustawiony dla drugiego typu, pierwszy zawsze będzie wypychał kolejne okna. Zwolniony slot, na przykład po odwołanej dostawie, wraca do puli i może zostać zaproponowany innemu przewoźnikowi. Mechanizm rezerwacji i jego ograniczenia omawia artykuł o oknach czasowych w YMS.

Przekazanie planu do WMS i placu YMS

Zatwierdzona awizacja nie kończy pracy planisty, tylko uruchamia kolejne procesy. VSS.net przekazuje ją do WMS jako zlecenie przyjęcia. Dzięki temu magazynier już w chwili wjazdu pojazdu widzi, co ma zostać rozładowane i na który adres odłożone. Techniczny przebieg wymiany danych opisuje artykuł o integracji VSS z WMS i ERP przy przyjęciach.

Ilustracja zarządzania konsumpcją pojemności bram w systemie awizacji dostaw Studio VSS.net
Zużycie pojemności bram w oknach czasowych - dane, z których plan dnia korzysta przy każdej nowej rezerwacji

Po stronie placu system zarządzania placem wskazuje pojazdowi wolną rampę, a gdy trzeba poczekać, miejsce postojowe. Kierownik widzi, które rampy są zajęte, a które dostępne. Mapę zajętości omawia artykuł o wizualizacji miejsc parkingowych, a rezerwację samych doków - opis rezerwowania doków magazynowych.

Moduł awizacji nie wymaga wdrożenia pełnego WMS. VSS.net działa jako samodzielny portal dla magazynów, które prowadzą ewidencję w arkuszach lub starszych systemach. Dane o zatwierdzonych wizytach można wtedy eksportować do dowolnego systemu przyjęć. Ogólne zasady rozplanowania dostaw po stronie magazynu porządkuje tekst o planowaniu dostaw do magazynu, a możliwości modułu prezentuje strona planowanie dostaw do magazynu na portalu awizacji.