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.
Spis treści
- Warstwy aplikacji internetowej ASP.Net
- Dostęp przez przeglądarkę, sieć lokalna i Internet
- Klienci zdalni i uprawnienia w bazie
- Baza SQL Server: wersja Express i Standard
- Identyfikowalność towaru i etykiety
- Raporty i podgląd wskaźników
- Bezpieczeństwo dostępu przez Internet
- Aktualizacje, kopie zapasowe i utrzymanie serwera
- Wydajność przy rosnącej liczbie ruchów
- Rozbudowa przez dokładanie modułów
- Pytania i odpowiedzi o oprogramowanie magazynowe w przeglądarce
- Glosariusz pojęć związanych z architekturą oprogramowania magazynowego
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.
| Warstwa | Zadanie | Gdzie działa | Co trzeba utrzymywać |
|---|---|---|---|
| Interfejs | formularze dokumentów, listy, mapa lokalizacji | przeglądarka na dowolnym urządzeniu | nic, poza aktualną przeglądarką |
| Serwer aplikacji ASP.Net | logika procesów, uprawnienia, generowanie dokumentów | serwer firmy lub chmura | aktualizacja w jednym miejscu |
| Baza MS SQL Server | stany, historia ruchów, transakcje | ten sam serwer lub osobny | kopie zapasowe i wydajność |
| Moduły mobilne | skanowanie i potwierdzanie operacji na hali | terminal 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.
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
- Rola. Zestaw funkcji przypisany do stanowiska, na przykład przyjęcia bez dostępu do konfiguracji.
- Konto klienta. Ograniczony do własnych towarów podgląd stanów i dokumentów.
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.
| Wariant | Typowe zastosowanie | Ograniczenie do sprawdzenia |
|---|---|---|
| SQL Server Express | mały magazyn, kilku użytkowników | limit pamięci, brak zautomatyzowanych zadań |
| SQL Server Standard | wielu użytkowników, kopie o ustalonej godzinie | koszt 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.
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.
- Indeks po lokalizacji. Przyspiesza odczyt stanu gniazda przy skanie na terminalu.
- Indeks po indeksie towaru. Przyspiesza zapytania o dostępność w wielu lokalizacjach.
- Archiwizacja ruchów. Przeniesienie starych dokumentów do tabel archiwalnych skraca bieżące listy, o ile magazyn przyjmuje taką zasadę.
- Raporty poza szczytem. Zestawienia z długich okresów uruchamia się wtedy, gdy terminale pracują mniej intensywnie.
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.
- Zwroty. Obsługa towaru wracającego od klienta, z decyzją o przywróceniu do obiegu albo skierowaniu do serwisu.
- Cross-docking. Przekazanie przyjętego towaru do wydania bez odkładania go na regał.
- Integracja z ERP. Wymiana dokumentów z systemem sprzedaży i księgowości.
- Terminale mobilne. Skanowanie na urządzeniach z Androidem, o których pisze strona o terminalach radiowych.
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.