Dotyczy wersji 2020.1.x; autor: Dawid Golonka
Praca na obiegach w systemie WEBCON BPS w dużej mierze opiera się na realizowaniu przez użytkowników przydzielonych im zadań. Poprzez przydzielenie zadania należy rozumieć oczekiwanie na wykonanie jakiejś czynności w obiegu przez konkretnego użytkownika bądź ich grupę. Informacje o zadaniach przechowywane są w bazie danych w tabeli WFElementTasks, której opis jest tematem tego artykułu.
Budowa tabeli WFElementTasks
Klucze w tabeli:
- WFT_ID – identyfikator zadania,
- WFT_WFDID – identyfikator elementu,
- WFT_STPID – identyfikator kroku, w którym znajduje się element z zadaniem,
- WFT_WFHID – relacja do tabeli WFHistoryElements, gdzie przechowywana jest historia elementu,
- WFT_AssingTypeID – Rodzaj przypisania zadania:
- 1 – wykonanie wszyscy,
- 2 – wykonanie jeden z wielu,
- 3 – do wiadomości z prawem do edycji,
- 4 – tylko do odczytu.
Opis pozostałych najważniejszych kolumn budujących tabelę WFElementTasks:
- WFT_Description – dodatkowy opis zadania. Może być to informacja o tym, że zadanie jest związane z zastępstwem (z podaniem za kogo wykonywane jest zadanie), informacja, że zadanie zostało zakończone w trybie administratora, bądź dowolny tekst opisu zadania, który wprowadza osoba delegująca zadanie podczas tej czynności;
- WFT_User – osoba, do której przypisane jest zadanie (login),
- WFT_UserName – osoba, do której przypisane jest zadanie (nazwa użytkownika),
- WFT_ElementWasDisplayed – informacja o tym, czy użytkownik do którego przypisane jest zadanie był w formularzu tego elementu (wyświetlił „zadanie”),
- WFT_IsFinished – informacja o tym, czy zadanie jest zakończone,
- WFT_Version – informacja w jakiej wersji elementu znajduje się zadanie (wersji z historii elementu),
- WFT_FinishedByUser – informacja czy zadanie zostało zakończone przez użytkownika,
- WFT_FinishPath – informacja jaką ścieżką przeszedł dokument by zakończyć zadanie,
- WFT_FinishDate – informacja o dacie i godzinie w której zostało zakończone zadanie,
- WFT_FinishedByAdmin – informacja czy zadanie zostało zakończone przez administratora.
Przykładowe zastosowania odczytu danych z tabeli:
- szybkie sprawdzenie statusu zadania,
- wygenerowanie raportu dotyczącego realizacji zadań w kontekście poszczególnych użytkowników,
- sprawdzenie liczby niewykonanych/wykonanych zadań dla konkretnych użytkowników/na poszczególnych krokach,
- sprawdzenie zadań zakończonych przez administratora,
- sprawdzenie zadań o zbliżającym się terminie przedawnienia,
- sprawdzenie zadań, które nie zostały wyświetlone przez użytkowników,
- sprawdzenie szczegółów zadania podczas analizy elementu w tabeli z historią elementu.
Przykład odczytu danych z tabeli
Przykładowe zapytanie zostanie zrealizowane w kontekście obiegu służącego do zgłaszania zapotrzebowania na przedmioty biurowe. Użytkownik składający wniosek o zapotrzebowanie, musi uzyskać na zakup zgodę menadżerów na dwóch szczeblach (kroki Akceptacja I i akceptacja II).
Rys. 1. Obieg składania wniosku o nowe zapotrzebowanie
Poniżej przedstawiony został widok formularza na kroku rejestracji nowego zapotrzebowania. Użytkownik podaje dane rejestrującego, wnioskowany przedmiot oraz wskazuje dwóch akceptujących. W tym konkretnym przypadku przejścia obiegiem, zadanie za Akceptującego I zostanie zakończone w trybie administratora, a Akceptujący II oddeleguje swoje zadanie innemu pracownikowi. Następnie sprawdzimy, jak zostało to odzwierciedlone w tabeli w bazie.
Rys. 2. Widok formularza na kroku rejestracji
Po przejściu obiegiem do końca uzyskujemy dla tego elementu następujący rezultat zapytania:
Rys. 3. Zapytanie do bazy danych dotyczące przykładowego elementu
Pierwsza akceptacja była zadaniem użytkownika Borys Szyc (WFT_UserName), a jego zadanie zostało zakończone z poziomu administratora, o czym dowiadujemy się z kolumn WFT_FinishedByAdmin oraz WFT_Description. Następnie zadanie trafiło do użytkownika Franciszek Sakławski, który oddelegował ręcznie (WFT_ManualCover) zadanie do użytkownika Marcin Pisarek. Oddelegowany użytkownik poprzez przejście ścieżką „Akceptuj” osobiście zakończył zadanie (WFT_FinishedByUser). Jak widać w tabeli WFElementtasks odłożyły się informacje o zadaniach, które utworzone zostały w tym obiegu.
Inne przykładowe zapytania z wykorzystaniem tabeli WFElementTasks:
- Wszystkie zadania w danym obiegu:
Rys. 4. Zapytanie zwracające informacje o wszystkich zadaniach w wybranym obiegu
- Wszystkie niezakończone zadania danego użytkownika:
Rysunek 5. Zapytanie zwracające wszystkie niezakończone zadania danego użytkownika
- Liczba zadań po terminie przypisania do użytkowników systemu:
Rys. 6. Liczba przedawnionych zadań dla poszczególnych użytkowników
- Wyświetlanie niewykonanych zadań, których wymagany termin wykonania minął przeszło 100 dni temu
Rys. 7. Niewykonane zadania, których termin wykonania minął przeszło 100 dni temu
Są to tylko przykłady zapytań korzystających z informacji zawartych w tabeli będącej przedmiotem artykułu, w zależności od potrzeb można tworzyć własne – bardziej rozbudowane zapytania korzystając z pozostałych kolumn i relacji do innych tabel.