Wdrożenie systemu WMS zaczyna się na długo przed instalacją oprogramowania, a kończy dopiero wtedy, gdy stany w systemie zgadzają się z tym, co leży na regałach. Opisujemy przebieg projektu w kolejności, w jakiej powstają jego rezultaty - od dokumentu analizy po inwentaryzację startową.

Każdy etap zostawia po sobie coś, co da się sprawdzić. Po analizie powstaje zatwierdzony zakres, a po konfiguracji struktura magazynu w systemie. Migracja zostawia kartoteki w bazie, a testy protokół odbioru. Projekt idzie do przodu dopiero po zamknięciu poprzedniej bramki, bo błąd znaleziony na końcu kosztuje więcej niż ten sam błąd wykryty na początku. Przykłady dotyczą programu Studio WMS.net i bazy SQL Server, ale sama kolejność prac obowiązuje przy każdym systemie klasy WMS.

Analiza procesów i zakres wdrożenia systemu WMS

Pierwszym etapem jest analiza przedwdrożeniowa. Zespół projektowy poznaje obecne procesy: przyjęcie towaru i składowanie oraz kompletację i wydanie. Porównuje stan obecny (as-is) z modelem docelowym (to-be), czyli tym, jak procesy mają wyglądać po uruchomieniu nowego systemu. Osobno przegląda asortyment i liczbę lokalizacji, bo od tych parametrów zależy wariant konfiguracji. Szerzej o tym, czym jest analiza przedwdrożeniowa, piszemy w osobnym artykule.

Warsztaty prowadzi się na hali, a nie w sali konferencyjnej. Brygadzista pokazuje, gdzie w praktyce wraca towar z reklamacji i jak wygląda odkładanie palet po zmianie nocnej, a analityk zapisuje odstępstwa od procedury. Odstępstwa trafiają do wymagań, bo system, który ich nie obsłuży, zostanie na hali obejściem w arkuszu.

Rezultat analizyZawartośćKto zatwierdza
Mapa procesów as-isPrzyjęcie i składowanie oraz kompletacja i wydanie z rzeczywistymi dokumentamiKierownik magazynu
Model to-beDocelowy przepływ operacji oraz miejsca kontroli w systemieKierownik magazynu i dział IT
Lista wymagańFunkcje obowiązkowe i integracje z nadanymi priorytetamiSponsor projektu
Zakres i harmonogramEtapy i terminy testów oraz data uruchomienia produkcyjnegoObie strony umowy

Wolumen zamówień sprawdza się na danych z ostatnich miesięcy, a nie na deklaracjach. Poniższe zapytanie pokazuje, ile zamówień trafia do magazynu danego dnia i ile pozycji trzeba skompletować. Najbardziej obciążone dni wyznaczają liczbę terminali oraz rozmiar strefy kompletacji.

-- przykładowy profil obciążenia magazynu z ostatnich 12 miesięcy
SELECT CAST(DataZamowienia AS date) AS Dzien,
       COUNT(*)                     AS Zamowienia,
       SUM(LiczbaPozycji)           AS Pozycje
FROM dbo.Zamowienie
WHERE DataZamowienia >= DATEADD(MONTH, -12, GETDATE())
GROUP BY CAST(DataZamowienia AS date)
ORDER BY Zamowienia DESC;

Porównanie ofert ułatwia zestawienie dostawców systemów klasy WMS, w którym pokazujemy różnice w modelu licencjonowania i zakresie wsparcia.

Reguła: zakres wdrożenia zamyka się na piśmie przed konfiguracją. Zmiana po podpisaniu analizy idzie ścieżką zmiany, bo przesuwa terminy testów.

Grupa pracowników w kamizelkach odblaskowych rozmawia w alei regałowej obok wózka widłowego
Spotkanie zespołu projektowego z magazynierami w alei regałowej - etap analizy procesów

Konfiguracja struktury magazynu i dokumentów

Po zamknięciu analizy zespół wdrożeniowy odwzorowuje w systemie fizyczny magazyn. Konfigurację wykonuje administrator, który w panelu ustawień dopasowuje menu i uprawnienia bez udziału producenta, a wynik zapisuje się w bazie SQL Server. Parametry opisujemy w artykule o konfiguracji programu Studio WMS.net.

Lokalizacje i strefy składowania

Strefy i rzędy regałów dostają adresy, które operator odczyta z etykiety bez wahania. Do każdej lokalizacji przypisuje się reguły: jakie towary wolno w niej składować i jaką nośnością dysponuje regał. Błąd w adresacji wychodzi dopiero na hali, dlatego konfigurację weryfikuje się na wydruku planu magazynu, a nie tylko na ekranie. Etykiety lokalizacji drukuje się przed pierwszym przyjęciem, bo bez nich operator nie potwierdzi odłożenia skanerem.

Dokumenty magazynowe i uprawnienia

Konfigurowane są dokumenty magazynowe: przyjęcia i wydania (PZ, WZ) oraz rozchody wewnętrzne i przesunięcia (RW, MM). Dla każdego ustala się numerację i obieg zgodny z procedurami firmy. Uprawnienia zapisuje się per rola, więc magazynier obsługujący terminal widzi inny zestaw transakcji niż kierownik zmiany. Administrator sprawdza je, logując się kontami testowymi każdej roli.

Migracja kartotek i stanów początkowych

Migracja danych wydłuża harmonogram częściej niż jakikolwiek inny etap, jeśli potraktuje się ją pobieżnie. Dane z arkuszy kalkulacyjnych i poprzedniego systemu rzadko nadają się do importu w stanie surowym, bo zawierają duplikaty indeksów i brakujące jednostki miary. Strukturę rekordów, do których trafiają, opisuje artykuł o kartotekach magazynowych w WMS.net, a przypadek przejścia z arkusza omawia tekst o migracji z Excela.

Import przebiega przez tabelę pośrednią. Plik CSV trafia najpierw do tabeli tymczasowej, tam działają zapytania kontrolne, a dopiero potem dane wchodzą do tabel produkcyjnych. Do wczytania pliku służy polecenie BULK INSERT, opisane w dokumentacji Microsoft Learn.

-- przykładowa tabela pośrednia dla importu kartoteki towarowej
CREATE TABLE dbo.Import_Towar (
    Indeks        nvarchar(40)  NOT NULL,
    Nazwa         nvarchar(200) NOT NULL,
    JmPodstawowa  nvarchar(10)  NULL,
    KodEAN        varchar(14)   NULL
);

BULK INSERT dbo.Import_Towar
FROM 'D:\migracja\towary.csv'
WITH (FORMAT = 'CSV', FIRSTROW = 2, CODEPAGE = '65001', FIELDTERMINATOR = ';');

-- indeksy zdublowane po normalizacji zapisu
SELECT UPPER(LTRIM(RTRIM(Indeks))) AS IndeksNorm, COUNT(*) AS Ile
FROM dbo.Import_Towar
GROUP BY UPPER(LTRIM(RTRIM(Indeks)))
HAVING COUNT(*) > 1;

-- pozycje bez jednostki miary blokują import
SELECT Indeks FROM dbo.Import_Towar WHERE JmPodstawowa IS NULL;

Kolejność ładowania ma znaczenie, bo rekordy zależą od siebie. Kartoteka lokalizacji musi istnieć, zanim system przyjmie stan przypisany do adresu.

  1. Kartoteka towarowa - indeksy z jednostkami podstawowymi oraz przelicznikami opakowań.
  2. Lokalizacje - adresy z regułami składowania, wczytywane po konfiguracji struktury magazynu.
  3. Kontrahenci - dostawcy i odbiorcy powiązani z dokumentami.
  4. Stany początkowe - ilości przypisane do indeksu i lokalizacji, ładowane jako ostatnie.

Rekordy przechodzą z tabeli pośredniej do produkcyjnej w jednej transakcji. Gdy którykolwiek wiersz naruszy ograniczenie, cała paczka się wycofuje, więc w bazie nie zostaje połowa kartoteki. Nazwy tabel w przykładach są umowne i nie odpowiadają schematowi żadnego produktu.

-- przeniesienie zwalidowanych rekordów do tabeli produkcyjnej w jednej transakcji
BEGIN TRY
    BEGIN TRANSACTION;

    INSERT INTO dbo.Towar (Indeks, Nazwa, JmPodstawowa, KodEAN)
    SELECT DISTINCT UPPER(LTRIM(RTRIM(i.Indeks))), i.Nazwa, i.JmPodstawowa, i.KodEAN
    FROM dbo.Import_Towar AS i
    WHERE NOT EXISTS (SELECT 1 FROM dbo.Towar AS t
                      WHERE t.Indeks = UPPER(LTRIM(RTRIM(i.Indeks))));

    COMMIT TRANSACTION;
END TRY
BEGIN CATCH
    IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION;
    THROW;
END CATCH;

Reguła: import próbny wykonuje się na środowisku testowym z tym samym plikiem, który pójdzie na produkcję. Migrację ostateczną uruchamia się dopiero po zaakceptowanym imporcie próbnym.

Pracownik z tabletem obok wózka widłowego i palety z terminalem umocowanym na folii stretch
Kartoteki i lokalizacje ładowane w etapie migracji - dane muszą odpowiadać paletom na regałach

Integracja z ERP i środowisko testowe

Samodzielnie działający WMS rzadko wystarcza w firmie z gotowym systemem księgowym. Interfejs z ERP przenosi kontrahentów oraz dokumenty magazynowe, a stany wracają w przeciwną stronę, więc nikt nie przepisuje ich ręcznie. Zakres wymiany ustala się już w analizie, ale mapowanie dokumentów po obu stronach interfejsu powstaje dopiero w tej fazie i podlega testom integracyjnym. Ogólne modele wymiany opisujemy w artykule o integracji systemów magazynowych.

Firmy pracujące na SAP wymagają osobnego podejścia. Opis wywołań funkcji po stronie SAP z poziomu magazynu zawiera tekst o wywoływaniu funkcji SAP z poziomu systemu WMS. Podobne zasady dotyczą sklepu internetowego: platforma musi dostawać z WMS aktualną dostępność, a WMS nowe zamówienia bez opóźnienia wynikającego z ręcznej synchronizacji.

Najczęstsze usterki interfejsów wychodzą na drobiazgach. Ilości różnią się zaokrągleniem po obu stronach, znaki diakrytyczne w nazwach kontrahentów przychodzą w innym kodowaniu, a dokument wysłany dwukrotnie po przerwie w łączności powstaje w ERP podwójnie. Testy integracyjne obejmują więc przypadki z przerwaną wymianą, a nie tylko ścieżkę, w której wszystko działa.

ŚrodowiskoBaza danychDo czego służy
TestoweKopia z danymi po imporcie próbnymTesty modułowe i integracyjne oraz pierwsza tura szkoleń
AkceptacyjneŚwieży import kartotek i stanówTesty UAT z udziałem przyszłych użytkowników
ProdukcyjneBaza po migracji ostatecznejCodzienna praca magazynu po uruchomieniu

Testy przed uruchomieniem produkcyjnym

Testy wykrywają błędy konfiguracji, zanim dotkną realizacji zamówień. Prowadzi się je etapami: od pojedynczej funkcji po pełny scenariusz od przyjęcia do wysyłki. Każdy rodzaj testu ma swoje kryterium zamknięcia, które zapisuje się w harmonogramie.

Rodzaj testuCo sprawdzaKryterium zamknięcia
ModułowyPojedyncze funkcje, na przykład rejestrację przyjęcia albo wydruk etykiety wysyłkowejBrak błędów blokujących w module
IntegracyjnyWymianę danych z ERP i platformą e-commerce w obu kierunkachDokumenty przepływają bez utraty pozycji
Akceptacyjny (UAT)Rzeczywiste scenariusze pracy odtworzone przez przyszłych użytkownikówPodpisany protokół odbioru

Reguła: UAT wykonują przyszli użytkownicy na środowisku z danymi po próbnej migracji. Konsultant dostawcy obserwuje i zapisuje uwagi, ale nie prowadzi ekranu.

Pozytywnie zamknięty UAT jest formalną podstawą do wyznaczenia terminu uruchomienia. Skrócenie tego etapu przenosi problemy na pierwsze tygodnie produkcji, gdy naprawa błędu kosztuje najwięcej. Wykryte usterki klasyfikuje się według wpływu na start.

Klasa usterkiPrzykładWpływ na termin startu
BlokującaDokument przyjęcia nie zapisuje się po zeskanowaniu paletyStart czeka na poprawkę
PoważnaEtykieta lokalizacji drukuje się z błędnym adresemPoprawka przed startem lub obejście zaakceptowane na piśmie
KosmetycznaLiterówka w komunikacie na terminaluPoprawka w kolejnej aktualizacji

Szkolenia stanowiskowe

Szkolenie techniczne prowadzi się równolegle z testami akceptacyjnymi. Magazynier uczy się skanera i komunikatów systemu, a administrator reguł składowania i uprawnień. Pierwsza tura odbywa się na środowisku testowym, druga krótko przed startem, jako powtórka z pytaniami zebranymi w międzyczasie. Instrukcje stanowiskowe zostają przy stanowiskach pracy na pierwsze tygodnie użytkowania. Organizacyjną stronę tego etapu omawia artykuł o przygotowaniu firmy i zespołu do wdrożenia.

Uruchomienie produkcyjne i przełączenie stanów

Uruchomienie produkcyjne, zwane też go-live, jest chwilą przejścia z pracy testowej do codziennej eksploatacji. Poprzedza je plan przełączenia, w którym każda czynność ma właściciela i godzinę. W części wdrożeń przez kilka dni magazyn pracuje jednocześnie na starym i nowym systemie, co pozwala porównać wyniki przed wyłączeniem poprzedniego rozwiązania. Ceną tego modelu jest podwójne wprowadzanie danych, dlatego okres równoległy trzyma się możliwie krótko.

  1. Zamrożenie ruchów - w starym systemie wstrzymuje się przyjęcia i wydania na ustalone okno.
  2. Migracja ostateczna - kartoteki i lokalizacje ładowane są według sprawdzonej kolejności, a po nich stany.
  3. Uzgodnienie - zapytania kontrolne porównują stan źródłowy ze stanem w WMS.
  4. Otwarcie ruchów - dokumenty zaczynają powstawać w nowym systemie, a stary przechodzi w tryb odczytu.

Krok uzgodnienia sprowadza się do jednego zapytania, które musi zwrócić pusty wynik, zanim magazyn wznowi pracę.

-- przykładowe uzgodnienie stanów po migracji ostatecznej
SELECT i.Indeks,
       i.IloscZrodlo,
       ISNULL(s.IloscWms, 0)                 AS IloscWms,
       ISNULL(s.IloscWms, 0) - i.IloscZrodlo AS Roznica
FROM dbo.Import_Stany AS i
LEFT JOIN dbo.StanMagazynowy AS s ON s.Indeks = i.Indeks
WHERE ISNULL(s.IloscWms, 0) <> i.IloscZrodlo;

Pierwsze dni po starcie wymagają wzmocnionej obecności konsultantów na hali. Odpowiadają na bieżące pytania, obserwują tempo pracy i reagują na sytuacje, których testy nie przewidziały. Długość tego okresu zależy od skali magazynu i liczby uruchomionych procesów.

Inwentaryzacja startowa i stabilizacja systemu

Inwentaryzacja startowa sprawdza, czy zmigrowane stany odpowiadają temu, co leży na regałach. Operatorzy skanują lokalizacje i palety, a system porównuje wynik ze stanem początkowym i zapisuje różnice jako dokumenty korygujące. Bez tej weryfikacji błędy migracji wychodzą przy pierwszej kompletacji, gdy towaru brakuje we wskazanej lokalizacji. Pełną wersję procesu opisuje artykuł o inwentaryzacji ciągłej w magazynie, do której magazyn przechodzi po starcie.

Liczenie zaczyna się od stref o największej rotacji, bo tam błąd stanu szybciej zatrzyma wydania. Przed zamknięciem spisu każdą różnicę weryfikuje druga osoba, a dopiero potem system księguje korektę. Korektę porównuje się jeszcze ze stanem po stronie ERP, żeby rozbieżność nie przeniosła się do księgowości.

Czworo pracowników w kaskach i kamizelkach odblaskowych z tabletami przy regałach magazynowych
Zespół liczący lokalizacje podczas inwentaryzacji startowej - punkt kontrolny po migracji

Po okresie wzmożonego wsparcia system trafia w fazę stabilizacji. Dostawca obsługuje zgłoszenia w standardowym trybie serwisowym, a bieżącą administrację przejmuje zespół firmy. Wtedy porównuje się cele projektu z wynikami: czas kompletacji i dokładność inwentaryzacji. Efekty pracy na produkcji ocenia się po kilku miesiącach, a wcześniejsze zmiany konfiguracji zbiera się w jednej liście poprawek zamiast wprowadzać je na bieżąco.

Ile trwa wdrożenie i od czego zależy

Poniższe czasy są orientacyjne. Rzeczywisty przebieg zależy od liczby magazynów i zakresu integracji, a przy systemie lokalnym dochodzi przygotowanie infrastruktury serwerowej, którego nie ma w modelu chmurowym.

Etap wdrożeniaOrientacyjny czas trwania
Analiza przedwdrożeniowa1-2 tygodnie
Konfiguracja i migracja danych2-4 tygodnie
Integracja z ERP i e-commerce1-3 tygodnie (równolegle)
Testy modułowe i integracyjne oraz UAT1-2 tygodnie
Szkolenia i uruchomienie produkcyjneokoło tygodnia
Wsparcie powdrożeniowe4-8 tygodni
  • Liczba magazynów i lokalizacji - kilka obiektów jednocześnie wymaga dłuższej konfiguracji i testów niż jedna lokalizacja.
  • Zakres integracji - każdy dodatkowy system wymieniający dane z WMS wydłuża fazę testów integracyjnych.
  • Jakość danych - nieuporządkowane kartoteki wymagają dodatkowego czyszczenia przed importem próbnym.
  • Dostępność zespołu klienta - brak czasu osób odpowiedzialnych za procesy na udział w analizie i UAT opóźnia projekt niezależnie od tempa dostawcy.

System można obejrzeć przed decyzją w demo magazynu Studio WMS.net, a sposób oceny oferty opisuje strona o prezentacji systemu WMS przed zakupem.