== Komendy workflow == 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" }}} Komendy można również tworzyć samodzielnie poprzez dodanie skryptu do katalogu apps/edokumenty/commands. Nazwa skrypty musi się kończyć na Command.inc np. !ChangeRulesCommand.inc, a kod komendy musi implementować narzucony interfejs. W tym miejscu znajdują się przykłady oraz API [wiki:DeployerGuide/Customization/ProcessAutomation/CommandAPI API komend workflow] {{{ #!html }}} ---- {{{ #!html
Przekaż dokument
}}} Komenda służy do automatycznego przekazywania dokumentu na wybrane stanowiska. ''Parametry:'' ||Nazwa||Wartość||Opis|| ||to||"1"||parametr wskazujący do kogo ma zostać przekazany oryginał , jeśli parametru nie będzie, lub będzie pusty oryginał zostaje|| ||dw||"2,3,4,5"||do wiadomości|| ||udw||"6,7,8"||ukryte do wiadomości|| Wszystkie wartości w parametrach to orunid z widoku orgtree_view. ---- {{{ #!htmlSprawdź 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:'' ||Nazwa||Wartość||Opis|| ||field||"featid|8" lub "symbol"||pole które ma sprawdzić|| ||alert||"Wypełnij pole symbol"||wiadomość w przypadku pustej wartości w polu|| ---- {{{ #!htmlSprawdź prawdziwość warunku SQL
}}} Komenda służy do sprawdzania warunku SQL. ''Parametry:'' ||Nazwa||Wartość||Opis|| ||query||"SELECT cena IS NOT NULL FROM table WHERE prc_id = {PKEYVALUE}"||zapytanie SQL|| ||alert||"Wypełnij pole cena"||wiadomość w przypadku niespełnienia sql|| ||success||"Pole cena wypełnione"||wiadomość w przypadku spełnienia sql|| ---- {{{ #!htmlUtwórz zdarzenie dla pracownika
}}} Komenda służy do utworzenia zdarzenia określonego typu (domyślnie zadanie) dla pracownika. ''Parametry:'' ||Nazwa||Wartość||Opis|| ||dscrpt || "Aktualizacja dokumentacji wdrożenia"||opis zdarzenia|| ||emp_id || "{LOGGED_USER}" || id pracownika lub pracowników oddzielone znakiem przecinka, którym zostanie przypisane to zdarzenie (usr_id z tabeli users)|| ||grp_id || "2"||id grupy lub grup pracowników oddzielone znakiem przecinka, którzy zostaną dodani do zadania (grp_id z tabeli groups)|| ||orunid || "11" || identyfikator stanowiska lub stanowisk osób oddzielone znakiem przecinka, które zostaną dodane do zdarzenia ('''Pracownicy -> Struktura organizacyjna -> ID''')|| ||trmtyp || "TODO" || typ zdarzenia, może być do wyboru MEETING, PHONECALL, ALARM|| ||start_ || "featid|81" || na kiedy ma dodać zdarzenie, wartość jest pobierana z cechy dlatego definicja np featid|81|| ||end!___ || "featid|81" || data zakończenia|| ||interval || "+ 4 days" || interval za jaki utworzyć się zdarzenie, można tworzyć wstecz poprzez -|| ||ptstid || "2" || id etapu z tabeli stages_def lub (ptstid="next") dla następnego etapu (ten parametr nie jest wymagany)|| ||witinf || "t" || poinformuj mnie jeśli zadanie (dotyczy tylko trmtyp = TODO) zostało wykonane - parametr nie jest wymagany domyślnie przyjmuje wartość t aby nie powiadamiać należy wpisać f lub FALSE|| ||stgevt || "1" || parametr ten powoduje powiązanie etapu z zadaniem co w efekcie umożliwia automatyczne załatwienie zadania poprzez załatwienie etapu procedury. Domyślnie parametr ten posiada wartość 1. Jeśli nie chcesz aby zadanie było powiązane z etapem wpisz 0 (zero)|| ||prev||""||poprzednik(i) identyfikator zadania w projekcie (kolejne wartości należy oddzielać znakiem przecinka)|| ||next||""||nastepnik(i) identyfikator zadania w projekcie (kolejne wartości należy oddzielać znakiem przecinka)|| Parametry dscrpt i emp_id są wymagane. ---- {{{ #!htmlSprawdź czy istnieje dokument
}}} Komenda służy do sprawdzania czy w danej sprawie występuje konkretny dokument. ''Parametry:'' ||Nazwa||Wartość||Opis|| || dctpid || "9" || id typu dokumentu ze słownika ('''Ustawienia -> Panel sterowania -> Dokumenty -> Typy dokumentów -> kolumna id''')|| || state_ || "2" || identyfikator rodzaju dokumentu 1 - wychodzący, 2 - przychodzący 3 - wewnętrzny|| ---- {{{ #!htmlZmiana statusu
}}} Komenda zmienia status zlecenia (sprawy/dokumentu) na podany w parametrze. Jeśli komenda jest wykonywana w kontekście procedury dokumentu wtedy dodatkowo jest zmieniany stan załatwienia dokumentu na załatwiony. ''Parametry:'' ||Nazwa||Wartość||Opis|| || tpstid || "9" || id statusu ze słownika statusów dla odpowiedniej klasy ('''Ustawienia -> Panel sterowania -> Ogólne -> Statusy -> kolumna id''')|| ---- {{{ #!htmlUprawnij grupę pracowników do sprawy
}}} Komenda służy do nadania lub aktualizacji uprawnień grupie lub pracownikom do sprawy. Jeśli grupa lub pracownik zostali już już wcześniej uprawnieni wtedy następuje aktualizacja poziomu uprawnień.. ''Parametry:'' ||Nazwa||Wartość||Opis|| || grp_id || "2" || id grupy, którą chcemy uprawnić do sprawy (grp_id z tabeli groups) - parametr zamienny z grpnam|| || usr_id || "2,3,4" || id pracowników, których chcemy uprawnić|| || grpnam || "Pracownicy" || nazwa grupy która zostania przydzielona do sprawy ('''Pracownicy -> Grupy''') - parametr zamienny z grp_id|| || attrib || "rwnd" || maska uprawnień|| Znaczenie poszczególnych flag maski uprawnień: * 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) ---- {{{ #!htmlUprawnij grupę pracowników do dokumentu
}}} Komenda służy do nadania (aktualizacji) uprawnień grupie pracowników lub pracownikom do dokumentu. Jeśli grupa lub pracownik zostali już już wcześniej uprawnieni wtedy następuje aktualizacja poziomu uprawnień. ''Parametry:'' ||Nazwa||Wartość||Opis|| || grp_id || "2" || id grupy, którą chcemy uprawnić do dokumentu (grp_id z tabeli groups) - parametr zamienny z grpnam|| || usr_id || "2,3,4" || id pracowników, których chcemy uprawnić|| || grpnam || "Pracownicy" || nazwa grupy która zostania przydzielona do dokumentu ('''Pracownicy -> Grupy''') - parametr zamienny z grp_id|| || attrib || "rwnd" || maska uprawnień|| Znaczenie poszczególnych flag maski uprawnień: * r - odczyt * w - zapis * m - zarządzanie ---- {{{ #!htmlUtwórz dokument
}}} Komenda ta tworzy dokument określonego typu. Komenda przyjmuje następujące parametry: ''Parametry:'' ||Nazwa||Wartość||Opis|| || dctpid || "5" || id typu dokumenty ('''Ustawienia -> Panel sterowania -> Typy dokumentów -> kolumna ID''')|| || dctptp || "Note" || nazwa klasy typu dokumentu (dctptp z tabeli types_of_documents) parametr zamienny z dctpid|| || dscrpt || "Wezwanie do wykonania etapy procedury" || treść dokumentu|| || prc_id || "123" || identyfikator sprawy (processes.prc_id) pod którą dokument zostanie dodany. Domyślnie jest to identyfikator sprawa w kontekście, której wykonywana jest procedura lub atrybut dokumentu (sprawa), z którego wykonywana jest procedura|| || do || "1" || id stanowiska na jakie zostanie przekazy dokument (orunid z tabeli organization_units)|| || 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 z tabeli organization_units)|| || grp_id || "2" || id grupy, którą chcemy uprawnić do dokumentu (grp_id z tabeli groups)|| || usr_id || "2,3,4" || id pracowników, których chcemy uprawnić|| || attrib || "rwnd" || maska uprawnień|| Znaczenie poszczególnych flag maski uprawnień: * r - odczyt * w - zapis * m - zarządzanie ---- {{{ #!htmlUtwórz przypomnienie
}}} Komenda tworzy zdarzenie typu przypomnienie o danej procedurze/etapie dla wskazanego pracownika. ''Parametry:'' ||Nazwa||Wartość||Opis|| || usr_id || "2" || dla kogo zostanie utworzone przypomnienie ('''Pracownicy -> Konta pracowników -> kolumna id''')|| || orunid || "1" || identyfikator stanowiska osoby dla której chcemy dodać przypomnienie ('''Pracownicy -> Struktura organizacyjna -> ID'''), parametr zamienny z usr_id w przypadku podania obu parametrów pierwszeństwo ma parametr usr_id|| || start_ || "SQL::SELECT now()" || na kiedy ma ustawić przypomnienie|| || dscrpt || "Przypomnienie o zatwierdzeniu etapu" || opis przypomnienia|| ---- {{{ #!htmlPrzekaż dokument do przełożonego
}}} Komenda służy do automatycznego przekazywania dokumentu do przełożonego pracownika wskazanego w parametrze emp_id. ''Parametry:'' ||Nazwa||Wartość||Opis|| || emp_id || "{LOGGED_USER}" || id użytkownika którego przełożony otrzyma dokument domyślnie id zalogowanego (usr_id z tabeli users)|| ---- {{{ #!htmlZarejestruj dokument
}}} Komenda służy do automatycznej rejestracji dokumentu według ustalonej procedury. ''Parametry:'' ||Nazwa||Wartość||Opis|| || reg_id || "2" || id rejestru z tabeli registers w którym zostanie zarejestrowany dokument - używany wówczas gdy z góry znamy właściwy dziennik. 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)|| ''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):'' ||Nazwa||Wartość||Opis|| || orunid || "{acorid}" || id jednostki organizacyjnej po której zostanie wyszukany dziennik (tabela registers kolumna orunid), w przypadku jeśli chcemy aby wartość orunid była pobrana bezpośrednio z formularza np pole jednostka rozliczeniowa na formularzu faktury parametr ten powinien wyglądać w następujący sposób orunid="{acorid}"|| || regtyp || "RegOfVatNotes" || typ rejestru w danym orunid (kolumna regtyp z tabeli registers)|| || type!__ || "1" || typ rejestru (1 = wychodzący, 2 = przychodzący, 3 = wewnętrzny)|| ---- {{{ #!htmlUtwórz załącznik z szablonu
}}} Komenda automatycznie tworzy załącznik do dokumentu na podstawie podanego id szablonu (tabela templates kolumna tpl_id). ''Parametry:'' ||Nazwa||Wartość||Opis|| || tpl_id || "23" || id szablonu z tabeli templates, parametr jest wymagany|| ---- {{{ #!htmlWysyłanie powiadomienia
}}} Komenda pozwala na wysłanie powiadomienia na zadany sposób. ''Parametry:'' ||Nazwa||Wartość||Opis|| ||dscrpt || "Zebranie zarządu" || treść powiadomienia|| ||grp_id || "2" || id grupy, której pracownicy otrzymają powiadomienie (kolumna grp_id z tabeli groups)|| ||grpnam || "Zarząd" || zamienny parametr do grp_id, nazwa grupy (kolumna grpnam z tabeli groups)|| ||usr_id || "2" || id użytkownika (users.usr_id) do którego zostanie wysłane powiadomienie|| ||orunid || "1" || identyfikator stanowiska lub stanowisk osób oddzielone znakiem przecinka, które zostaną dodane do odbiorców powiadomienia (Pracownicy -> Struktura organizacyjna -> ID)|| ||type!__ || "Communicator" || rodzaj powiadomienia, obecnie wspierane są Communicator - wewnętrzny komunikator, Document - notatka służbowa, Mail - powiadomienie zostanie wysłane na adres mailowy zapisany w kartotece pracownika|| Aby komenda zadziałała musi być podany jeden z 3 parametrów: grp_id, grpnam, usr_id lub orunid. W przypadku podania wszystkich parametrów określających odbiorców ,lista odbiorców jest łączona z poszczególnych wartości parametrów. Powiadomienie nie jest wysyłane do osoby wykonującej etap. ---- {{{ #!htmlWyślij wiadomość email
}}} Komenda pozwala na wysłanie wiadomości email do określonych odbiorców. Dodatkowo istnieje możliwość automatycznego załączenia załączników dokumentu do emaila. ''Parametry:'' ||Nazwa||Wartość||Opis|| || from!__ || "SQL::SELECT email FROM users WHERE usr_id = {LOGGEG_USER}" || pole od kogo domyślnie jest wstawiane eDokumentyDodaj wyjątek do kalendarza pracownika
}}} Komenda dodaje wyjątek do kalendarza pracownika (zasobu) z atrybutami dzienny, niepracujący. ''Parametry:'' ||Nazwa||Wartość||Opis|| || usr_id || "{LOGGED_USER}" || identyfikator pracownika (users.usr_id), któremu zostanie dodany wyjątek do kalendarza. W przypadku jeśli pracownik o podanym identyfikatorze nie posiada kalendarza ('''Ustawienia -> Panel sterowania -> Kalendarz i karty pracy -> Kalendarze''') system automatycznie utworzy kalendarz, który będzie dziedziczył po domyślnym kalendarzu systemowym|| ||dscrpt || "Wyjazd na urlop" || opis dodawanego wyjątku. Uwaga - należy zapewnić unikalność nazw wyjątków w obrębie jednego kalendarza|| ||from!__ || "2011-08-10" || data rozpoczęcia obowiązywania wyjątku w formacie YYYY-MM-DD np 2011-08-10|| ||to!__!__ || "2011-08-20" || data zakończenia obowiązywania wyjątku w formacie YYYY-MM-DD np 2011-08-20|| ---- {{{ #!htmlZamknij sprawę
}}} Komenda zamyka sprawę na której wykonywany jest etap procedury. Komenda działa tylko i wyłącznie w kontekście sprawy.. ''Parametry:'' brak parametrów ---- {{{ #!htmlUtwórz projekt z szablonu
}}} Komenda generuje strukturę spraw oraz zadań zgodnie z zadanym identyfikatorem szablonu projektu. ''Parametry:'' ||Nazwa||Wartość||Opis|| || ptplid || "1" || identyfikator szablonu projektu (projects_templates.ptplid)|| || dsexid || "45" || identyfikator teczki z wyciągu z wykazu akt|| ||contid || "677" || domyślny identyfikator kontrahenta (contacts.contid)|| ||start_ || "2011-08-20" || data rozpoczęcia|| Wszystkie parametry są wymagane ---- {{{ #!htmlUtwórz sprawę
}}} Komenda automatycznie tworzy nową sprawę. W przypadku jeśli komenda jest w procedurze podpiętej pod sprawę nowo utworzona sprawa zostaje ustawiona jako podrzędna. ''Parametry:'' ||Nazwa||Wartość||Opis|| || dossmb || "ORG/10" || symbol teczki z wyciągu z wykazu akt '''Ustawienia -> Panel sterowania -> Sprawy -> Wyciąg z wykazu akt -> Symbol''' parametr zamienny z dsexid|| || dsexid || "45" || identyfikator teczki z wyciągu z wykazu akt '''Ustawienia -> Panel sterowania -> Sprawy -> Wyciąg z wykazu akt -> ID''' parametr zamianny z dossmb|| || dscrpt || "Nowa sprawa" || opis sprawy|| || contid || "677" || identyfikator kontrahenta (contacts.contid, '''Lista kontrahentów -> Kolumna ID''') domyślnie jest przepisywany z kontekstu procedury|| || fxterm || "{CURRENT_DATE}" || termin realizacji sprawy (domyślnie {CURRENT_DATE} + 7 dni)|| || rspuid || "{LOGGED_USER}" || osoba odpowiedzialna za sprawę (users.usr_id, '''Pracownicy -> Konta pracowników -> ID''' domyślnie identyfikator zalogowanego pracownika {LOGGED_USER}|| || prtpid || "23" || identyfikator procedury (procedures_def.prtpid, '''Ustawienia -> Panel sterowania -> Ogólne -> Procedury -> ID'''. W przypadku nie podania tego parametru brana pod uwagę jest procedura zadeklarowana dla teczki|| || grp_id || "2" || id grupy, którą chcemy uprawnić do sprawy (grp_id z tabeli groups) - parametr zamienny z grpnam|| || usr_id || "2,3,4" || id pracowników, których chcemy uprawnić|| || attrib || "rwnd" || maska uprawnień|| Znaczenie poszczególnych flag maski uprawnień: * 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) ---- {{{ #!html }}} ''Informacja dodatkowa'' Wszystkie parametry maja możliwość pobierania wartości w następujący sposób: * z cechy * emp_id = "featid|81" * emp_id = "featid::81" * dscrpt = "Pracownik featid::81::string prosi o udzielenie urlopu okolicznościowego" * bezpośrednio z otwartego formularza * emp_id = "{rspuid}" gdzie wartość {rspuid} zostanie zamieniona na wartość w kolumnie (polu) odpowiedniej tabeli - dla formularza dokumentu documents (plus dodatkowe tabele) dla sprawy processes. W podanym przypadku pole rspuid (osoba odpowiedzialna w sprawie) jest wartością z kolumny rspuid z tabeli processes. * jako wynik zaptania SQL * emp_id = "SQL::SELECT usr_id FROM users WHERE usr_id = featid|81" * emp_id = "SQL::SELECT usr_id FROM users WHERE usr_id = featid::81" * emp_id = "SQL::SELECT usr_id FROM users WHERE usr_id = {rspuid}" * emp_id = "SELECT usr_id FROM users WHERE usr_id = {rspuid}" (dla wersji > 3.5) * predefiniowane parametry * {LOGGED_USER} - id zalogowanego użytkownika * {ENT_ID} - id jednostki na której pracuje użytkownik * {PKEYVALUE} - wartość klucza głównego (id dokumentu/sprawy) patrz klucz główny * {CURRENT_DATE} - aktualna data (dla wersji > 3.5) * {CURRENT_TIME} - aktualny czas (dla wersji > 3.5) * {LOGGED_ORUNID} - identyfikator stanowiska zalogowanej osoby (dla wersji > 3.5) Predefiniowane parametry można używać w następujący sposób * emp_id = "SQL::SELECT rspuid FROM processes WHERE prc_id = {PKEYVALUE}" * emp_id = "{LOGGED_USER}" Sposób definicji parametrów można łączyć np.: * emp_id = "SQL::SELECT usr_id FROM users WHERE usrnam = featid:81 AND adddat > '{adddat}'::timestamp AND usr_id != {LOGGED_USER} AND ent_id = {ENT_ID}" lub można wykonywać działania (przykład teoretyczny nigdzie nie występuje taki parametr ;)) * netto_ = "SQL::SELECT {brutto}::int * featid::89" Do parametru określonego za pomocą cechy np featid::89 można dodać specjalny modyfikator - string czyli featid::89::string - pozwala to na pobranie wartości tekstowej cechy zdefiniowanej jako lista pracowników lub lista adresów. W wyniku działania tego modyfikatora otrzymamy na nazwę urządzenia wybranego w cesze. Dodatkowo dla dokumentów różnych typów można podawać nazwy kolumn z dodatkowych tabel np dla faktur tabela vatnote itd.