Jak działa optymalizacja raportu tabelarycznego od strony administracyjnej?
Ten artykuł opisuje techniczny przebieg optymalizacji uruchamianej z górnego paska raportu tabelarycznego przyciskiem Optymalizuj.
Materiał jest przeznaczony dla administratorów technicznych, SLA i serwisu. Jeśli potrzebujesz krótkiego wyjaśnienia dla twórcy raportu, zacznij od artykułu Co oznacza „Wymaga optymalizacji” w raporcie tabelarycznym?.
Co uruchamia przycisk Optymalizuj
Dział zatytułowany „Co uruchamia przycisk Optymalizuj”Po kliknięciu Optymalizuj frontend raportu wysyła do backendu żądanie optymalizacji konkretnego raportu.
Backend pobiera definicję raportu i sprawdza, z jakiego procesu albo procesów korzysta raport. Następnie wylicza pola potrzebne do działania raportu.
Do tej listy trafiają między innymi:
- pola widoczne w raporcie,
- pola użyte w filtrach,
- pola użyte w sortowaniu,
- pola użyte w filtrach agregacji i KPI.
System porównuje tę listę z konfiguracją danych indeksowanych procesu. Jeżeli raport używa istniejących pól, których nie ma jeszcze w tej konfiguracji, backend dopisuje je do listy pól przygotowywanych do danych indeksowanych.
Co zmienia optymalizacja
Dział zatytułowany „Co zmienia optymalizacja”Optymalizacja aktualizuje konfigurację danych indeksowanych procesu, czyli PrcIndexedDataConfig, i ustawia status indeksowania procesu na Pending.
To ważne rozróżnienie:
- system nie dodaje nowych pól do procesu,
- system nie zmienia formularza,
- system nie zmienia definicji raportu,
- system nie modyfikuje danych biznesowych w sprawach.
Zmienia się lista istniejących pól procesu, które mają być uwzględniane w danych indeksowanych używanych później przez raportowanie.
Który job wykonuje przeliczenie
Dział zatytułowany „Który job wykonuje przeliczenie”Właściwe przeliczenie wykonuje job ProcedureIndexing.
W konfiguracji jobów jest zarejestrowany jako:
jobName:ProcedureIndexing,jobClass:AMODClasses.Jobs.ProcedureIndexingJob,- domyślny harmonogram: co 5 minut.
Samo kliknięcie Optymalizuj nie przebudowuje synchronicznie wszystkich danych indeksowanych w ramach żądania użytkownika. Kliknięcie przygotowuje konfigurację i ustawia proces do obsłużenia przez job.
Jak przebiega praca joba
Dział zatytułowany „Jak przebiega praca joba”Job ProcedureIndexing cyklicznie szuka procesów ze statusem indeksowania Pending.
Dla każdego takiego procesu wykonuje kolejno:
- ustawia status na
InProgress, - generuje dane indeksowane dla spraw tego procesu,
- po poprawnym zakończeniu ustawia status
Completed, - w razie błędu ustawia status
Failed.
Frontend raportu odświeża status optymalizacji i pokazuje użytkownikowi odpowiedni komunikat: oczekiwanie, optymalizowanie, zoptymalizowane albo błąd.
Co sprawdzić, gdy raport długo czeka na optymalizację
Dział zatytułowany „Co sprawdzić, gdy raport długo czeka na optymalizację”Jeżeli użytkownik kliknął Optymalizuj, a raport przez dłuższy czas pokazuje oczekiwanie, sprawdź:
- czy job
ProcedureIndexingjest aktywny, - czy działa usługa albo scheduler wykonujący joby,
- czy w tabeli jobów harmonogram joba nie jest zatrzymany,
- czy proces ma status
Pending,InProgressalboFailed, - czy użytkownik miał uprawnienia do modyfikacji procesu,
- czy konfiguracja danych indeksowanych procesu została zaktualizowana o pola wymagane przez raport.
Najczęstszy scenariusz diagnostyczny jest prosty: kliknięcie ustawiło proces do optymalizacji, ale job nie przetworzył kolejki. Wtedy raport pozostaje w stanie oczekiwania, dopóki job nie zostanie uruchomiony i nie zakończy przeliczenia.
Co sprawdzić przy błędzie optymalizacji
Dział zatytułowany „Co sprawdzić przy błędzie optymalizacji”Jeżeli status przechodzi na błąd, sprawdź:
- logi modułu danych indeksowanych,
- logi joba
ProcedureIndexing, - konfigurację danych indeksowanych procesu,
- pola raportu wskazane w komunikacie Wymaga optymalizacji,
- uprawnienia użytkownika, który uruchomił optymalizację.
Błąd oznacza, że proces został skierowany do optymalizacji, ale przeliczenie danych indeksowanych nie zakończyło się poprawnie.
Wpływ na inne raporty
Dział zatytułowany „Wpływ na inne raporty”Optymalizacja dotyczy danych indeksowanych procesu, a nie wyłącznie pojedynczego raportu. Jeżeli inne raporty korzystają z tego samego procesu i tych samych pól, mogą skorzystać z tej samej konfiguracji.
Zakres korzyści zależy od tego, które pola zostały dodane do konfiguracji danych indeksowanych i które raporty z nich korzystają.