Program magazynowy online z natury działa jako aplikacja wieloużytkownikowa - do tej samej bazy danych łączy się jednocześnie magazynier skanujący towar na hali, kierownik magazynu analizujący raporty w biurze oraz dział sprzedaży sprawdzający dostępność produktu przed przyjęciem zamówienia klienta. W odróżnieniu od arkusza kalkulacyjnego czy papierowej kartoteki, każda z tych osób pracuje na dokładnie tych samych, aktualnych danych, bez przesyłania plików pocztą elektroniczną i bez ryzyka pracy na nieaktualnej wersji dokumentu. Ten artykuł opisuje, jak program magazynowy obsługuje wielu zalogowanych jednocześnie pracowników, synchronizuje stany magazynowe w czasie rzeczywistym i zapobiega konfliktom przy równoczesnej edycji tych samych rekordów.

Wielu użytkowników jednocześnie zalogowanych do programu magazynowego online

Wielu użytkowników, jedna baza danych w czasie rzeczywistym

Za jednoczesną pracą wielu osób w programie magazynowym online stoi jeden centralny serwer bazy danych, najczęściej Microsoft SQL Server, do którego poszczególne stanowiska łączą się jako niezależne sesje. Magazynier korzystający z terminala Android, kierownik zalogowany w przeglądarce na komputerze biurowym i handlowiec sprawdzający stan towaru z poziomu systemu sprzedaży odwołują się do tych samych tabel i tych samych rekordów - nie do osobnych kopii danych, które później trzeba by ze sobą uzgadniać.

Taki model różni się od pracy na plikach udostępnianych w sieci lokalnej, gdzie każda zmiana wymaga zapisania i ponownego otwarcia dokumentu przez pozostałych użytkowników. W programie magazynowym online zapis jednej osoby od razu trafia do bazy danych, a każde kolejne zapytanie innego użytkownika odczytuje już zaktualizowaną wartość. Liczba jednocześnie zalogowanych osób nie jest przy tym z góry ograniczona do garstki stanowisk - rośnie wraz z wielkością magazynu i liczbą procesów uruchomionych równolegle.

Kto loguje się jednocześnie do systemu magazynowego

W typowym wdrożeniu do tego samego programu magazynowego online loguje się kilka grup użytkowników o odmiennych zadaniach i różnym zakresie dostępu do danych. Poniższe zestawienie porządkuje najczęściej spotykane role oraz zakres tego, co dana osoba widzi i może zmienić.

Rola użytkownikaCo widziCo może edytować
Magazynier na haliListę zadań, lokalizacje towaru, dokumenty do realizacjiPotwierdza pobrania, przyjęcia i przesunięcia w czasie rzeczywistym
Kierownik magazynuWszystkie stany magazynowe, raporty i historię obrotówZatwierdza dokumenty, koryguje błędy, zarządza priorytetami zadań
Dział sprzedaży / handlowiecDostępne ilości towaru i rezerwacjeTworzy zamówienia i rezerwuje towar pod klienta, bez dostępu do operacji magazynowych
Kontrahent (moduł internetowy)Stan własnych zamówień i dokumentówSkłada zamówienia i śledzi status realizacji, bez wglądu w dane innych kontrahentów
Administrator systemuPełną strukturę danych i konfiguracjęNadaje i odbiera uprawnienia, zarządza kontami i sesjami użytkowników

Rola przypisana do konta decyduje o tym, jakie menu i dokumenty widzi dana osoba po zalogowaniu - role i użytkownicy w systemie WMS opisują ten podział szczegółowo. Dzięki temu dział sprzedaży nie widzi funkcji przeznaczonych dla magazyniera, a magazynier nie ma dostępu do warunków handlowych zapisanych przy zamówieniu.

Pracownicy magazynu i kontrahenci korzystający jednocześnie z programu magazynowego online

Sesje i logowanie wielu użytkowników

Każde zalogowanie do programu magazynowego online otwiera odrębną sesję, niezależną od sesji pozostałych osób pracujących w tym samym momencie. Sesja przechowuje informację o tym, kim jest użytkownik, jaką rolę pełni oraz do jakich danych ma dostęp, dzięki czemu jedno logowanie nie wpływa na pracę pozostałych osób. Zasady logowania i autoryzacji, w tym wygasanie sesji po dłuższej bezczynności, opisuje strona logowanie i autoryzacja. Zamknięcie przeglądarki lub wylogowanie jednego stanowiska nie przerywa pracy pozostałych zalogowanych użytkowników - każda sesja działa niezależnie od pozostałych.

Synchronizacja stanów magazynowych na żywo

Najbardziej odczuwalnym efektem pracy wieloużytkownikowej jest natychmiastowa widoczność zmian w stanach magazynowych. Gdy magazynier potwierdza na terminalu Android WMS pobranie towaru z lokalizacji, system od razu aktualizuje ilość dostępną w tej pozycji asortymentowej. Kierownik przeglądający w tym samym momencie raport zapasów w biurze widzi już zaktualizowaną liczbę, bez konieczności odświeżania danych z opóźnieniem charakterystycznym dla wymiany plików czy cyklicznych eksportów.

Ta sama zasada obowiązuje w drugą stronę - dział sprzedaży, wystawiając zamówienie klientowi, sprawdza faktyczną dostępność towaru w danym momencie, a nie stan sprzed kilku godzin. Ogranicza to sytuacje, w których klientowi obiecuje się produkt, którego fizycznie nie ma już na stanie, ponieważ w międzyczasie trafił do innego zamówienia lub został wydany z magazynu.

Widoczność zmian dla wszystkich zalogowanych użytkowników

Widoczność zmian w czasie rzeczywistym obejmuje nie tylko liczby na kartotece towaru, lecz również status dokumentów. Gdy kierownik zatwierdza dokument przyjęcia, magazynier widzi zmianę statusu na swoim terminalu bez potrzeby odświeżania aplikacji czy ponownego logowania. Dzięki temu praca całego zespołu przebiega na tej samej, aktualnej wersji rzeczywistości magazynowej, niezależnie od tego, z jakiego stanowiska i urządzenia korzysta dana osoba.

Wskazówka

Przy planowaniu liczby jednoczesnych użytkowników warto uwzględnić nie tylko etaty magazynowe, lecz również konta dla działu sprzedaży, kontrahentów korzystających z modułu internetowego oraz integracje z systemami zewnętrznymi, które również nawiązują własne sesje z bazą danych.

Unikanie konfliktów przy jednoczesnej edycji dokumentów

Praca wieloosobowa niesie ze sobą ryzyko, że dwie osoby spróbują jednocześnie zmodyfikować ten sam dokument magazynowy - na przykład magazynier potwierdza pozycje na dokumencie PZ w chwili, gdy kierownik próbuje go poprawić z poziomu biura. Program magazynowy online zapobiega takim sytuacjom na poziomie bazy danych, a nie wyłącznie w warstwie interfejsu, dzięki czemu ryzyko nadpisania cudzej pracy pozostaje minimalne niezależnie od tego, z jakiego urządzenia korzysta użytkownik.

Blokady rekordów i transakcje bazodanowe

Mechanizm ochrony opiera się na transakcjach bazodanowych oraz blokadach rekordów, znanych z Microsoft SQL Server. Gdy jeden użytkownik rozpoczyna edycję dokumentu, system oznacza odpowiedni rekord jako zajęty na czas trwania operacji, a próba równoległego zapisu tej samej pozycji przez inną osobę kończy się komunikatem o konflikcie zamiast cichym nadpisaniem danych. Typowy przebieg takiej sytuacji wygląda następująco.

  1. Pierwszy użytkownik otwiera dokument do edycji, a system oznacza jego rekord jako zajęty.
  2. Drugi użytkownik otwiera ten sam dokument i widzi jego bieżącą zawartość w trybie odczytu lub z ostrzeżeniem o trwającej edycji.
  3. Pierwszy użytkownik zapisuje zmiany, transakcja zostaje zatwierdzona, a blokada rekordu jest zwalniana.
  4. Drugi użytkownik, próbując zapisać własne zmiany na nieaktualnej już wersji dokumentu, otrzymuje komunikat o konflikcie i informację o konieczności odświeżenia danych.
  5. Po odświeżeniu drugi użytkownik widzi aktualną wersję dokumentu i wprowadza swoje poprawki na jej podstawie.

Dzięki takiemu podejściu żadna operacja nie ginie bezpowrotnie, a zespół zawsze pracuje na spójnej, jednej wersji dokumentu, nawet przy dużej liczbie osób korzystających z systemu równocześnie.

Różne punkty dostępu, jedna spójna baza danych

Współbieżny dostęp wielu użytkowników w programie magazynowym online nie ogranicza się do jednego typu urządzenia. Magazynier korzysta z terminala lub skanera z aplikacją Android WMS, kierownik i dział sprzedaży pracują z poziomu komputera w przeglądarce, a kontrahent zewnętrzny loguje się przez moduł internetowy dla kontrahentów, widząc wyłącznie dane dotyczące własnych zamówień. Każdy z tych kanałów odwołuje się do tej samej bazy danych, dlatego zmiana wprowadzona z jednego urządzenia jest natychmiast widoczna na pozostałych, niezależnie od tego, czy dane stanowisko znajduje się na hali magazynowej, w biurze czy poza siedzibą firmy.

Różne urządzenia jednocześnie połączone z programem magazynowym online - terminal, tablet i komputer

Zarządzanie uprawnieniami przy wielu jednoczesnych użytkownikach

Im więcej osób loguje się jednocześnie do systemu, tym istotniejsza staje się kontrola tego, kto i co może zmieniać. Zadanie to spoczywa na koncie z uprawnieniami administratora systemu, który przydziela role poszczególnym pracownikom, ogranicza widoczność wybranych modułów oraz - w razie potrzeby - kończy aktywną sesję użytkownika, na przykład po zmianie stanowiska lub zakończeniu współpracy. Odebranie uprawnień działa natychmiast, bez konieczności ponownej instalacji programu na stanowiskach pozostałych pracowników.

Administrator systemu zarządzający kontami i uprawnieniami wielu użytkowników programu magazynowego

Ile jednoczesnych użytkowników obsłuży program magazynowy online

Liczba jednoczesnych sesji, jaką obsłuży program magazynowy online, zależy przede wszystkim od wydajności serwera bazy danych oraz od modelu licencjonowania przyjętego przy wdrożeniu - część umów rozlicza dostęp na podstawie liczby jednoczesnych połączeń, inne na podstawie liczby przypisanych kont imiennych. W praktyce małe magazyny obsługują kilka jednoczesnych stanowisk, natomiast duże centra dystrybucyjne z rozbudowanym działem sprzedaży i modułem internetowym dla kontrahentów potrafią utrzymywać jednocześnie kilkadziesiąt aktywnych sesji bez zauważalnego spadku wydajności.

Korzyści dostępu wieloosobowego w czasie rzeczywistym

Praca wielu zalogowanych jednocześnie użytkowników na wspólnej bazie danych przekłada się na kilka praktycznych efektów w codziennej pracy magazynu.

  • Dział sprzedaży widzi faktyczną dostępność towaru w chwili rozmowy z klientem, a nie stan sprzed kilku godzin.
  • Kierownik magazynu podejmuje decyzje na podstawie aktualnych danych, bez oczekiwania na zbiorczy raport z końca dnia.
  • Magazynier nie musi pytać telefonicznie o status dokumentu, ponieważ zmiana wprowadzona w biurze jest widoczna od razu na jego terminalu.
  • Kontrahenci korzystający z modułu internetowego samodzielnie sprawdzają status swoich zamówień, bez angażowania pracowników magazynu.
  • Ryzyko nadpisania cudzej pracy pozostaje minimalne dzięki blokadom rekordów i transakcjom bazodanowym opisanym powyżej.

Dostęp wieloużytkownikowy w czasie rzeczywistym zmienia charakter pracy magazynu z modelu opartego na okresowych zestawieniach na model, w którym każda zalogowana osoba - niezależnie od roli i miejsca pracy - korzysta z tych samych, aktualnych danych. To odróżnia współczesny program magazynowy online od rozwiązań opartych na pojedynczych plikach lub aplikacjach ograniczonych do jednego stanowiska.