Wykorzystanie typu dokumentów w tworzeniu obiegów Workflow

Facebooktwitterpinterestlinkedinmail
dotyczy wersji 8.0.x; autor: Kamil Nędza

 

Tworząc obieg dokumentów w firmie, może okazać się, że chcielibyśmy mieć kilka obiegów o podobnym działaniu, jednak różniących się w kilku aspektach. Gdy oczekujemy, że nas dokument będzie procesowany w podobny sposób, jednak oczekujemy, aby formularz na konkretnych krokach się różnił, albo pominięty został dany krok, to śmiało możemy skorzystać z typu dokumentów. Dzięki niemu nie będziemy zmuszeni tworzyć osobno dwóch różnych obiegów. Takie podejście oszczędzi nam czasu nie tylko podczas tworzenia obiegu, ale także podczas ewentualnych późniejszych zmian.

Przykład realizowanej funkcjonalności:

Chcemy zrealizować obieg zapisów na różnego typu świadczenia socjalne (bilety do kina, wycieczki itp.). Jednak niektóre z nich mają ograniczoną ilość (np. ogranicza nas ilość miejsc w autokarze, albo fizyczna ilość dostępnych biletów). Chcemy, aby możliwe było wystartowanie obiegu pod dwoma postaciami:

z limitowaną ilością możliwych zapisów, a w momencie ich wyczerpania, dokument automatycznie się zamknie

bez limitu na ilość chętnych, a dokument przejdzie do archiwum, wyłącznie wtedy, gdy osoba zakładająca dokument przejdzie ścieżką „Zakończ zapisy”

 

Konfiguracja:

Przykładowy prosty obieg realizacji zapisów pracowników, może wyglądać jak na Rys.1.

typ-obiegRys. 1. Schemat graficzny obiegu „Zgłoszenia klientów”

Kiedy mamy już przygotowane atrybuty dla procesu, tworzymy dwa typy dokumentów. W naszym przypadku są to typy o nazwach „Lista – bez limitu”, „Lista – z limitem”. Typy dokumentu tworzymy rozwijając drzewo wyboru po lewej stronie, klikając w gałąź „Typy dokumentów” i klikając przycisk „Nowy”. Gdy już typy dokumentów są gotowe, dla każdego z nich możemy globalnie określić czy będą dostępne dla obiegu, który zostanie wystartowany w ramach danego typu dokumentu. Ich widoczność określamy zaznaczając „Widoczność atrybutów” w prawym panelu. Domyślnie wszystkie atrybuty są widoczne. W naszym przypadku odznaczamy atrybut „Ilość miejsc” dla typu dokumentu „Lista – bez limitu”, ponieważ ilość świadczeń w ramach tego obiegu nie jest ograniczona.

typ-nowy

Rys. 2. Ukrywanie atrybutu „Ilość miejsc” dla typu dokumentu „Lista – bez limitu”

W przedstawionym przykładzie nie ma dużo atrybutów, jednak w produkcyjnych wdrożeniach może być ich naprawdę dużo, a wtedy nietrudno się pogubić. Dlatego istnieje zawsze możliwość podejrzenia na tablicy atrybutów, które atrybuty są widoczne i jak ustawione, dla każdego z typów dokumentów.

 

typ-filter1

typ-filter2

Rys. 3. Przykład użycia filtrowania matrycy atrybutów po typie dokumentu

Przechodzimy do konfiguracji kroku „Zapisy pracowników”. Na poniższym rysunku znajduje się konfiguracja jednej z dwóch ścieżek kroku „Zapisy pracownicze”. Ustawiono widoczność ścieżki tak, aby tylko osoba, która zarejestrowała dokument była w stanie zamknąć dokument.

typ-sciezka

Rys. 4. Ukrycie widoczności ścieżki „Zakończ zapisy” dla osób, które nie są autorem dokumentu

Następnie dodajemy akcję przesuwającą do następnego kroku, na wejście do kroku „Zapisy pracowników”. W momencie, jeżeli typ naszego dokumentu to „Lista – bez limitu”, akcja nie jest wykonywana. W przeciwnym wypadku, sprawdzana jest ilość wpisów w liście pozycji „lista osób”. Jeżeli jest równa ilości dostępnych miejsc, dokument automatycznie przechodzi ścieżką „Zakończ zapisy”.

typ-akcja

Rys. 5. Warunek wykonania SQL dla akcji „Osiągnięto limit”

 

typ-akcja2

Rys. 6. Warunek wykonania SQL dla akcji „Osiągnięto limit”

Weryfikacja działania funkcjonalności

 

Najpierw rejestrujemy dokument o typie „lista – z limitem”. Ustawiamy przykładowy limit na wartość równą 3.

typ-weryfikacja1

Rys. 7. Rejestracja obiegu dla typu dokumentu „Lista – z limitem”

 

Następnie pracownicy są w stanie dodawać wpisy do listy pozycji „Lista osób”. W momencie gdy trzecia osoba przejdzie ścieżką przejścia „zapisz się” dokument automatycznie się zamknie.

typ-weryfikacja2

Rys. 8. Trzecia osoba dopisuje się do listy

 Po przejściu ścieżką przejścia, dokument automatycznie przeszedł do kroku „Zakończono”.

typ-weryfikacja3

Rys. 9. Dokument w kroku końcowym

 Następnie rejestrujemy typ dokumentu „Lista – bez limitu”. W odróżnieniu od poprzedniego typu dokumentu, widzimy, iż nie jest wyświetlana „Ilość miejsc”.

typ-weryfikacja4

Rys. 10. Rejestracja dokumentu dla typu „Lista – bez limitu”

Dokument w kroku „Zapisy pracowników” zachowuje się teraz inaczej. Nie ma żadnego limitu wpisów do listy pozycji „Lista osób”. Dokument nigdy nie przejdzie automatycznie do kroku „Zakończono”. Aby się tam znalazł, osoba rejestrująca dokument musi przejść ścieżką przejścia „Zakończ zapisy”

typ-weryfikacja5

Rys. 11. Wygląd formularza w kroku „Zapisy pracowników” dla typu dokumentu „Lista – bez limitu” od strony osoby rejestrującej.