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.
Spis treści
- Serwer raportów w architekturze Studio WMS.net
- Wersje i edycje SQL Server dla serwera raportów
- Uprawnienia do raportów
- Monitorowanie wykonań raportów
- Kopie zapasowe i historia raportów
- Eksport, etykiety i integracja z innymi systemami
- Wdrożenie serwera raportów
- Pytania i odpowiedzi o serwer raportów w magazynie
- Glosariusz pojęć związanych z serwerem raportów
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.
| Sekcja | Zakres zestawień |
|---|---|
| Kartoteki | asortyment i kontrahenci |
| Magazyn WMS | stany według numerów palet i lokalizacji, przyjęcia, kompletacja |
| Magazyn | dokumenty magazynowe i rozliczanie kosztów usług |
| Statystyka | wskaźniki pracy, na przykład czas kompletacji i liczba linii na godzinę |
| Zestawienia | zbiorcze listy dokumentów z filtrami dat i kontrahenta |
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.
| Edycja | Zastosowanie | Ograniczenie istotne dla raportów |
|---|---|---|
| Express | mały magazyn, kilku użytkowników, raporty na żądanie | limit pamięci RAM oraz brak SQL Server Agent, więc harmonogramy i subskrypcje są niedostępne |
| Standard | magazyn z wieloma użytkownikami, harmonogramy i subskrypcje | mniejszy zakres funkcji niż Enterprise |
| Enterprise | duże wolumeny i wiele serwerów raportów | koszt 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.
- Żądanie. Przeglądarka przekazuje nazwę raportu i wartości parametrów, a serwer sprawdza uprawnienia użytkownika do folderu.
- Pobranie danych. Serwer wykonuje zapytanie zbioru danych w bazie aplikacji i czeka na wynik.
- Przetwarzanie. Serwer grupuje wiersze i liczy sumy w pamięci.
- Renderowanie. Wynik jest zapisywany do formatu wybranego przez użytkownika, zależnie od jego decyzji.
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.
| Format | Najlepsze zastosowanie | Uwaga |
|---|---|---|
| archiwizacja i przekazanie odbiorcy zewnętrznemu | układ strony pozostaje stały | |
| Excel | dalsza analiza przez dział zakupów albo finansów | duże zestawienia trzeba zawęzić parametrami |
| CSV | import do innego programu | brak 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.
- Etap pierwszy. Raporty operacyjne o stanach i dokumentach, które kierownik zmiany ocenia od pierwszego dnia.
- Etap drugi. Raporty analityczne i finansowe z kosztami usług oraz wskaźnikami, dodawane po kilku tygodniach pracy na danych produkcyjnych.
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.