Serwer raportów działa obok aplikacji magazynowej i nie uczestniczy w operacjach na hali. Odbiera żądanie, pobiera dane z bazy Studio WMS.net i zwraca gotowy raport w wybranym formacie. Wiedza o jego budowie przydaje się administratorowi, który odpowiada za wydajność i uprawnienia. Do tego dochodzą kopie zapasowe.

Serwer raportów w architekturze Studio WMS.net

Studio WMS.net korzysta z usługi Microsoft SQL Server Reporting Services (SSRS). Raporty zapisane w formacie RDL przechowuje katalog serwera raportów, czyli baza ReportServer. Druga baza, ReportServerTempDB, zawiera dane tymczasowe. Dane magazynowe pozostają w osobnej bazie aplikacji, a raport łączy się z nią przez źródło danych z zapisanymi poświadczeniami.

Konto, na którym raport łączy się z bazą aplikacji, powinno mieć uprawnienia wyłącznie do odczytu danych. Błąd w raporcie nie może wtedy zmienić stanu magazynowego, a przypadkowe zapytanie nie zablokuje zapisów dłużej niż potrzeba. Hasło tego konta jest zapisane na serwerze raportów i zmienia się je w jednym miejscu.

Raporty w programie dzielą się na pięć sekcji, które wymienia tabela poniżej. Użytkownik szuka raportu tam, gdzie szukałby operacji, a nie w jednej długiej liście.

SekcjaZakres zestawień
Kartotekiasortyment i kontrahenci
Magazyn WMSstany według numerów palet i lokalizacji, przyjęcia, kompletacja
Magazyndokumenty magazynowe i rozliczanie kosztów usług
Statystykawskaźniki pracy, na przykład czas kompletacji i liczba linii na godzinę
Zestawieniazbiorcze listy dokumentów z filtrami dat i kontrahenta
Studio WMS.net - sekcja Magazyn, panel ulubionych z szybkim dostępem do zapisanych widoków i raportów
Panel ulubionych w Studio WMS.net - spersonalizowany dostęp do widoków, raportów i dokumentów

Często używane raporty można dopisać do menu ulubionych, co opisuje strona o menu ulubionych. Wtedy kierownik otwiera dzienne zestawienie jednym kliknięciem, bez przechodzenia przez drzewo menu.

Wersje i edycje SQL Server dla serwera raportów

SoftwareStudio zaleca instalację serwera raportów na SQL Server w wersji 2019 albo nowszej. Edycja zależy od wielkości baz i potrzeb. Edycja Express wystarcza dla prostych rozwiązań, a dla bardziej złożonych wymagań poleca się Standard albo Enterprise. Porównanie edycji zawiera dokumentacja edycji i składników SQL Server.

EdycjaZastosowanieOgraniczenie istotne dla raportów
Expressmały magazyn, kilku użytkowników, raporty na żądanielimit pamięci RAM oraz brak SQL Server Agent, więc harmonogramy i subskrypcje są niedostępne
Standardmagazyn z wieloma użytkownikami, harmonogramy i subskrypcjemniejszy zakres funkcji niż Enterprise
Enterpriseduże wolumeny i wiele serwerów raportówkoszt licencji

Reguła: edycję SQL Server wybiera się przed obietnicą funkcji, a nie po niej. Raport poranny na skrzynce kierownika wymaga harmonogramu, a harmonogram wymaga edycji, która zawiera mechanizm zadań. Ograniczenia opisuje strona o SQL Express w systemie WMS.

Przebieg wykonania raportu

Każde uruchomienie raportu przechodzi przez cztery etapy, a każdy z nich może być źródłem opóźnienia. Rozróżnienie etapów pozwala szukać przyczyny tam, gdzie leży, a nie w całym systemie.

Uprawnienia do raportów

Różne role widzą różne zestawy danych. Operator korzysta z raportów swojego obszaru, kierownik widzi cały magazyn, a zarząd otrzymuje zestawienia zbiorcze. Serwer raportów realizuje to przez role przypisane do folderów, a raport dziedziczy uprawnienia folderu, w którym leży.

Nadawanie ról pojedynczym raportom utrudnia audyt, bo uprawnienia rozpraszają się po katalogu. Wygodniej zbudować strukturę folderów odpowiadającą stanowiskom i przypisać do nich grupy użytkowników. Role i konta w systemie WMS opisuje strona o rolach i użytkownikach.

Filtrowanie danych według użytkownika

Raport może znać login użytkownika, który go uruchamia, dzięki wbudowanemu polu User!UserID. Zapytanie zbioru danych porównuje je z tabelą uprawnień, więc użytkownik widzi tylko magazyny przypisane do jego konta. Mechanizm opisany jest ogólnie i wymaga zdefiniowania takiej tabeli w konkretnym wdrożeniu.

Monitorowanie wykonań raportów

Serwer raportów zapisuje każde wykonanie w widoku ExecutionLog3. Administrator sprawdza wtedy, które raporty trwają najdłużej i czy opóźnienie leży w pobieraniu danych, czy w renderowaniu. Przykład jest ilustracyjny, a czasy w widoku podawane są w milisekundach.

SELECT TOP (10) ItemPath,
       COUNT(*)                          AS Wykonania,
       AVG(TimeDataRetrieval)            AS SredniePobranieMs,
       AVG(TimeProcessing + TimeRendering) AS SredniePrezentacjaMs
FROM ReportServer.dbo.ExecutionLog3
WHERE TimeStart >= DATEADD(DAY, -7, SYSDATETIME())
  AND Status = 'rsSuccess'
GROUP BY ItemPath
ORDER BY SUM(TimeDataRetrieval) DESC;

Duża wartość SredniePobranieMs wskazuje zapytanie do bazy, które trzeba przeanalizować w planie wykonania. Duża wartość SredniePrezentacjaMs oznacza raport z dużą liczbą wierszy w układzie, co poprawia się grupowaniem i zawężeniem zakresu dat.

Dziennik wykonań przechowuje domyślnie dane z ostatnich sześćdziesięciu dni. Porównania dłuższych okresów wymagają okresowego kopiowania widoku do własnej tabeli, na przykład raz w tygodniu. Przy rosnącej liczbie raportów taka historia pokazuje, czy czas pobierania danych rośnie razem z bazą aplikacji.

Kopie zapasowe i historia raportów

Do odtworzenia serwera raportów potrzebne są kopie obu baz oraz klucz szyfrujący. Klucz chroni poświadczenia źródeł danych zapisane w katalogu. Po przywróceniu bazy bez klucza raporty istnieją, ale łączenie z bazą aplikacji przestaje działać, dopóki administrator nie poda poświadczeń od nowa.

Reguła: kopię klucza szyfrującego zapisuje się poza serwerem raportów, w innym miejscu niż kopię baz. Utrata serwera razem z jedyną kopią klucza oznacza ręczne wpisywanie wszystkich poświadczeń od początku.

Historia raportu przechowuje migawki wykonania. Zestawienie z końca miesiąca można odtworzyć w takiej postaci, jaką miało w dniu zamknięcia, nawet jeśli dane w bazie później się zmieniły. Takie migawki wykorzystuje się przy audytach i rozpatrywaniu reklamacji, bo wynik nie zależy od późniejszych korekt.

Eksport, etykiety i integracja z innymi systemami

Każdy raport można wyświetlić online albo pobrać jako plik w jednym z formatów z tabeli poniżej. Plik trafia do odbiorcy bez logowania do systemu magazynowego, co ułatwia przekazanie zestawienia zarządowi albo kontrahentowi. Wysyłkę według harmonogramu opisuje artykuł o subskrypcji raportów.

FormatNajlepsze zastosowanieUwaga
PDFarchiwizacja i przekazanie odbiorcy zewnętrznemuukład strony pozostaje stały
Exceldalsza analiza przez dział zakupów albo finansówduże zestawienia trzeba zawęzić parametrami
CSVimport do innego programubrak formatowania i kolorów

Na serwerze powstają także wydruki dokumentów. Dochodzą do nich etykiety dla jednostek logistycznych i lokalizacji, które mają kody kreskowe lub 2D. Narzędziem do ich projektowania jest bezpłatny Report Builder 3.0, a zasady pracy z nim opisuje strona o Microsoft Report Builder. Układ etykiety logistycznej opisuje standard GS1.

Dane z raportów trafiają do systemów nadrzędnych plikami albo przez integrację, którą opisuje artykuł o komunikacji z programem magazynowym. Szersze tło wymiany danych podaje strona o programie magazynowym online.

Pamięć podręczna i czas odpowiedzi

Raport o stałych parametrach, na przykład wczorajsze wydania, nie musi uruchamiać zapytania przy każdym otwarciu. Serwer może zapisać wynik w pamięci podręcznej i odświeżać go według planu. Odczyt z pamięci podręcznej trwa ułamek czasu zapytania, ale pokazuje stan z ostatniego odświeżenia, co trzeba zaznaczyć w nagłówku raportu.

Wdrożenie serwera raportów

Wdrożenie zaczyna się od decyzji o danych: które zestawienia są potrzebne, jak często mają powstawać i kto je otrzymuje. SoftwareStudio zapewnia wdrożenie i utrzymanie serwera raportów oraz szkolenia dla administratorów i kierowników.

Podział na etapy daje czas na ocenę wydajności zapytań, zanim wzrośnie liczba raportów. Każdy etap powinien zakończyć się decyzją, które zestawienia zostają, a które okazały się niepotrzebne.

Raporty operacyjne, takie jak lista dokumentów przyjęcia, opierają się na dokumentach, które opisuje strona o dokumentach magazynowych. Zestawienia wydań wiążą się z procesem opisanym w artykule o wydaniu z magazynu. Całość funkcji programu zestawia strona o zarządzaniu magazynem.

Pytania i odpowiedzi o serwer raportów w magazynie

Aplikacja pokazuje dane operacyjne i listy, a serwer raportów wykonuje zapytania, formatuje wynik i eksportuje go do PDF, Excel lub CSV. Raporty zapisane na serwerze można uruchamiać, planować i udostępniać osobom spoza systemu. Zmiana wzoru raportu nie wymaga zmiany aplikacji.

SoftwareStudio zaleca wersję 2019 lub nowszą. Edycja Express wystarcza dla prostych rozwiązań z raportami na żądanie. Przy większej liczbie użytkowników i potrzebie harmonogramów wybiera się Standard albo Enterprise.

Uprawnienia nadaje się folderom raportów przez role serwera. Operator, kierownik i zarząd mają osobne foldery, a raport dziedziczy uprawnienia folderu. Raport może dodatkowo filtrować dane według loginu użytkownika.

Widok ExecutionLog3 w bazie ReportServer zapisuje czas pobrania danych, przetwarzania i renderowania dla każdego wykonania. Zapytanie z grupowaniem według ItemPath pokazuje najdłuższe raporty. Dalsza analiza zaczyna się od planu wykonania zapytania.

Tak, za pomocą bezpłatnego Report Builder 3.0. Użytkownik składa raport ze zbioru danych, dodaje filtry i publikuje go na serwerze. Raport ma te same uprawnienia i metody dostarczania co raporty przygotowane przez wdrożeniowca.

Glosariusz pojęć związanych z serwerem raportów

Serwer raportów
Usługa SSRS wykonująca raporty zapisane w katalogu, formatująca wynik i dostarczająca go użytkownikom.
SSRS
SQL Server Reporting Services, platforma Microsoft do tworzenia, wykonywania i zarządzania raportami.
RDL
Report Definition Language, plik XML z definicją raportu, jego źródłami danych, zapytaniami i układem.
ReportServer
Domyślna nazwa bazy katalogu serwera raportów, w której zapisane są raporty, subskrypcje i ustawienia.
ExecutionLog3
Widok w bazie ReportServer z czasem pobrania danych, przetwarzania i renderowania każdego wykonania raportu.
Rola serwera raportów
Zestaw uprawnień, na przykład przeglądanie albo zarządzanie treścią, przypisywany użytkownikom lub grupom do folderu.
Źródło danych
Definicja połączenia raportu z bazą, zawierająca serwer, bazę i sposób uwierzytelnienia.
Etykieta logistyczna
Ustandaryzowana naklejka z kodem kreskowym lub 2D, nadawana jednostce logistycznej, na przykład palecie.

Warto przeczytać

Obsługa informatyczna przedsiębiorstw i wdrażanie systemów WMS SoftwareStudio
Obsługa informatyczna przedsiębiorstw: analiza potrzeb, integracja systemów, aplikacje dedykowane na SQL Server i Android, szkolenia użytkowników i wsparcie.
Czytaj artykuł →
SQL Express w systemie magazynowym WMS.net
SQL Express w Studio WMS.net: limity darmowej edycji SQL Server, kopie zapasowe bez SQL Server Agent, kontrola rozmiaru bazy w T-SQL i przejście na Standard.
Czytaj artykuł →
Magazyn klienta - system WMS z dostępem online dla operatorów logistycznych 3PL
Magazyn klienta w WMS dla operatorów 3PL: karta kontrahenta, cennik indywidualny, separacja danych, reguły FIFO i FEFO oraz zabezpieczenie wierszy w SQL Server.
Czytaj artykuł →
Przeglądarkowy WMS dla magazynów wysokiego składowania do 30 m
Aplikacja internetowa WMS dla magazynu wysokiego składowania do 30 m: architektura ASP.NET i SQL Server, rejestracja dokumentów oraz terminale radiowe.
Czytaj artykuł →
Uprawnienia magazyniera i kierownika w magazynie wysokiego składowania - szablony ról WMS
Role i użytkownicy Studio WMS.net w magazynie wysokiego składowania: magazynier i kierownik, administrator i kontrahent, szablony ról oraz kontrola w T-SQL.
Czytaj artykuł →
Rozliczanie paletodób w obcym magazynie wysokiego składu - dwie ewidencje w Studio WMS.net
Obcy magazyn wysokiego składu: dwie ewidencje, rozliczanie składowania w paletodobach, portal dla kontrahentów i VMI w Studio WMS.net. Przykład zapytania T-SQL.
Czytaj artykuł →