Tabela WFElementTasks

Facebooktwitterpinterestlinkedinmail
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.