| 1 | = [wiki:DeployerGuide Przewodnik wdrożeniowca] > Automatyzacja procesów workflow = |
| 2 | |
| 3 | == Podstawowe informacje == |
| 4 | |
| 5 | API Komend akcji |
| 6 | Obecna implementacja komend nie uwzględnia ich pełnej funkcjonalności a jest jedynie zalążkiem. API komend będzie formatu podobnego do csv <nazwa_param>="wartość"[,] czyli np. |
| 7 | {{{ |
| 8 | target="20",dscrpt="Wezwanie, uwaga!" |
| 9 | status="4",controlQuery="SELECT status = 3 FROM processes WHERE prc_id=$prc_id" |
| 10 | }}} |
| 11 | 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") |
| 12 | API parametrów dla komend |
| 13 | |
| 14 | Od wersji 2.2 została dodana możliwość wprowadzania komunikatów w klasach komend, czyli po wykonaniu komendy otrzymujemy informację jak poniżej |
| 15 | |
| 16 | [[Image(zal.gif, nolink)]] |
| 17 | |
| 18 | '''Przekaż dokument''' |
| 19 | |
| 20 | Komenda służy do automatycznego przekazywania dokumentu na wybrane stanowiska za pomocą komendy oraz procedury. |
| 21 | * to = "1" - parametr wskazujący do kogo ma zostać przekazany oryginał , jeśli parametru nie będzie, lub będzie pusty oryginał zostaje |
| 22 | * dw = "2,3,4,5" - do wiadomości |
| 23 | * udw = "6,7,8" - ukryte do wiadomości |
| 24 | |
| 25 | Każda z tych wartości to orunid (najlepiej sprawdzić w orgtree_view) |
| 26 | |
| 27 | '''Sprawdź czy pole jest wypełnione''' |
| 28 | |
| 29 | Komenda służy do sprawdzania czy dane pole formularza jest wypełnione. Przyjmuje 3 parametry z czego 1 jest konieczny. |
| 30 | * field="featid|8" lub "symbol" - pole które ma sprawdzić |
| 31 | * alert = "Wypełnij pole symbol" - wiadomość w przypadku pustej wartości w polu |
| 32 | * doAlertField = "t" - czy ma podświetlić pole jeśli było wymagane jako wypełnione (domyślnie f) |
| 33 | |
| 34 | W przypadku parametru field może on obsłużyć zarówno cechy jak i inne pola. |
| 35 | 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. |
| 36 | |
| 37 | W przypadku jeśli cena będzie wpisana etap zostanie zaznaczony jako wykonany. |
| 38 | |
| 39 | '''Sprawdź prawdziwość warunku SQL''' |
| 40 | |
| 41 | Komenda służy do sprawdzania warunku SQL. Komenda może być użyta tylko dla definicji etapu. Przyjmuje 3 parametr |
| 42 | * query ="SELECT cena IS NOT NULL FROM table WHERE prc_id = {PRC_ID}/doc_id = {DOC_ID}" - sql |
| 43 | * alert = "Wypełnij pole cena" - wiadomość w przypadku niespełnienia sql |
| 44 | * success = "Pole cena wypełnione" - wiadomość w przypadku spełnienia sql |
| 45 | |
| 46 | W przypadku jeśli cena będzie wpisana etap zostanie zaznaczony jako wykonany. |
| 47 | |
| 48 | '''Wróć do etapu''' |
| 49 | |
| 50 | Komenda służy do cofania procedury do konkretnego etapu podanego w parametrze. Komenda może być użyta tylko dla definicji etapu. Przyjmuje 1 parametr ptstid - id etapu z tabeli stages_def |
| 51 | * ptstid ="18" // np OKREŚLENIE WARTOŚCI ZLECENIA |
| 52 | Co oznacza że po zaznaczenie danego etapu dla którego zdefiniowano taka komendę procedura zostanie cofnięta do etapu 18 (np OKREŚLENIE WARTOŚCI ZLECENIA) a co za tym idzie wszystkie etapy od 18 do aktualnie zaklikniętego włącznie zostaną ustawione na niewykonane. |
| 53 | |
| 54 | '''Utwórz zdarzenie''' |
| 55 | |
| 56 | 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) |
| 57 | * dscrpt="Aktualizacja dokumentacji wdrożenia" |
| 58 | * emp_id="{LOGGED_USER}" (lub usr_id z tabeli users) |
| 59 | UPDATE |
| 60 | Zgodnie z wymogami ticketa #3155 dodano kolejne parametry |
| 61 | * trmtyp="TODO" - typ zdarzenia, może być do wyboru MEETING, PHONECALL, ALARM |
| 62 | * start_="featid|81"; - na kiedy ma dodać zdarzenie, wartość jest pobierana z cechy dlatego definicja np featid|81 |
| 63 | * interval="+ 4 days" - interval za jaki utworzyć się zdarzenie, można tworzyć wstecz poprzez - |
| 64 | |
| 65 | '''Sprawdź czy istnieje dokument''' |
| 66 | |
| 67 | 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) |
| 68 | * dctpid="9" |
| 69 | * state_="2" |
| 70 | |
| 71 | '''Utwórz zadanie dla etapu''' |
| 72 | |
| 73 | Komenda działa w dwojaki sposób. Bez parametru dodaje zadanie dla aktualnie zaklikiwanego etapu. Z parametrem doda zadanie dla etapu wskazanego w parametrze. Przyjmuje 1 parametr - ptstid. Parametr ten nie jest wymagany. Parametr ptstid jest to id etapu. z tabeli stages_def. |
| 74 | * ptstid="9" |
| 75 | |
| 76 | Czyli do kolumny params w tabeli action_commands wpisujemy np. tpstid="9" lub w interfejsie użytkownika w słownikach |
| 77 | |
| 78 | '''Zmień status sprawy''' |
| 79 | |
| 80 | 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. Komenda wpisuje kod statusu state_ do klucza pr_sta. Obecnie działa tylko w połączeniu ze sprawami ze względu na to iż dokumenty jest nie obsługują statusów |
| 81 | * tpstid="9" |
| 82 | |
| 83 | Czyli do kolumny params w tabeli action_commands wpisujemy np. tpstid="9" lub w interfejsie użytkownika w słownikach |
| 84 | |
| 85 | '''Uprawnij grupę pracowników do sprawy''' |
| 86 | |
| 87 | 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. |
| 88 | |
| 89 | Parametry |
| 90 | * grpnam="Pracownicy" - nazwa grupy z tabeli groups |
| 91 | * attrib="rwnd" - maska uprawnień według specyfikacji [wiki:Howto/ProcessPriviligesMask Integracja z systemem Subiekt] |
| 92 | Oba parametry są wymagane czyli ciąg z parametrami wygląda np. grpnam="Pracownicy",attrib="rwnd" |
| 93 | |
| 94 | '''Utwórz dokument''' |
| 95 | |
| 96 | 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. |
| 97 | * dctpid="5" -''id typu dokumentu'' |
| 98 | * dctptp="Note" -''typ dokumentu'' |
| 99 | * dscrpt="Wezwanie do wykonania etapy procedury" -''opis dokumentu'' |
| 100 | * do="1" -''id jednostki do której przekazać dokument(orunid)'' |
| 101 | * dw="2,3,4" -''(dw = do wiadomości) jeden lub więcej id (rozdzielone znakiem interpunkcyjnym, zwanym przecinkiem) jednostki do której przekazać kopie dokumentu(orunid)'' |
| 102 | |
| 103 | Przy standardowej instalacji taki parametr utworzy dokument typu notatka służbowa. [[BR]] |
| 104 | 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 |
| 105 | |
| 106 | |
| 107 | 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 ;) |
| 108 | |
| 109 | '''Utwórz zadanie dla następnego etapu''' |
| 110 | Komenda tworzy zadanie dla następnego etapu procedury, o ile w kolejnym etapie jest określone stanowisko i jest na nim user. |
| 111 | Po załatwieniu zadania automatycznie odznacza się etap procedury. Po załatwieniu etapu procedury, automatycznie zaznaczane jest zadanie jako załatwione. |
| 112 | |
| 113 | Parametry: |
| 114 | * brak możliwości określenia - mile widziane zgłoszenia w tym temacie |
| 115 | |
| 116 | |
| 117 | |
| 118 | |
| 119 | |
| 120 | == Dla zaawansowanych == |
| 121 | W workflow biorą udział następujące tabele: |
| 122 | * procedures_def - tabela procedur - przechowuje informacje o procedurze np. Zatwierdzenie faktury kosztowej |
| 123 | * stages_def - tabela etapów - przechowuje definicje poszczególnych etapów np. Akceptacja Prezesa |
| 124 | * stages - instancje etapów - przechowuje informacje o zapisanych etapach konkretnych procesów: spraw, dokumentów |
| 125 | * proc_actions - akcje powiązane z procedurami lub z etapami, wykonują się przed lub po zapisie np. beforeStageChange |
| 126 | * action_commands - komendy wykonywane przez system na akcjach - wybierane spośród zawartych w katalogu commands - można dodać parametry, które dodają się do standardowych dwóch Obiektu Akcji oraz obiektu encji powiązanej z wykonywaną akcją np. Dokument albo Sprawa |
| 127 | |
| 128 | {{{ |
| 129 | |
| 130 | AKCJE |
| 131 | oblig=# \d proc_actions |
| 132 | Table "public.proc_actions" |
| 133 | Column | Type | Modifiers |
| 134 | --------+---------+--------------------------------------------------------------- |
| 135 | pracid | integer | not null default nextval('proc_actions_pracid_seq'::regclass) |
| 136 | actnam | text | [onBeforeProcedureChange|onAfterProcedureChange|onBeforeStageChange|onAfterStageChange] |
| 137 | keyval | integer | |
| 138 | clsnam | text | |
| 139 | |
| 140 | KOMENDY |
| 141 | oblig=# \d action_commands |
| 142 | Table "public.action_commands" |
| 143 | Column | Type | Modifiers |
| 144 | --------+---------+----------- |
| 145 | pracid | integer | |
| 146 | cmdnam | text | |
| 147 | params | text | |
| 148 | |
| 149 | }}} |