Archiwizacja

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 2022.1.x i powyżej, autor: Łukasz Maciaszkiewicz

 

Wprowadzenie

Stale rosnąca ilość danych oraz problem kurczącej się przestrzeni dyskowej i spadku wydajności stanowi wyzwanie dla każdego systemu informatycznego. Aby stawić mu czoła, w WEBCON BPS zaimplementowano rozbudowany mechanizm archiwizacji pozwalający w sposób zautomatyzowany usuwać dane z  baz procesów. Zapewniane w ten sposób lepsze uporządkowanie przestrzeni dyskowej przekłada się na zwiększoną wydajność i bezawaryjność całego systemu.

W niniejszym artykule opisano wspomniany mechanizm archiwizacji w WEBCON BPS oraz zawarto informacje na temat jego konfiguracji.

 

UWAGA: archiwizacji nie należy mylić z kopią zapasową danych – zarchiwizowanych formularzy bądź załączników nie można przywrócić do bazy zawartości. Archiwizacja to operacja jednokierunkowa i nieodwracalna.

 

Mechanizm archiwizacji w WEBCON BPS

W systemie WEBCON BPS archiwizacji podlegają wskazane przez użytkownika procesy. Oznacza to, że archiwizacja nie wpływa na aplikację, w której znajduje się archiwizowany proces, ani na ewentualne pozostałe, zgrupowane w niej procesy.  Odmiennie wygląda kwestia archiwizacji procesów powiązanych – procesu nadrzędnego i podrzędnego. Archiwizacja procesu nadrzędnego pociąga za sobą archiwizację procesu podrzędnego. W sytuacji odwrotnej archiwizacja procesu podrzędnego powoduje, że element nadrzędny zachowuje się tak, jak gdyby nigdy nie posiadał elementu podrzędnego.

Warto wspomnieć w tym miejscu o danych, które nie podlegają archiwizacji. Zasadniczo należą do nich wszystkie treści dynamiczne, takie jak dane w atrybutach typu „Tabela danych”, „Wiersz danych”, „Wykres”, czy „HTML”. Ponadto archiwizacji nie podlegają zewnętrzne kontrolki użytkownika, a także działania reguł formularzy i reguł biznesowych.

Istotną kwestią jest widoczność elementu, który został zarchiwizowany. Element taki będzie posiadał widoczność pól odpowiadającą widoczności pól na ostatnim etapie, gdy znajdował się on w bazie zawartości (jeśli część atrybutów była ukryta na matrycy atrybutów – w widoku archiwum dane te nie będą widoczne). Ponadto, choć ogólny wygląd elementu odpowiada konfiguracji na matrycy atrybutów, to w następstwie archiwizacji pomijane są wspomniane powyżej pola zawierające treści dynamiczne. Warto także nadmienić, że po zarchiwizowaniu zmiana widoczności atrybutu (na matrycy) nie wpływa na widoczność atrybutu w widoku zarchiwizowanym.

Porównanie widoku elementu przed i po archiwizacji. W ramkach zaznaczono: (1) atrybuty typu „Osoba lub grupa”, „Pojedynczy wiersz tekstu” i „Liczba zmiennoprzecinkowa”; (2) Atrybut typu „Tabela danych” zawierający treści dynamiczne

 

Konfiguracja

  • Baza danych

W zależności od wybranego trybu archiwizacji, aby ją przeprowadzić konieczne może być wcześniejsze utworzenie bazy archiwum, do której przeniesione zostaną dane. Jest to możliwe już na etapie instalacji WEBCON BPS, ale także później za pomocą instalatora WEBCON BPS. Po jego uruchomieniu należy wybrać opcję „Narzędzia do zarządzania systemem”.

Opcja „Narzędzia do zarządzania systemem” w oknie instalatora umożliwia przejście do kreatora bazy archiwum

 

Następnie w panelu po lewej stronie należy przejść do kroku „Kreacja bazy danych”, zaznaczyć „Bazy archiwum” (powiązane z konkretną bazą zawartości) i kliknąć „Utwórz bazę archiwum”.

Węzeł „Kreacja bazy danych” i okno wyświetlane po jego wybraniu

 

Po kliknięciu przycisku, po prawej stronie pojawi się możliwość zdefiniowania parametrów bazy danych, takich jak nazwa oraz użytkownik (otrzyma uprawnienia właściciela na tworzonej bazie). Po uzupełnieniu wymaganych pól i kliknięciu przycisku „Utwórz” instalator wyświetli podsumowanie parametrów, jakie zostaną nadane bazie danych. Po zatwierdzeniu rozpocznie się proces kreacji bazy danych. Gdy baza danych zostanie utworzona, na ekranie pojawi się odpowiedni komunikat zawierający podstawowe dane na temat tej bazy.

Pole umożliwiające zdefiniowanie parametrów bazy archiwum

 

Jeśli została utworzona co najmniej jedna baza danych archiwum, to w WEBCON BPS Designer Studio w sekcji „Konfiguracja systemu”, węzeł „Baza danych”, w grupie „Bazy archiwum” istnieje możliwość zdefiniowania, która z tych baz danych ma być bazą domyślną. Ze wskazanej w tym miejscu bazy danych korzystają wszystkie procesy podczas wywoływania akcji „Archiwizuj elementy workflow”, chyba że dla wybranego procesu została zdefiniowana inna baza. Wybranym procesom można przypisać dedykowaną bazę danych archiwum na poziomie konfiguracji tego procesu w zakładce „Ustawienia”.

Konfiguracja domyślnej bazy archiwum

 

  • Struktura bazy danych

Struktura bazy danych archiwum przypomina uproszczoną wersję bazy danych procesów. W jej skład wchodzą następujące tabele:

  • GlobalParameters – przechowuje ogólne informacje na temat bazy danych archiwum;
  • WFArchivedElementDatas – zawiera pliki XML przechowujące informacje na temat danego elementu oraz jego historii;
  • WFAttachmentFiles – zapisuje zarchiwizowane pliki załączników;
  • WFDataAttachmets – zawiera informacje na temat zarchiwizowanych załączników;
  • WFElementDetails – przechowuje dane z list pozycji archiwizowanych elementów;
  • WFElements – zapisuje główne informacje na temat zarchiwizowanego elementu, takie jak ID dokumentu, sygnatura, wartości poszczególnych pól formularza z wyjątkiem list pozycji itp. Jest ona wykorzystywana wyłącznie do wyświetlania danych raportowych. Wartość wskazywana na formularzu jest pobierana z pliku XML zarchiwizowanego elementu.
  • WFSecurities – przechowuje informację na temat uprawnień poszczególnych osób do zarchiwizowanych elementów;

 

  • Rola serwisu

Samo utworzenie bazy danych archiwum nie wystarczy do poprawnego działania akcji archiwizacji. Aby serwis był w stanie poprawnie przetwarzać kolejkę archiwizacji, konieczne jest uruchomienie dodatkowej roli w konfiguracji serwisu. W tym celu należy przejść do sekcji „Konfiguracja systemu” i w ustawieniach serwisu zaznaczyć pole wyboru „Archiwizacja elementów workflow”. Po zapisaniu ustawień, konieczne jest ponowne załadowanie konfiguracji serwisu. Jeśli rola nie zostanie uruchomiona lub konfiguracja serwisu nie zostanie wczytana ponownie, akcja archiwizacji nie zadziała.

Uruchomienie roli serwisu „Archiwizacja elementów workflow”

 

  • Wątki archiwizacji

Akcje archiwizacji mogą być uruchamiane wielowątkowo, niemniej domyślnie ustawiony jest tylko jeden wątek. Konfigurację tę można zmienić w ustawieniach serwisu. W tym celu należy przejść do sekcji „Konfiguracja systemu”, węzeł „Konfiguracja serwisów”, „Serwisy”, a następnie do konfiguracji serwisu odpowiedzialnego za rolę archiwizacji. W zakładce „Konfiguracja” znajduje się pozycja „Liczba wątków dla archiwizacji”. Po zmianie domyślnej liczby wątków należy kliknąć przycisk „Zapisz”. Należy jednak pamiętać, że zmiana liczby wątków może wpłynąć na obniżenie wydajności systemu.

Zmiana liczby wątków archiwizacji

 

  • Akcje

Mechanizm archiwizacji wbudowany w WEBCON BPS daje możliwość skorzystania z dwóch akcji archiwizacji:

  • Archiwizuj elementy workflow – akcja jest wykorzystywana do archiwizowania wybranych elementów obiegu. Akcja może być wykonywana w następujących kontekstach: „Na wejście”, „Na zakończenie”, „Na timeout”, „Przycisk w menu”, „Na ścieżce przejścia”, „Na zapis elementu workflow” oraz „Cykliczne (startowe)”.
  • Zarządzanie elementami archiwalnymi – akcja jest wykorzystywana do wykonywania działań na już zarchiwizowanych elementach obiegu. Oprócz procedury „Na zapis elementu workflow”, akcja wywoływana jest w takich samych kontekstach, jak opisane dla akcji „Archiwizuj elementy workflow”.

Podstawową różnicą między tymi akcjami jest baza danych, na której są wykonywane działania oraz liczba poziomów archiwizacji możliwych do skonfigurowania. W przypadku pierwszej akcji dostępne są wszystkie trzy wymienione w punkcie poniżej poziomy archiwizacji, natomiast w przypadku akcji „Zarządzanie elementami archiwalnymi” istnieje możliwość wybrania tylko dwóch poziomów: „Przeniesienie do zewnętrznej lokalizacji sieciowej” oraz „Usunięcie z bazy archiwum”.

  • Poziomy archiwizacji

Archiwizacja może przebiegać na trzech poziomach. Niezależnie od wyboru poziomu archiwizacji dane są nieodwracalnie usuwane z bazy danych procesów. Pozostaje w niej jedynie informacja o sygnaturze usuniętych elementów w celu zachowania unikalności – sygnatura nigdy nie może się powtórzyć. Wspomniane poziomy archiwizacji opisano poniżej:

  1. Przeniesienie do bazy archiwum: wybrane elementy obiegu wskazane w akcji archiwizacji są przenoszone do osobnej, dedykowanej bazy danych. Po wykonaniu tej czynności zarchiwizowane dokumenty są dostępne już wyłącznie w trybie tylko do odczytu, natomiast przeglądanie ich jest możliwe z poziomu odpowiednio skonfigurowanego raportu. Wybierając opcję przenoszenia danych do bazy archiwum, użytkownik zachowuje możliwość podglądu wszystkich danych historycznych oraz powiązanych załączników.
  2. Przeniesienie do zewnętrznej lokalizacji sieciowej – elementy obiegu wyznaczone do archiwizacji zostaną przeniesione na wskazaną lokalizację sieciową w postaci plików ZIP. Paczka ZIP składa się z pliku PDF zawierającego metadane przedstawiające ostatni stan formularza sprzed archiwizacji oraz pliku XML przechowującego historię elementów wraz z załącznikami. Elementy podobiegów mogą być przechowywane w osobnych paczkach (jeden podobieg – jedna paczka) lub całościowo w jednej paczce z elementami głównego obiegu. Aby skorzystać z tej opcji konieczne jest zdefiniowanie w konfiguracji procesu lokalizacji sieciowej, na którą zostanie wyeksportowana paczka z plikami.
  3. Usunięcie z bazy operacyjnej – w przypadku trzeciego poziomu archiwizacji zasada konfiguracji jest podobna jak w przypadku pierwszego poziomu, z tą różnicą, że elementy obiegu zostaną nieodwracalnie usunięte z operacyjnej bazy danych. Żadne kopie tych elementów nie zostaną zachowane.

Aby ustawić dany poziom archiwizacji, po dodaniu akcji do automatyzacji należy kliknąć ikonę wielokropka pionowego w bloczku akcji, a następnie z menu rozwijanego wybrać opcję „Konfiguracja”. W nowym oknie w sekcji „Podstawowe ustawienia” należy rozwinąć listę wyboru w polu „Poziom archiwizacji” i wybrać jeden z trzech wspomnianych powyżej poziomów. Po określeniu poziomu należy ewentualnie określić „Tryb tworzenia paczek” (dotyczy wyłącznie poziomu „Przeniesienie do zewnętrznej lokalizacji sieciowej”). W sekcji „Kryteria wyboru elementów” możliwe jest wskazanie, w jaki sposób mają być wybierane elementy do archiwizacji. W polu „Tryb wyboru elementów” za pomocą rozwijanej listy możliwe jest wskazanie, czy archiwizacji ma być poddany tylko bieżący element („Archiwizacja tylko bieżącego elementu”), czy elementy do archiwizacji mają zostać wskazane za pomocą zapytania SQL („Wybór elementów za pomocą SQL”). W przypadku wyboru drugiej opcji konieczne jest wstawienie zapytania SQL w polu „Zapytanie SQL”.

Dostępne opcje konfiguracji akcji omówiono szczegółowo poniżej.

Konfiguracja akcji „Archiwizuj elementy workflow”

 

Poziom archiwizacji –  pole umożliwia wybór jednego z opisanych powyżej poziomów archiwizacji.

Tryb tworzenia paczek – w przypadku korzystania z drugiego poziomu archiwizacji, czyli przeniesienia elementów do zewnętrznej lokalizacji sieciowej, istnieje możliwość wyboru jednego z dwóch trybów tworzenia paczek ZIP:

  • Obieg i jego podobiegi w jednej paczce – elementy zarówno obiegu głównego, jak i podobiegów, są eksportowane do jednej wspólnej paczki ZIP;
  • Obieg i jego podobiegi w osobnych paczkach – elementy obiegu głównego oraz wszystkich podobiegów są eksportowane do osobnych paczek ZIP (jeden podobieg do jednej paczki).

Priorytet – decyduje o kolejności archiwizowania elementów w zakresie od 1 do 10. Elementy z priorytetem „1” będą przetwarzane jako pierwsze, natomiast z priorytetem „10”, jako ostanie w kolejności. Dostępna jest również opcja „Godziny nocne”. Po zaznaczeniu tej opcji priorytet zostanie automatycznie ustawiony na wartość „11”. Elementy z takim priorytetem będą przetwarzane wyłącznie w godzinach nocnych, które można skonfigurować w konfiguracji serwisów w gałęzi „Harmonogramy” („Konfiguracja systemu” – „Konfiguracja serwisów” – „Harmonogramy”). Aktualny stan elementów kolejki można sprawdzić w raporcie „Kolejka archiwizowania elementów” („Raporty” – „Raporty podstawowe” – „Kolejka archiwizowania elementów”). Zalecane jest uruchamianie archiwizacji w godzinach nocnych, aby zminimalizować ryzyko pogorszenia wydajności systemu.

Kryteria wyboru elementów – w tej sekcji definiowane jest zapytanie SQL zwracające dane, które zostaną poddane archiwizacji. Pierwsza wynikowa kolumna powinna zwrócić ID elementów, które należy zarchiwizować. Zapytanie wykonywane jest w kontekście domyślnej bazy danych. Gdy akcja użyta jest w cyklu, nie ma możliwości skorzystania ze stałych działających w kontekście elementu. Dodatkowo w przypadku dużej ilości danych zalecanie jest, aby zapytanie SQL zwracało dane w kilku mniejszych paczkach poprzez zastosowanie klauzuli „TOP”. Podczas budowy zapytania SQL należy pamiętać, aby ID zwracanych elementów nie pokryło się z tymi znajdującymi się w kolejce archiwizacji, w przeciwnym razie wykonanie akcji zakończy się błędem. W tym celu w zapytaniu T-SQL należy odwołać się do tabeli „ArchiveQueueItems”, w której znajdują się aktualne informacje na temat kolejki. Kolumna ARQ_WFDID przechowuje ID przetwarzanego elementu, a tym samym jest kluczem obcym odwołującym się do kolumny WFD_ID w tabeli „WFElements”.

Akcje archiwizacji wywoływane na formularzu mają możliwość dodania elementu do kolejki archiwizacji w kontekście bieżącego elementu. Pozwala to np. na skonstruowanie akcji cyklicznych przesuwających poszczególne elementy procesu z kroku A do kroku B, natomiast na przejściu ścieżką wywołać pojedynczą akcję dodania elementu do archiwizacji.

UWAGA: archiwizacja to operacja jednokierunkowa i nieodwracalnazarchiwizowanych elementów nie można przywrócić do bazy danych procesu. Aby uniknąć ewentualnych szkód wywołanych zapytaniem SQL z niewłaściwym filtrem, należy przetestować zapytanie wybierające elementy do archiwizacji.

 

Kolejka archiwizacji

 

UWAGA: archiwizacja może być procesem długotrwałym i obciążającym serwer. Ustalając harmonogram archiwizacji, najlepiej zadbać o to, aby odbywała się ona poza zwyczajowymi godzinami pracy, np. w godzinach nocnych, w weekendy itd. Ponadto przy archiwizacji dużej ilości danych warto korzystać z osobnych paczek.

 

Archiwizacja elementów jest wykonywana w sposób asynchroniczny. Oznacza to, że akcje archiwizacji dodają elementy do kolejki, która jest następnie przetwarzana przez serwis. Podgląd aktualnego stanu kolejki archiwizacji jest możliwy z poziomu BPS Designer Studio w sekcji raportów (węzeł „Raporty podstawowe” → „Kolejka archiwizowania elementów”) lub poprzez wykonanie zapytania T-SQL do tabeli ArchiveQueueItems. Raport zawiera podstawowe informacje na temat przetwarzanego elementu oraz liczbę wykonanych prób przetworzenia. Maksymalna liczba prób przetworzenia to pięć. Pierwsza próba wykonuje się od razu zgodnie z interwałem serwisu, kolejna (druga) próba po kolejnym interwale serwisu, trzecia próba jest wykonywana po 5 minutach, czwarta po godzinie, natomiast ostania próba wykonuje się po 24 godzinach. Jeśli po tym czasie nie uda się zarchiwizować elementu, kolejka przestaje go przetwarzać, a status tego elementu jest ustawiany jako błąd. Przetwarzanie elementu w jednej próbie również jest ograniczone czasowo i nie może przekroczyć 300 s. Jeśli element nie zostanie zarchiwizowany w tym czasie, nastąpi kolejna próba jego przetworzenia. Wartość ta jest stała i nie ma możliwości jej zmiany z poziomu WEBCON BPS Designer Studio. Zaawansowani użytkownicy MS SQL mogą zaktualizować tę wartość z poziomu MS SQL Server Management Studio. Wartość ta jest przechowywana w bazie konfiguracyjnej, w tabeli „Services”, w kolumnie „S_ArchivingDeleteTimeout”. Na raporcie znajdują się również przyciski „Resetuj”, „Usuń” oraz „Edytuj”. Pierwszy z nich umożliwia zresetowanie liczby wykonanych prób do „0”, co będzie skutkowało rozpoczęciem przetwarzania elementu od nowa. Przycisk „Usuń” pozwala na całkowite usuniecie elementu z kolejki i zaniechanie jego dalszej archiwizacji. Ostatnia opcja „Edytuj” umożliwia zmianę priorytetu przetwarzania, który został domyślnie ustawiony przez akcje archiwizacji. Cały mechanizm archiwizacji jest oparty na trzech operacjach:

  • wylistowanie danych do archiwizacji poprzez akcję;
  • dodanie elementów do kolejki;
  • usunięcie ich z głównej bazy zawartości.

Wszystkie trzy operacje: SELECT, INSERT oraz DELETE są wykonywane w jednej transakcji.

Kolejka archiwizowania elementów w sekcji „Raporty” zawierająca dwa elementy oczekujące na zarchiwizowanie

 

Raporty

WEBCON BPS dostarcza również funkcjonalność, która umożliwia raportowanie zarchiwizowanych elementów. W tym celu w WEBCON BPS Designer Studio na wybranej aplikacji należy przejść do zakładki „Raporty” znajdującej się w sekcji „Prezentacja” i kliknąć przycisk „Dodaj”. W nowo utworzonym raporcie należy podać jego nazwę i przejść do zakładki „Konfiguracja”, a następnie w sekcji „Proces” wybrać z listy rozwijalnej opcję „Zarchiwizowane” i wskazać proces, dla którego mają zostać wyświetlone zarchiwizowane dane. Analogicznie jak w przypadku zwykłego raportu, w kolejnych zakładkach istnieje możliwość zdefiniowania wyświetlanych kolumn, grupowania, sortowania itp. W stosunku do zwykłego raportu raport elementów zarchiwizowanych posiada mniej opcji. Pierwszą różnicą jest brak filtru przypisania oraz filtru predefiniowanego, ponieważ na elementach archiwalnych nie mogą być utworzone żadne zadania użytkownika. Kolejną różnicą jest brak zakładki „Masowe akcje”, ponieważ elementy te są dostępne wyłącznie w trybie tylko do odczytu i nie można wykonywać na nich żadnych operacji. W zakładce „Widoki” znikła również opcja dodawania w górnym panelu raportu przycisków do startowania nowych elementów. Uprawnienia do zarchiwowanych elementów posiadają wszyscy administratorzy globalni jak i procesowi. Dodatkowo w uprawnieniach procesu istnieje możliwość zdefiniowania dodatkowych osób, które otrzymają dostęp na poziomie administratora do wszystkich elementów archiwum. Zarchiwizowane elementy nie są indeksowane przez SOLR, przez co nie ma możliwości wyszukiwania ich przy pomocy głównej wyszukiwarki. Elementy te można odnaleźć jedynie z poziomu raportu zarchiwizowanych dokumentów.

Dodawanie raportu na temat zarchiwizowanych elementów

Porównanie raportu zawierającego elementy zarchiwizowane i raportu z elementami niezarchiwizowanymi

 

  • Przechowywanie a wyświetlanie danych zarchiwizowanego elementu

Należy wspomnieć, iż istnieje różnica pomiędzy źródłem prezentacji zarchiwizowanych formularzy na raporcie, a bezpośrednio na formularzu. Kiedy użytkownik otwiera raport prezentujący zarchiwizowane elementy, system pobiera dane z bazy archiwum za pomocą zapytania SQL (zapytanie można podejrzeć w trybie diagnostycznym w analogiczny sposób jak ma to miejsce w standardowym raporcie).

Inaczej system zachowa się przy otwieraniu konkretnego formularza zarchiwizowanego elementu, tzn. system rozparsuje plik XML, który znajduje się w bazie danych. Pliki XML przechowywane są w tabeli WFArchivedElementDatas, a kolumna identyfikująca formularz to WAE_WFDID. Natomiast plik XML w którym znajdują się dane formularza, znajduje się w kolumnie WAR_ArchivedElement, z kolei zarchiwizowana historia jest dostępna w kolumnie WAE_ArchivedHistory. Pliki mogą zostać pobrane po wejściu na zarchiwizowany formularz. W menu formularza znajdą dostępne dwa przyciski, odpowiednio:

  • Dane ostatniej wersji
  • Dane historyczne
  • Uprawnienia do raportów archiwizacyjnych

Dostęp do wszystkich zarchiwizowanych elementów obiegu posiadają administratorzy biznesowi. Ponadto uprawnienia takie można nadać konkretnym użytkownikom, wprowadzając ich dane w polu „Zarządzanie archiwum” w zakładce „Uprawnienia” danego procesu (drzewo wyboru → nazwa aplikacji → nazwa procesu → „Uprawnienia” → „Zarządzanie archiwum”). Należy pamiętać przy tym, że pole może być edytowane wyłącznie po podpięciu bazy archiwum, a określone w nim osoby mogą podglądać dokumenty, które znajdują się już w bazie archiwum. Co istotne, przeniesienie elementu z bazy operacyjnej do bazy archiwizacyjnej wiąże się z wycofaniem uprawnień części użytkowników do konkretnych elementów. Oznacza to, że osoba posiadająca uprawnienia do danego elementu w bazie operacyjnej po jego archiwizacji utraci je. Nadanie uprawnień do konkretnego zarchiwizowanego elementu jest możliwe z poziomu formularza. Aby to zrobić, należy kliknąć ikonę koła zębatego („Akcje administracyjne”) w prawym górnym rogu i wybrać z menu rozwijanego opcję „Uprawnienia”. Oprócz możliwości podejrzenia osób posiadających uprawnienia do elementu, możliwe jest także ich dodanie w polu „Dodawanie uprawnień”. Warto zaznaczyć, że osoba tworząca dokumenty nie posiada dostępu do elementów w bazie archiwizacyjnej i odwrotnie – osoba posiadająca uprawnienia do zarządzania archiwum nie posiada dostępu do elementów w bazie operacyjnej.

Podsumowanie

Zaimplementowany w WEBCON BPS mechanizm archiwizacji umożliwia sprawne zarządzanie elementami i przestrzenią dyskową. Kierując się informacjami zawartymi w niniejszym artykule możliwe jest skonfigurowanie go w sposób gwarantujący wysoką wydajność całego systemu i usprawnione zarządzanie coraz większą ilością danych gromadzonych z upływem czasu.