Sygnatury dokumentów w WEBCON BPS

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 2020.1.3.x autor: Jarosława Markopolska

 

Wstęp

Sygnatury w BPS to unikalny numer dokumentu w systemie, pewien określony ciąg znaków (np. EXP/2020/09/00002), który jednoznacznie identyfikuje każdy element w workflow. Jest ona tworzona w momencie pierwszego zapisu dokumentu.

Dzięki sygnaturze, użytkownicy mogą łatwo i jednoznacznie zidentyfikować dokument gdyż ta musi być unikalna w obrębie całego systemu. Dodatkowo można mieć całkowitą pewność, że podana sygnatura będzie zawsze odnosiła się do tego samego dokumentu w obiegu dokumentów w firmie, gdyż nie ma możliwości zmiany sygnatury zarejestrowanego dokumentu, nawet przez administratorów.

Odpowiednio przemyślana struktura sygnatury znacznie usprawnia wyszukiwanie dokumentów (nie znając jego numeru ID czy też właśnie samej sygnatury) i przeglądanie raportów.

BPS oferuje bardzo duże możliwości konfiguracji funkcjonalności, które zostały przedstawione w tym artykule. Poza możliwościami konfiguracyjnymi przedstawione są także zalety definiowania odpowiednich sygnatur oraz są opisane kilka przykładów niestandardowych ustawień.

 

Konfiguracja sygnatur

Sygnatury dla procesu można zdefiniować na 2 różnych poziomach – obiegów lub typów formularza, jednakże zawsze będzie ustawiana tylko jedna z nich (w przypadku zdefiniowania obu naraz, dokumentowi będzie nadawana sygnatura zdefiniowana w typie formularza).

Żeby zademonstrować różnicę w działaniu obu sposobów, wykorzystamy prosty przykład procesu delegacji. Obieg ten będzie posiadał 3 typy formularza– Domestic travel (DOM), Foreign travel (FOR) oraz Local travel (LOC):

a) Na poziomie obiegów dokumentów – sygnatura obiegu jest uwzględniana tylko w przypadku, gdy sygnatura typu formularza, dla którego obieg został uruchomiony, nie została określona lub jest ustawiona na „Pobieraj sygnaturę obiegu” (Rys.1).

Rys. 1 Sygnatura pobierana dla typu formularza

 

W panelu konfiguracji obiegu  w polu wyboru sygnatury wskazany został format sygnatury (Rys.2):

Form type/Year/Month/number in month

Rys. 2 Ustawienie sygnatury na poziomie obiegu

 

W ten sposób kolejne numery będą nadawane w obrębie całego obiegu, nie rozróżniając typów dokumentów. Jeżeli przykładowo zarejestrujmy po jednym dokumencie z każdego typu to ich sygnatury będą wyglądały tak:

  • DOM/2020/09/000001
  • FOR/2020/09/000002
  • LOC/2020/09/000003

b) Na poziomie typów formularzy – w przypadku wybierania jakiejkolwiek innej opcji niż "Pobiera sygnaturę obiegu", dokumentom będzie nadawana sygnatura zdefiniowana w tym miejscu (Rys.3).

Rys. 3 Ustawienie sygnatury na poziomie typu formularza

 

W tym przypadku kolejne numery będą nadawane w obrębie każdego z typów formularza.

Czyli 3 dokumenty, analogiczne jak z poprzedniego punktu, będą miały takie sygnatury:

  • DOM/2020/000001
  • FOR/2020/000001
  • LOC/2020/000001

Dla obu powyższych przykładów, numeracja będzie resetować się w każdym kolejnym roku kalendarzowym. Nieważne, na które miejsce definiowania sygnatury się zdecydujemy, widać już że i tak w większości przypadków, jest to znacznie lepsze rozwiązanie niż nadawanie po prostu nic nie mówiącej numeracji ciągłej (00000567).

Istnieje jeszcze trzeci, znacznie bardziej zaawansowany sposób tworzenia sygnatury – poprzez wykorzystanie dodatku SDK. Takie rozwiązanie umożliwia zastosowanie własnych rozwiązań przy generowaniu numeru dokumentu. Ten sposób nie będzie opisywany w tym artykule, jednak warto pamiętać o tym, że BPS oferuje taką możliwość.

 

Struktura sygnatury

W BPS Designer Studio jest możliwość konfiguracji niestandardowej sygnatury. Po wybraniu opcji „Custom” oraz otwarciu okna edycji wyrażenia możemy  w definicji sygnatury użyć wszystkich atrybutów systemowych, formularza i zmiennych kontekstowych dostępnych w edytorze wyrażeń (Rys.4).

Rys. 4 Sygnatura niestandardowa

 

Tak skonfigurowana sygnatura na formularzu ma wygląd jak na Rys.5.

Rys. 5 Sygnatura na formularzu

 

Jeżeli zdecydujemy się na umieszczenie wartości pola z formularza w sygnaturze, należy pamiętać o tym,

że sygnatura jest nadawana przy pierwszym zapisie dokumentu. Taka forma sygnatury będzie wymagała wprowadzania dodatkowej walidacji, która sprawdzi czy w atrybucie jest podana wartość oraz nie uległa ona zmianie. W przypadku nie podania wartości we wspomnianym atrybucie nie będzie możliwe przejście jakąkolwiek ścieżką lub zapis przez przycisk w menu kontekstowym. Jest to zabezpieczenie przed błędnym utworzeniem sygnatury.

 

Numeracja dokumentów

Listę elementów, w obrębie których możemy numerować dokumenty możemy znaleźć w menu „Sygnatura” (Rys.6).

Rys. 6 Edycja wyrażenia – numeracja sygnatury

 

Poza pokazaną wcześniej numeracją w obrębie bieżącego roku, BPS oferuje także numerację w obrębie miesiąca, dni, atrybutów typu „Data i godzina” oraz numeracje ciągłą, bez uwzględniania daty.

Możliwość numeracji w obrębie atrybutów z datą, jest szczególnie przydatna przy procesach, gdzie data rejestracji dokumentu w workflow, nie zawsze musi odpowiadać np. dacie powstania fizycznego dokumentu.

Dobrym przykładem takiego procesu może być archiwum umów, gdzie początkowo chcemy zarejestrować wszystkie umowy, zawarte nawet na kilka lat przed wdrożeniem WEBCON BPS i jednocześnie chcemy żeby w sygnaturze była widoczna data zawarcia umowy. Warto zaznaczyć, że wykorzystując taki atrybut do numeracji, możemy wybrać jednostkę czasu z podawanej daty, którą chcemy wykorzystać do numeracji (dzień, miesiąc, rok) oraz ewentualnie ustawić numerację w obrębie daty i spółki.

Poza okresami czasu, istnieje możliwość numeracji w obrębie spółek i loginów. Na krótki opis zasługuje pierwsza z tych opcji. Jeżeli w BPS wykorzystywana jest funkcjonalność obsługi wielu spółek, pozwala nam to numerować dokumenty oddzielnie dla każdej z nich. Pozwala to zachować ciągłość numeracji w każdej ze spółek i uniknąć sytuacji, że osoby mające dostęp do wszystkich dokumentów spółki A, nie wiedzą czym jest spowodowana luka w numeracji, podczas gdy te numery zostały przydzielone dokumentom zarejestrowanym w spółce B.

Numerację sygnatury można zdefiniować z autouzupełnianiem do określonej ilości znaków.

Oznacza to, że wszystkie numery będą poprzedzane zerami, tak żeby ich długość dopasować do wybranej długości. Przykładowo, jeżeli wybierzemy autouzupełnianie do 6 znaków i zarejestrujemy 15 z kolei dokument, jego numer to będzie 000015. W edytorze największa dostępna wartość autouzupełniania to maksymalnie 20 znaków.

 

Wyszukiwanie dokumentów

Wyszukać dokument w WEBCON BPS Portal można wpisując sygnaturę dokumentu w pole wyszukiwania jak na Rys. 7.

Rys. 7 Wyszukiwanie dokumentu po sygnaturze

 

Aby ułatwić użytkownikom odnajdywanie konkretnych dokumentów na podstawie ich sygnatur możemy skonfigurować raporty SWE w ten sposób aby domyślnie było wyświetlane pole wyszukiwania po sygnaturze. Zaletą tego rozwiązania jest możliwość wyszukiwania dokumentów po częściowej sygnaturze – jak na Rys.8.

Rys. 8 Wyszukiwanie dokumentu na raporcie

 

Aby uzyskać efekt jak na powyższym zrzucie należy w sekcji „Wyszukiwanie” zaznaczyć „Od razu pokazuj wyniki” i włączyć widoczność panelu wyszukiwania (Rys.9).

Rys. 9. Konfiguracja panelu wyszukiwania

 

Dobre praktyki:

  • Strukturę sygnatury należy bardzo dokładnie przemyśleć przed uruchomieniem produkcyjnym procesu. Wprawdzie istnieje możliwość edycji szablonu w dowolnym momencie, jednak nie jest to zalecane rozwiązanie. Może spowodować zamieszanie wśród użytkowników systemu a także zaburzy ciągłość numeracji kolejnych sygnatur. Sygnatury, utworzonych już dokumentów nie będą mogły zostać zmienione w żaden sposób więc dokumenty w danym procesie nie będą miały jednolitego schematu.
  • Przed wyborem numeracji w obrębie roku, miesiąca lub dnia warto oszacować ile dokumentów może być w każdej z tych jednostek czasu rejestrowanych i na tej podstawie podjąć decyzję o sposobie zawężenia numeracji. Dla obiegu korespondencji, gdzie może być rejestrowanych kilkanaście dokumentów dziennie, najlepszym rozwiązaniem będzie numeracja w obrębie dnia lub miesiąca. Z kolei dla obiegu umów, których w roku będzie kilkadziesiąt i ich ilość nie będzie równomiernie rozłożona na przestrzeni 12 miesięcy, lepszym rozwiązaniem będzie numeracja w obrębie roku lub nawet numeracja ciągła.
  • Aby zachować krótką formę sygnatury, dobrą praktyką jest nadawanie obiegom i typom dokumentów akronimów nie dłuższych niż 3-4 znaki i ich używanie w definicji sygnatury zamiast pełnych nazw.
  • Numeracja ciągła, bez jakiejkolwiek innej informacji (jak nawet akronim procesu czy obiegu) prawie zawsze jest złym rozwiązaniem. Po pierwsze, dostając sam numer np. 00000765 nie dostajemy żadnych dodatkowych informacji o dokumencie (np. czy jest to dokument faktury czy wniosek o urlop) a po drugie będziemy mogli posiadać tylko jeden proces z takim sposobem numeracji – ponieważ sygnatura musi być unikalna w obrębie całego systemu, BPS nie zezwoli na rejestrację dokumentu z drugiego procesu o sygnaturze 00000001 jeżeli taki dokument już istnieje w innym procesie. W niektórych procesach, gdzie zachodzi potrzeba nadania numeracji ciągłej, zawsze warto dodać do tej sygnatury jakiś unikalny element jak np. akronim procesu lub obiegu.
  • Wprawdzie sygnatura dokumentów w systemie jest unikalna i od strony technicznej może także służyć do wyszukiwania elementów w bazie danych, to jeżeli np. potrzebujemy wyświetlić w atrybucie typu „Tabela SQL” informacje z innego dokumentu to ze względów wydajnościowych do dopasowania instancji powinien być używany numer ID dokumentu (WFD_ID) a nie sygnatura.

2 thoughts to “Sygnatury dokumentów w WEBCON BPS”

  1. Czy dobrym pomysłem jest zastosowanie sygnatury jako mechanizmu uniemożliwiającego zduplikowanie wybranych wartości w danym procesie (np. tabele słownikowe – nie mylić z procesami słownikowymi, ponieważ nazwa jest wysoce myląca i są raczej odpowiednikiem listy z sharepointa niż słownikiem (w słowniku nie może się dublować wartość atrybutu wiodącego))?

    Przy okazji, dlaczego po usunięciu elementu z procesu (nie istnieje w żadnym kroku) jego sygnatura wciąż znajduje się w tabeli WFElementSignatures?
    Czy użycie poniższego query jest bezpiecznym sposobem "wyczyszczenia" sygnatury po usunięciu elementu z procesu, w przypadku kiedy proces działa już produkcyjnie i nie można użyć na nim opcji usunięcia danych z narzędzi administracyjnych?
    >>USE BPS_Content
    >>go
    >>delete from WFElementSignatures where
    >>dbo.WFElementSignatures.SIG_ID in (
    >>SELECT dbo.WFElementSignatures.SIG_ID
    >>FROM dbo.WFElementSignatures LEFT OUTER JOIN
    >> dbo.WFElements ON dbo.WFElementSignatures.SIG_ID = dbo.WFElements.WFD_SIGID
    >>WHERE (dbo.WFElements.WFD_SIGID IS NULL)
    >>)
    >>go

Komentarze są zamknięte.