Dane operacyjne firmy siedzą w Impuls EVO, dziś sprzedawanym jako BPSC ERP: sprzedaż, zapasy, produkcja, rozrachunki. Problem rzadko polega na tym, że danych brakuje. Polega na tym, że żeby zrobić z nich zestawienie, ktoś eksportuje je do Excela, skleja z drugim eksportem, poprawia ręcznie i buduje ten sam raport co miesiąc od nowa. Excel jest świetny do jednorazowej analizy. Jako stały sposób raportowania z ERP staje się wąskim gardłem i źródłem błędów.

Poniżej pokazuję, jak raportować na danych z Impulsa bez tej rutyny i czym raport na żywo różni się od kolejnego arkusza.

Dlaczego eksport do Excela to ślepa uliczka

Raport zbudowany na eksporcie ma kilka wad, które ujawniają się dopiero po czasie:

  • jest nieaktualny już w chwili powstania, bo pokazuje stan z momentu eksportu,
  • trzeba go odtwarzać ręcznie przy każdej aktualizacji, co zjada czas tej samej osoby co miesiąc,
  • łatwo o pomyłkę, bo dane przechodzą przez kopiowanie, sklejanie i ręczne formuły,
  • nie da się go bezpiecznie udostępnić, bo plik krąży mailem w wielu wersjach,
  • wiedza siedzi w jednej głowie, bo tylko autor wie, które kolumny trzeba poprawić po eksporcie.

Im ważniejsza decyzja zapada na podstawie takiego raportu, tym bardziej te wady bolą.

Dlaczego dwa raporty z tego samego systemu pokazują różne liczby

To pytanie pada na każdym spotkaniu o raportowaniu i prawie nigdy nie chodzi o błąd w bazie. Chodzi o definicje, których nikt nie zapisał:

  • Data dokumentu czy data sprzedaży. Faktura wystawiona 2 sierpnia za dostawę z 31 lipca wpada do lipca albo do sierpnia, zależnie od tego, którą datę bierze raport.
  • Korekty i storna. Jeden raport odejmuje korekty w miesiącu wystawienia, drugi w miesiącu faktury pierwotnej. Różnica potrafi być znacząca.
  • Które magazyny i które typy dokumentów wchodzą. Przesunięcia międzymagazynowe, dokumenty techniczne i sprzedaż wewnętrzna raz są liczone, raz nie.
  • Netto, brutto, marża liczona jak. Marża od ceny zakupu, od kosztu standardowego czy od ostatniej ceny zakupu to trzy różne liczby.
  • Stan na kiedy. Zapas „na dziś” po zamknięciu dnia i przed nim to nie to samo.

Dlatego pierwsza rzecz, którą robię przy raporcie, to nie zapytanie do bazy, ale ustalenie definicji i zapisanie jej przy raporcie. Raport bez opisanej definicji zawsze doprowadzi do spotkania, na którym dwie osoby kłócą się o dane, choć obie mają rację.

Raport na żywo, prosto z bazy

Alternatywą jest raport, który czyta dane bezpośrednio z bazy Impulsa i pokazuje aktualny stan w chwili otwarcia. Zamiast eksportować i sklejać, otwierasz zestawienie i widzisz to, co jest w systemie teraz. Taki raport:

  • liczy się na bieżących danych, bez pośredniego pliku,
  • filtruje się po okresie, magazynie, kontrahencie czy asortymencie bez przebudowy,
  • wygląda tak samo za każdym razem, więc liczby są porównywalne,
  • może działać cyklicznie i sam trafiać na skrzynkę we wskazanym dniu,
  • ma zapisaną definicję, więc każdy wie, co dokładnie pokazuje.

Firma przestaje odtwarzać zestawienia, a zaczyna z nich korzystać.

Raport, który zabija bazę

Jest jedna pułapka, o której warto wiedzieć, zanim ktoś zacznie budować raportowanie na produkcyjnej bazie. Zestawienie liczące pół roku sprzedaży w rozbiciu na pozycje potrafi obciążyć bazę tak, że użytkownicy Impulsa poczują to od razu. Najgorszy scenariusz to raport uruchamiany co kilka minut przez odświeżające się pulpity w godzinach szczytu.

Rzeczy, które to rozwiązują, są zwykle proste, ale muszą być zaplanowane:

  • ciężkie zestawienia liczone raz, w nocy, i odczytywane z gotowej tabeli
  • lekkie zestawienia liczone na bieżąco, bo dotyczą jednego dnia albo jednego kontrahenta
  • limit zakresu w samym raporcie, żeby nikt nie zamówił dziesięciu lat naraz
  • osobna baza raportowa albo replika przy naprawdę dużym wolumenie

To rozróżnienie między raportem, który może liczyć się na żywo, a takim, który musi liczyć się w nocy, jest ważniejsze niż wybór narzędzia do wyświetlania wykresów.

Dashboard dla zarządu i alerty progowe

Nie każdy odbiorca potrzebuje tabeli. Zarząd zwykle chce kilku liczb i trendu: sprzedaż w okresie, marża, należności po terminie, zapas, który nie schodzi. Dashboard pokazuje to na jednym ekranie, aktualizując się z danych Impulsa, bez proszenia kogokolwiek o zestawienie.

Osobna, przydatna warstwa to alerty progowe. Zamiast codziennie zaglądać do raportu, dostajesz sygnał dopiero wtedy, gdy coś przekroczy ustalony próg: należność po terminie powyżej kwoty, zapas poniżej minimum, marża na zamówieniu poniżej granicy. Raport odpowiada na pytanie zadane teraz, alert pilnuje sytuacji, o której nie chcesz pamiętać.

Alerty mają jedną zasadę: musi ich być mało. Powiadomienie, które przychodzi codziennie, przestaje być czytane po tygodniu, a wtedy nie działa nawet wtedy, gdy naprawdę coś się dzieje.

Kto co widzi: dostęp do danych

Raportowanie dotyka danych, których nie każdy w firmie powinien oglądać. Handlowiec ma widzieć swoich klientów, kierownik magazynu swoje stany, a pełne zestawienie finansowe tylko wskazane osoby. Dlatego dostęp do raportów układa się według ról, tak żeby każdy widział to, co do niego należy, i nic ponadto. To wygodniejsze niż plik krążący mailem i bezpieczniejsze, bo dane nie wychodzą z systemu bez kontroli.

Co się dzieje z raportami po aktualizacji systemu

Raport czyta dane z konkretnych struktur w bazie, a te przy aktualizacjach systemu mogą się zmieniać. Raport zbudowany naprędce, bez zastanowienia nad tym, na czym się opiera, potrafi po podniesieniu wersji pokazać ciszę albo, co gorsza, liczby, które wyglądają wiarygodnie i są błędne.

Dlatego raportowanie buduję tak, żeby odwoływało się do danych przez własną, kontrolowaną warstwę, a nie rozsypywało się po kilkudziesięciu miejscach. Wtedy sprawdzenie po aktualizacji jest robotą na godziny, nie na tygodnie. Więcej o tej zasadzie piszę w tekście o modyfikacjach odpornych na aktualizacje.

Kiedy Excel jest dobrym wyborem

Uczciwie: nie do wszystkiego trzeba budować raport w systemie. Excel ma sens, gdy analiza jest jednorazowa, gdy ktoś dopiero szuka odpowiedzi i nie wie jeszcze, o co pyta, albo gdy trzeba zbudować model, który nigdy nie będzie odtwarzany. Excel przestaje mieć sens dokładnie w momencie, w którym ten sam plik jest odtwarzany po raz trzeci. To dobry moment, żeby zamienić go w raport.

AI nad gotowym raportem

Kiedy raporty już liczą się na aktualnych danych, można postawić nad nimi warstwę pytań w języku naturalnym: które pozycje spadły najmocniej miesiąc do miesiąca, którzy klienci mają największe zaległości. Działa to dobrze pod jednym warunkiem: dane muszą być uporządkowane, bo AI zapytane o bałagan zwróci bałagan. O tym, jak rozsądnie wpiąć AI w dane z ERP, piszę w osobnym artykule o AI na danych Impuls ERP. Kolejność jest ważna: najpierw porządny raport, potem AI nad nim.

Jak buduję raportowanie na Impulsie

Raporty i dashboardy stawiam na bazie Oracle Impulsa i udostępniam je przez API albo aplikację webową nad ERP, z dostępem według ról. Gotowe zestawienia, które robiłem u klientów, zebrałem w narzędziu raportowym Coliber. Punktem wyjścia zawsze jest pytanie, jaką decyzję ma wspierać dany raport, bo od tego zależy, co i jak w nim pokazać. A gdy firma potrzebuje więcej niż zestawień, na przykład panelu dla handlowców albo portalu dla kontrahentów, buduję to jako oprogramowanie na zamówienie.

Od czego zacząć

Nie od listy dwudziestu raportów. Od jednego, który dziś zajmuje najwięcej czasu i wraca co miesiąc. Zrobienie go porządnie, razem z definicją i dostępem, pokazuje, czy dane w Waszym Impulsie są gotowe na resztę, i ustawia wzorzec dla kolejnych. Dopiero potem warto zabierać się za dashboard.

Pytania o raporty na danych Impulsa

Czy potrzebujemy hurtowni danych albo Power BI?

Nie do pierwszych raportów. Impuls stoi na bazie Oracle, z której da się czytać wprost, a większość pytań, które firma zadaje co miesiąc, nie wymaga osobnej warstwy analitycznej. Hurtownia zaczyna mieć sens, gdy raporty realnie obciążają bazę produkcyjną albo gdy trzeba łączyć dane z kilku systemów.

Dlaczego dwa raporty pokazują różne liczby?

Prawie zawsze z powodu innej definicji, nie błędu w danych: inny zakres dat, inne traktowanie korekt, inne rozumienie tego, co jest sprzedażą. Dlatego raport bez zapisanej definicji jest w praktyce niesprawdzalny — a taka definicja to podstawowa rzecz, którą zostawiam razem z raportem.

Czy raporty nie obciążą bazy produkcyjnej?

Mogą, jeśli ktoś napisze je bez uwagi. Ciężkie zapytanie uruchomione o dziewiątej rano potrafi zauważalnie zwolnić pracę w systemie. Dlatego raporty, które przetwarzają duże zakresy, przenoszę na godziny nocne albo na kopię, a te działające na żywo pisze się tak, żeby korzystały z indeksów.

Kto będzie widział te dane?

Tyle, ile powinien. Dostęp do raportu to część raportu, nie dodatek — inaczej raport z wynagrodzeniami albo marżą krąży po firmie w załączniku. Zakres dostępu ustalamy razem z pierwszym raportem, nie po fakcie.

Czy raporty przetrwają aktualizację systemu?

Te, które czytają dane przez własne widoki i zapytania oddzielone od standardu — tak. Te, które opierają się bezpośrednio na strukturach mogących się zmienić, wymagają przeglądu po większej aktualizacji. To ta sama zasada, co przy modyfikacjach odpornych na aktualizacje.

Porozmawiajmy o Twoich raportach

Jeśli co miesiąc odtwarzasz te same zestawienia w Excelu albo czekasz na raport, który ktoś musi ręcznie przygotować, napisz. Wystarczy, że pokażesz jeden taki plik i powiesz, jaką decyzję na jego podstawie podejmujecie. Sprawdzę, co da się policzyć bezpośrednio z Twojej bazy Impulsa, i podam, co trzeba zrobić, ile to potrwa i ile kosztuje, zanim cokolwiek ruszy.