Procedury workflow oparte są o notację BPMN i uwzględniają wszystkie najważniejsze elementy tej notacji. Składają się na nią:
Konfiguracja procedur pozwala tworzyć mapy procesów odnoszące się zarówno do dokumentów jak i spraw. Przykłady wykorzystania dostępne są tutaj: Wykorzystanie procedur
W akcjach etapów można używać komend które będą wykonane w czasie aktywacji danego etapu. Komendy wybiera się z listy wyboru określając dodatkowe parametry np.
target="20",dscrpt="Wezwanie, uwaga!" status="4",controlQuery="SELECT status = 3 FROM processes WHERE prc_id=$prc_id"
Nie zaleca się na obecnym etapie stosowania znaków specjalnych w wartościach parametrów, między nawiasami powinna się znaleść wartośc liczbowa ("5") lub tekstowa bez znaków specjalnych ("Wezwanie do wykonania etapy")
Przekaż dokument
Komenda służy do automatycznego przekazywania dokumentu na wybrane stanowiska za pomocą komendy oraz procedury.
Parametry:
Każda z tych wartości to orunid (najlepiej sprawdzić w orgtree_view)
Sprawdź czy pole jest wypełnione
Komenda służy do sprawdzania czy dane pole formularza jest wypełnione. Przyjmuje 2 parametry i oba są wymagane.
Parametry:
W przypadku parametru field może on obsłużyć zarówno cechy jak i inne pola. W przypadku cechy wpisujemy featid|id cechy z tabeli features dla której będzie wykonywana komenda. Jeśli podamy inny klucz wtedy zostanie od sprawdzony w danych formularza. Klucz wtedy powinien się nazywać tak samo jak nazwa kolumny w bazie w tabeli documents lub processes. Komenda nie pozwala na jednoczesne sprawdzanie dla kilku pól jednak jest możliwość ustawienia kilku tych samych komend z innymi parametrami dla akcji przed lub po zapisie etapu.
W przypadku jeśli cena będzie wpisana etap zostanie zaznaczony jako wykonany.
Sprawdź prawdziwość warunku SQL
Komenda służy do sprawdzania warunku SQL. Komenda może być użyta tylko dla definicji etapu. Przyjmuje 3 parametr
Parametry:
W przypadku jeśli cena będzie wpisana etap zostanie zaznaczony jako wykonany.
Utwórz zdarzenie
Komenda służy do utworzenia zadania dla zalogowanego pracownika lub innego wpisanego w parametrze emp_id jaki usr_id. Zgodnie z #2390. komenda przyjmuje dwa parametry opis zadania oraz emp_id (zgodnie z wymogami komenda akceptuje parametr {LOGGED_USER} który wskazuje na zalogowanego pracownika)
Parametry:
Sprawdź czy istnieje dokument
Komenda służy do sprawdzania czy w danej sprawie występuje konkretny dokument. Zgodnie z #2082. komenda przyjmuje dwa parametry typ dokumenty (id z tabeli types_of_documents) oraz status (wartość z kolumny state_ z tabeli documents)
Parametry:
Zmień status
Obecnie przyjmuje tylko jeden parametr jest to klucz główny tpstid z tabeli types_of_processes_states, który oznacza na jaki status zostanie zmieniony status sprawy lub dokumentu.
Parametry:
Czyli do kolumny params w tabeli action_commands wpisujemy np. tpstid="9" lub w interfejsie użytkownika w słownikach
Uprawnij grupę pracowników do sprawy
Komenda działa niezależnie od tego czy jest ustawiona dla procedury czy etapu. Uprawnia ona wpisana grupe w parametrach na określoną maskę do sprawy. Jeśli dana grupa pracowników została już wcześniej uprawniona wtedy dostajemy komunikat o tym jednak zama sprawa, komenda, etap jest zapisywana.
Parametry:
Oba parametry są wymagane czyli ciąg z parametrami wygląda np. grpnam="Pracownicy",attrib="rwnd"
Znaczenie poszczególnych flag:
r - Odczyt
w - Zapis zadań i dokumentów
d - Oglądanie wszystkich dokumentów
n - Powiadamianie o nowych dokumentach, zadaniach i komentarzach
m - Zarządzanie (karta ogólne i Uprawnienia)
Utwórz dokument
Komenda ta tworzy dokument dla etapu procedury (nie obsługuje utworzenie dokumentu dla procedury). Przyjmuje również tylko 2 parametry i jest nim klucz główny dctpid z tabeli types_of_documents oraz opis jaki zostanie użyty w generowanym dokumencie.
Parametry:
Przy standardowej instalacji taki parametr utworzy dokument typu notatka służbowa.
Do kolumny params w tabeli action_commands wpisujemy np. dctpid="5",dscrpt="Wezwanie do wykonania etapy procedury" lub w interfejsie użytkownika w słownikach
Póżniejsza implementacja będzie również uwzględniach parametry z formularza np nazwę etapu, procedury, lub klucz główne jak np prc_id, contid itd. Pełna funkcjonalność parametrów już niebawem ;)
Utwórz zadanie dla następnego etapu
Komenda tworzy zadanie dla następnego etapu procedury, o ile w kolejnym etapie jest określone stanowisko i jest na nim user. Po załatwieniu zadania automatycznie odznacza się etap procedury. Po załatwieniu etapu procedury, automatycznie zaznaczane jest zadanie jako załatwione.
Parametry:
Utwórz przypomnienie
Komenda tworzy zdarzenie typu przypomnienie o danej procedurze/etapie dla wskazanego pracownika.
Parametry:
Wszystkie parametry są wymagane.
Przekaż dokument do przełożonego
Komenda służy do automatycznego przekazywania dokumentu do przełożonego pracownika wskazanego w parametrze emp_id.
Parametry:
Zarejestruj dokument
Komenda służy do automatycznej rejestracji dokumentu według ustalonej procedury.
Parametry:
Opcjonalnie można użyć innych parametrów, wówczas system obliczy właściwy dziennik (np. wtedy kiedy dokumenty mogą być rejestrowane w różnych dziennikach - np. jednostek rozliczeniowych):
Utwórz załącznik z szablonu
Komenda automatycznie tworzy załącznik do dokumentu na podstawie podanego id szablonu (tabela templates kolumna tpl_id).
Parametry:
Wysyłanie powiadomienia do grupy
Komenda pozwala na wysłanie powiadomienia na wewnętrzny komunikator.
Parametry:
Informacja dodatkowa
Wszystkie parametry maja możliwość pobierania wartości z cech (bez list wyboru definiowanych przez użytkownika) w postaci
lub bezpośrednio z otwartego formularza
Dodatkowo dla dokumentów różnych typów można podawać nazwy kolumn z dodatkowych tabel np dla faktur tabela vatnote itd.
W workflow biorą udział następujące tabele:
Własności służą do zdefiniowania dodatkowych atrybutów procedury - można je traktować jako zmienne procedury.
Dane wejściowe służą tym samym czym odczyt standardowego wejścia w konsoli czy programie (czyli pobraniu od użytkownika znaków)
Przypisania służą nadaniu wartości dla zmiennych procedury jak również nadaniu wartości atrybutom etapu którego dotyczą.
Przypisanie też możemy użyć bez konieczności pobierania danych od użytkownika, możemy je pobrać z bazy danych. Dla tego przykładu gdybyśmy chcieli pobrać Opiekuna klienta którego dotyczy sprzedaż dodalibyśmy Przypisanie z własnością: {stages.orgarr} i wyrażeniem:
SELECT o.orunid FROM contacts c JOIN processes USING(contid) JOIN orgtree_view o ON o.usr_id = c.macrtk WHERE prc_id = {processes.prc_id}
Tworzenie prostych procesów workflow nie wymaga dużego przygotowania, ale do tworzenia bardziej zaawansowanych modeli konieczna jest minimalna znajomość teoretycznych zasad rządzących przepływem procesów.