Studio WMS.net powstało jako aplikacja internetowa, a nie program instalowany na każdym komputerze. Użytkownik loguje się w przeglądarce, a dane trafiają do jednej bazy na serwerze. Taka budowa rozstrzyga o dostępie do stanów magazynowych oraz o nakładzie pracy przy aktualizacji systemu.

Warstwy aplikacji internetowej ASP.Net

System składa się z interfejsu w przeglądarce oraz z serwera aplikacji z bazą MS SQL Server. Każda warstwa ma własne zadanie, więc zmiana w jednej nie wymusza zmian w pozostałych. Terminale z Androidem korzystają z tej samej bazy przez moduły mobilne, a nie przez osobną kopię danych.

WarstwaZadanieGdzie działaCo trzeba utrzymywać
Interfejsformularze dokumentów, listy, mapa lokalizacjiprzeglądarka na dowolnym urządzeniunic, poza aktualną przeglądarką
Serwer aplikacji ASP.Netlogika procesów, uprawnienia, generowanie dokumentówserwer firmy lub chmuraaktualizacja w jednym miejscu
Baza MS SQL Serverstany, historia ruchów, transakcjeten sam serwer lub osobnykopie zapasowe i wydajność
Moduły mobilneskanowanie i potwierdzanie operacji na haliterminal z Androidemłączność z siecią bezprzewodową

Reguła: logika procesów działa na serwerze, a nie na stanowisku. Nowa wersja wchodzi w życie po jednej aktualizacji, więc w magazynie nie pracują jednocześnie dwie różne wersje programu.

Opis ról kierownika i magazyniera zawiera strona o rolach i użytkownikach w systemie WMS. Ogólne porównanie narzędzi tej klasy znajduje się w artykule o programach do zarządzania magazynem.

Dostęp przez przeglądarkę, sieć lokalna i Internet

Ta sama aplikacja działa w sieci lokalnej firmy albo przez Internet. W sieci lokalnej opóźnienia są mniejsze, a dane nie opuszczają budynku. Przez Internet dostęp mają także oddziały i klienci spoza firmy, o ile mają konto. Wybór zależy od liczby lokalizacji i od polityki bezpieczeństwa IT.

Pracę w obu trybach opisuje osobny artykuł o WMS w sieci lokalnej lub przez Internet. Kierownik, który sprawdza stan towaru poza biurem, korzysta z tego samego okna co magazynier.

Ekran logowania Studio WMS.net - formularz z polem użytkownika i hasła na tle magazynu wysokiego składowania
Panel logowania Studio WMS.net z formularzem uwierzytelniania na tle zdjęcia magazynu wysokiego składowania

Klienci zdalni i uprawnienia w bazie

Operator logistyczny udostępnia klientom stany ich własnych towarów. Konto klienta jest przypisane do właściciela towaru, więc użytkownik widzi tylko jego zapasy. Filtr działa w zapytaniu do bazy, a nie tylko w interfejsie, bo ukrycie przycisku nie chroni danych przed bezpośrednim zapytaniem.

CREATE PROCEDURE dbo.StanyKlienta @UzytkownikId int
AS
SELECT s.IndeksId, SUM(s.Ilosc) AS Ilosc
FROM dbo.StanyLokalizacji AS s
JOIN dbo.UzytkownicyKlienci AS uk
  ON uk.KlientId = s.WlascicielId
WHERE uk.UzytkownikId = @UzytkownikId
GROUP BY s.IndeksId;

Przykład jest ilustracyjny i nie pokazuje kodu produktu. Procedura składowana przyjmuje identyfikator użytkownika i zwraca tylko te wiersze, do których ma on prawo. Logika dostępu znajduje się w jednym miejscu, więc nie powtarza się w każdym raporcie. Składnię opisuje dokumentacja CREATE PROCEDURE.

Konta, role i praca wielostanowiskowa

System obsługuje wiele stanowisk pracujących w tym samym czasie. Dwa konta mogą otworzyć tę samą listę, ale zapis stanu odbywa się w transakcji, więc ostatnia zmiana nie nadpisuje po cichu poprzedniej.

Baza SQL Server: wersja Express i Standard

Studio WMS.net może pracować na darmowej edycji SQL Server Express. Ma ona ograniczenia wydajności, między innymi limit pamięci RAM, a zautomatyzowane zadania, takie jak archiwizacja o ustalonej godzinie, bywają w niej niedostępne. Dla kilku stanowisk to wystarcza, dla większego zespołu lepsza jest edycja Standard.

WariantTypowe zastosowanieOgraniczenie do sprawdzenia
SQL Server Expressmały magazyn, kilku użytkownikówlimit pamięci, brak zautomatyzowanych zadań
SQL Server Standardwielu użytkowników, kopie o ustalonej godziniekoszt licencji

Różnice opisuje strona o SQL Express w Studio WMS.net, a pełną listę funkcji poszczególnych wydań podaje dokumentacja edycji SQL Server. Decyzję o wersji podejmuje się przed wdrożeniem, bo zmiana edycji wymaga migracji bazy.

Identyfikowalność towaru i etykiety

System śledzi towar z dokładnością do lokalizacji oraz numerów identyfikacyjnych: partii albo numeru seryjnego. Dokument przyjęcia zapisuje te numery, a dokument wydania wskazuje, z której partii zeszła ilość. Odpowiedź na reklamację sprowadza się wtedy do jednego zapytania po numerze.

Program drukuje kody kreskowe na dedykowanych drukarkach i generuje etykiety logistyczne zgodne ze standardem GS1 oraz z wymaganiami sieci handlowych. Budowę etykiety opisuje strona GS1 Polska, a własne omówienie znajduje się w artykułach o etykiecie GS1 i o kodach kreskowych.

Studio WMS.net - dashboard z wykresami kołowymi zleceń i dokumentów magazynowych oraz rankingiem kontrahentów
Dashboard Studio WMS.net - wykresy kołowe statusów zleceń i dokumentów oraz ranking kontrahentów wg liczby palet

Raporty i podgląd wskaźników

Raporty w systemie projektuje się narzędziem Report Builder, a gotowe zestawienia stanów można wysyłać cyklicznie. Pulpit pokazuje wykresy zleceń i dokumentów oraz ranking kontrahentów, więc kierownik widzi obciążenie dnia bez otwierania osobnych list. Subskrypcje raportów opisuje artykuł czy potrzebujesz subskrypcję raportów.

Raporty działają na tych samych danych co dokumenty, więc nie ma osobnej hurtowni do synchronizacji. Wydajność zapytań zależy jednak od indeksów, dlatego raporty z długim okresem warto uruchamiać poza godzinami szczytu.

Bezpieczeństwo dostępu przez Internet

Dostęp przez Internet wymaga uwierzytelnienia każdego użytkownika, a połączenie z serwerem powinno być szyfrowane protokołem HTTPS. Weryfikacja hasła i obsługa sesji należą do serwera, a nie do przeglądarki, więc przeglądarka nie przechowuje żadnych reguł dostępu. Zasady logowania opisuje artykuł o logowaniu i autoryzacji.

Uprawnienia powinien sprawdzać serwer przy każdym żądaniu, a nie tylko przy logowaniu. Użytkownik, któremu odebrano rolę, traci wtedy dostęp do funkcji od następnej operacji. Zmiany ról warto rejestrować, żeby kierownik IT mógł ustalić, kto nadał nowe uprawnienia i w jakim dniu.

Dla klientów zewnętrznych dochodzi jeszcze kwestia zakresu danych. Konto klienta nie powinno widzieć cen ewidencyjnych ani stanów innych właścicieli, dlatego filtr wiąże się z kontem w bazie, a nie z ustawieniem widoku.

Aktualizacje, kopie zapasowe i utrzymanie serwera

Model serwerowy przenosi utrzymanie na jedną maszynę. Aktualizacja aplikacji dotyczy serwera, a stanowiska pobierają nową wersję przy kolejnym otwarciu strony. Nie ma instalatora, który trzeba rozesłać na dwadzieścia komputerów, i nie ma ryzyka, że jeden z nich pozostanie na starej wersji.

Kopie zapasowe bazy obejmują całość danych magazynowych. Częstotliwość kopii dobiera się do tempa pracy: magazyn z tysiącami ruchów dziennie potrzebuje kopii częstszych niż obiekt z kilkudziesięcioma dokumentami. W edycji Express zadanie kopii trzeba wywoływać z zewnątrz, co dodatkowo wspiera wybór edycji Standard przy większej liczbie użytkowników.

Reguła: kopia zapasowa, której nie przetestowano odtworzeniem, nie jest zabezpieczeniem. Odtworzenie na osobnym serwerze raz na kwartał pokazuje, czy plik kopii da się otworzyć i czy zawiera aktualne dokumenty z ostatniej zmiany.

Wydajność przy rosnącej liczbie ruchów

Z czasem tabela historii ruchów rośnie szybciej niż pozostałe. Zapytania o stan lokalizacji muszą korzystać z indeksów, bo pełny odczyt tabeli wydłuża czas odpowiedzi terminala. Plan wykonania zapytania pokazuje, czy silnik używa indeksu, czy czyta wszystkie wiersze.

Rozbudowa przez dokładanie modułów

Budowa warstwowa pozwala zaczynać od podstawowych dokumentów i dodawać funkcje później, bez wymiany systemu. Nowe moduły korzystają z istniejących kartotek i lokalizacji.

Dobór sprzętu zależy od warunków pracy. Przykładem terminala przenośnego jest seria Zebra TC7x, a aplikacja nie jest związana z jednym producentem urządzeń.

Pytania i odpowiedzi o oprogramowanie magazynowe w przeglądarce

Nie. Interfejs działa w przeglądarce, a logika procesów i dane znajdują się na serwerze. Na stanowisku wystarcza aktualna przeglądarka, a aktualizacja systemu odbywa się w jednym miejscu.

Nie. Konto klienta jest przypisane do właściciela towaru, a filtr działa w zapytaniu do bazy. Użytkownik widzi wyłącznie własne stany i dokumenty, nawet jeśli korzysta z tego samego systemu co inni klienci.

Express nadaje się do małego magazynu z kilkoma użytkownikami. Przy większym zespole ograniczenie pamięci i brak zautomatyzowanych zadań stają się uciążliwe, więc lepszy jest SQL Server Standard.

Tak. Ta sama aplikacja pracuje w sieci lokalnej firmy albo przez Internet. Sieć lokalna daje mniejsze opóźnienia, a dostęp przez Internet pozwala pracować oddziałom i klientom zdalnym.

Dokument przyjęcia zapisuje numer partii produkcyjnej lub numer seryjny, a dokument wydania wskazuje partię, z której zeszła ilość. Historia ruchów pozwala odtworzyć drogę towaru od dostawcy do odbiorcy.

Glosariusz pojęć związanych z architekturą oprogramowania magazynowego

ASP.Net
Platforma Microsoft do budowy aplikacji internetowych, na której działa interfejs i logika Studio WMS.net.
MS SQL Server
Relacyjny system bazodanowy Microsoft, który przechowuje stany magazynowe i historię ruchów.
SQL Server Express
Bezpłatna edycja SQL Server z ograniczeniami wydajności, między innymi limitem pamięci RAM.
Procedura składowana
Zapisany w bazie zestaw instrukcji T-SQL wywoływany z parametrami, na przykład identyfikatorem użytkownika.
Rola użytkownika
Zestaw uprawnień przypisany do stanowiska, który ogranicza dostęp do funkcji i danych.
Partia produkcyjna
Grupa jednostek wyprodukowanych w jednym cyklu, oznaczona numerem i datą ważności.
Etykieta logistyczna GS1
Etykieta jednostki logistycznej z kodem SSCC i opisem zawartości w standardzie GS1.
Report Builder
Narzędzie do projektowania raportów stronicowanych w środowisku Reporting Services.

Warto przeczytać