Zmiany pomiędzy wersją początkową i wersją 1 dla DeployerGuide/Customization/ProcessAutomation/Commands

Pokaż
Ignoruj:
Data i czas:
11/08/11 15:47:38 (13 years temu)
Autor:
JP (IP: 213.227.67.33)
Komentarz:

--

Legend:

Bez zmian
Dodane
Usunięte
Zmienione
  • DeployerGuide/Customization/ProcessAutomation/Commands

    v1 v1  
     1== Komendy workflow == 
     2 
     3W 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. 
     4 
     5{{{ 
     6target = "20",dscrpt="Wezwanie, uwaga!" 
     7status = "4",controlQuery="SELECT status = 3 FROM processes WHERE prc_id=$prc_id"  
     8}}} 
     9 
     10Komendy 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. 
     11 
     12W tym miejscu znajdują się przykłady [wiki:DeployerGuide/Customization/ProcessAutomation/CommandAPI API komend workflow] 
     13 
     14 
     15{{{ 
     16#!html 
     17<p style="font-weight:bold;" id="DecreeDocumentCommand">Przekaż dokument</p> 
     18}}} 
     19 
     20Komenda służy do automatycznego przekazywania dokumentu na wybrane stanowiska. 
     21 
     22''Parametry:'' 
     23 * to = "1" - parametr wskazujący do kogo ma zostać przekazany oryginał , jeśli parametru nie będzie, lub będzie pusty oryginał zostaje. 
     24 * dw = "2,3,4,5" - do wiadomości 
     25 * udw = "6,7,8" - ukryte do wiadomości 
     26 
     27Wszystkie wartości w parametrach to orunid z widoku orgtree_view. 
     28 
     29 
     30{{{ 
     31#!html 
     32<p style="font-weight:bold;" id="CheckIfFieldIsEmptyCommand">Sprawdź czy pole jest wypełnione</p> 
     33}}} 
     34 
     35Komenda służy do sprawdzania czy dane pole formularza jest wypełnione. Przyjmuje 2 parametry i oba są wymagane. 
     36 
     37''Parametry:'' 
     38 * field = "featid|8" lub "symbol" - pole które ma sprawdzić 
     39 * alert = "Wypełnij pole symbol" - wiadomość w przypadku pustej wartości w polu 
     40 
     41 
     42{{{ 
     43#!html 
     44<p style="font-weight:bold;" id="CheckSQLConditionCommand">Sprawdź prawdziwość warunku SQL</p> 
     45}}} 
     46 
     47Komenda służy do sprawdzania warunku SQL. 
     48 
     49''Parametry:'' 
     50 * query = "SELECT cena IS NOT NULL FROM table WHERE prc_id = {PKEYVALUE}" - zapytanie SQL 
     51 * alert = "Wypełnij pole cena" - wiadomość w przypadku niespełnienia sql 
     52 * success = "Pole cena wypełnione" - wiadomość w przypadku spełnienia sql 
     53 
     54 
     55{{{ 
     56#!html 
     57<p style="font-weight:bold;" id="CreateTaskCommand">Utwórz zdarzenie dla pracownika</p> 
     58}}} 
     59 
     60Komenda służy do utworzenia zdarzenia określonego typu (domyślnie zadanie) dla pracownika. 
     61 
     62''Parametry:'' 
     63 * dscrpt = "Aktualizacja dokumentacji wdrożenia" 
     64 * emp_id = "{LOGGED_USER}" - id pracownika lub pracowników oddzielone znakiem przecinka, którym zostanie przypisane to zdarzenie (usr_id z tabeli users) 
     65 * grp_id = "2" - id grupy lub grup pracowników oddzielone znakiem przecinka, którzy zostaną dodani do zadania (grp_id z tabeli groups) 
     66 * orunid = "11" - identyfikator stanowiska lub stanowisk osób oddzielone znakiem przecinka, które zostaną dodane do zdarzenia (Pracownicy -> Struktura organizacyjna -> ID) 
     67 * trmtyp = "TODO" - typ zdarzenia, może być do wyboru MEETING, PHONECALL, ALARM 
     68 * start_ = "featid|81"; - na kiedy ma dodać zdarzenie, wartość jest pobierana z cechy dlatego definicja np featid|81 
     69 * end!___ = "featid|81"; - data zakończenia 
     70 * interval = "+ 4 days" - interval za jaki utworzyć się zdarzenie, można tworzyć wstecz poprzez - 
     71 * ptstid = "2" - id etapu z tabeli stages_def lub (ptstid="next") dla następnego etapu (ten parametr nie jest wymagany) 
     72 * 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 
     73 * prev = "" - poprzednik(i) - identyfikator zadania w projekcie (kolejne wartości należy oddzielać znakiem przecinka) 
     74 * next = "" - nastepnik(i) - identyfikator zadania w projekcie (kolejne wartości należy oddzielać znakiem przecinka) 
     75 
     76Parametry dscrpt i emp_id są wymagane. 
     77 
     78 
     79{{{ 
     80#!html 
     81<p style="font-weight:bold;" id="CheckDocumentCommand">Sprawdź czy istnieje dokument</p> 
     82}}} 
     83 
     84Komenda służy do sprawdzania czy w danej sprawie występuje konkretny dokument. 
     85 
     86''Parametry:'' 
     87 * dctpid = "9" - id typu dokumentu ze słownika (Ustawienia -> Panel sterowania -> Dokumenty -> Typy dokumentów -> kolumna id) 
     88 * state_ = "2" - identyfikator rodzaju dokumentu 1 - wychodzący, 2 - przychodzący 3 - wewnętrzny 
     89 
     90 
     91{{{ 
     92#!html 
     93<p style="font-weight:bold;" id="ChangeProcessStateCommand">Zmiana statusu</p> 
     94}}} 
     95 
     96Komenda 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. 
     97 
     98''Parametry:'' 
     99 * tpstid = "9" - id statusu ze słownika statusów dla odpowiedniej klasy (Ustawienia -> Panel sterowania -> Ogólne -> Statusy -> kolumna id) 
     100 
     101 
     102{{{ 
     103#!html 
     104<p style="font-weight:bold;" id="AddGroupToPrivilagedInProcessCommand">Uprawnij grupę pracowników do sprawy</p> 
     105}}} 
     106 
     107Komenda 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ń.. 
     108 
     109''Parametry:'' 
     110 * grp_id = "2" - id grupy, którą chcemy uprawnić do sprawy (grp_id z tabeli groups) - parametr zamienny z grpnam 
     111 * usr_id = "2,3,4" - id pracowników, których chcemy uprawnić 
     112 * grpnam = "Pracownicy" - nazwa grupy która zostania przydzielona do sprawy (Pracownicy -> Grupy) - parametr zamienny z grp_id 
     113 * attrib = "rwnd" - maska uprawnień 
     114 
     115 
     116Znaczenie poszczególnych flag maski uprawnień: 
     117 
     118 * r - odczyt 
     119 * w - zapis zadań i dokumentów 
     120 * d - oglądanie wszystkich dokumentów 
     121 * n - powiadamianie o nowych dokumentach, zadaniach i komentarzach 
     122 * m - zarządzanie (karta ogólne i Uprawnienia) 
     123 
     124 
     125{{{ 
     126#!html 
     127<p style="font-weight:bold;" id="AddGroupToPrivilagedInDocumentCommand">Uprawnij grupę pracowników do dokumentu</p> 
     128}}} 
     129 
     130Komenda 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ń. 
     131 
     132''Parametry:'' 
     133 * grp_id = "2" - id grupy, którą chcemy uprawnić do dokumentu (grp_id z tabeli groups) - parametr zamienny z grpnam 
     134 * usr_id = "2,3,4" - id pracowników, których chcemy uprawnić 
     135 * grpnam = "Pracownicy" - nazwa grupy która zostania przydzielona do dokumentu (Pracownicy -> Grupy) - parametr zamienny z grp_id 
     136 * attrib = "rwnd" - maska uprawnień 
     137 
     138 
     139Znaczenie poszczególnych flag maski uprawnień: 
     140 
     141 * r - odczyt 
     142 * w - zapis 
     143 * m - zarządzanie 
     144 
     145{{{ 
     146#!html 
     147<p style="font-weight:bold;" id="CreateDocumentCommand">Utwórz dokument</p> 
     148}}} 
     149 
     150Komenda ta tworzy dokument określonego typu. Komenda przyjmuje następujące parametry: 
     151 
     152''Parametry:'' 
     153 * dctpid = "5" - id typu dokumenty (Ustawienia -> Panel sterowania -> Typy dokumentów -> kolumna ID 
     154 * dctptp = "Note" - nazwa klasy typu dokumentu (dctptp z tabeli types_of_documents) parametr zamienny z dctpid 
     155 * dscrpt = "Wezwanie do wykonania etapy procedury" - treść dokumentu 
     156 * do = "1" - id stanowiska na jakie zostanie przekazy dokument (orunid z tabeli organization_units) 
     157 * 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) 
     158   
     159 
     160{{{ 
     161#!html 
     162<p style="font-weight:bold;" id="CreateAlarmCommand">Utwórz przypomnienie</p> 
     163}}} 
     164 
     165Komenda tworzy zdarzenie typu przypomnienie o danej procedurze/etapie dla wskazanego pracownika. 
     166 
     167''Parametry:''  
     168 * usr_id = "2" - dla kogo zostanie utworzone przypomnienie (Pracownicy -> Konta pracowników -> kolumna id) 
     169 * 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 
     170 * start_ = "SQL::SELECT now()" - na kiedy ma ustawić przypomnienie 
     171 * dscrpt = "Przypomnienie o zatwierdzeniu etapu" - opis przypomnienia; 
     172 
     173 
     174{{{ 
     175#!html 
     176<p style="font-weight:bold;" id="DecreeDocumentToSupervisorCommand">Przekaż dokument do przełożonego</p> 
     177}}} 
     178 
     179Komenda służy do automatycznego przekazywania dokumentu do przełożonego pracownika wskazanego w parametrze emp_id. 
     180 
     181''Parametry:'' 
     182 * emp_id = "{LOGGED_USER}" - id użytkownika którego przełożony otrzyma dokument domyślnie id zalogowanego (usr_id z tabeli users) 
     183 
     184 
     185{{{ 
     186#!html 
     187<p style="font-weight:bold;" id="RegisterDocumentCommand">Zarejestruj dokument</p> 
     188}}} 
     189 
     190Komenda służy do automatycznej rejestracji dokumentu według ustalonej procedury. 
     191 
     192''Parametry:'' 
     193 * 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) 
     194 
     195''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):'' 
     196 * 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}" 
     197 * regtyp = "RegOfVatNotes" - typ rejestru w danym orunid (kolumna regtyp z tabeli registers) 
     198 * type!__ = "1" - typ rejestru (1 = wychodzący, 2 = przychodzący, 3 = wewnętrzny) 
     199 
     200 
     201{{{ 
     202#!html 
     203<p style="font-weight:bold;" id="CreateAttachmentFromTemplateCommand">Utwórz załącznik z szablonu</p> 
     204}}} 
     205 
     206Komenda automatycznie tworzy załącznik do dokumentu na podstawie podanego id szablonu (tabela templates kolumna tpl_id). 
     207 
     208''Parametry:'' 
     209 * tpl_id = "23" - id szablonu z tabeli templates, parametr jest wymagany 
     210 
     211 
     212{{{ 
     213#!html 
     214<p style="font-weight:bold;" id="NotifyCommand">Wysyłanie powiadomienia</p> 
     215}}} 
     216 
     217Komenda pozwala na wysłanie powiadomienia na zadany sposób. 
     218 
     219''Parametry:'' 
     220 * dscrpt = "Zebranie zarządu" - treść powiadomienia 
     221 * grp_id = "2" - id grupy, której pracownicy otrzymają powiadomienie (kolumna grp_id z tabeli groups) 
     222 * grpnam = "Zarząd" - zamienny parametr do grp_id, nazwa grupy (kolumna grpnam z tabeli groups) 
     223 * usr_id = "2" - id użytkownika (users.usr_id) do którego zostanie wysłane powiadomienie 
     224 * orunid = "1" - identyfikator stanowiska lub stanowisk osób oddzielone znakiem przecinka, które zostaną dodane do odbiorców powiadomienia (Pracownicy -> Struktura organizacyjna -> ID) 
     225 * 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 
     226 
     227 
     228Aby komenda zadziałała musi być podany jeden z 3 parametrów: grp_id, grpnam, usr_id lub orunid. 
     229W przypadku podania wszystkich parametrów określających odbiorców ,lista odbiorców jest łączona z poszczególnych wartości parametrów. 
     230 
     231{{{ 
     232#!html 
     233<p style="font-weight:bold;" id="SendEmailCommand">Wyślij wiadomość email</p> 
     234}}} 
     235 
     236Komenda 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. 
     237 
     238''Parametry:'' 
     239 * from!__ = "SQL::SELECT email FROM users WHERE usr_id = {LOGGEG_USER}" - pole od kogo domyślnie jest wstawiane eDokumenty <wartość pola from!__ z tabeli smtp_configuration> 
     240 * to!__!__ = "prezes@firma.eu" - pole do w przypadku parametru liczbowego zostanie wstawiony adres email kontaktu o identyfikatorze podanym w parametrze np to!__!__="{contid}"  
     241 * cc!__!__ = "kierownik@firma.eu" - pole kopia w przypadku parametru liczbowego zostanie wstawiony adres email kontaktu o identyfikatorze podanym w parametrze np cc!__!__ = "featid::98" 
     242 * bcc!___ = "archiwumfirma.eu" - pole kopia ukryta w przypadku parametru liczbowego zostanie wstawiony adres email kontaktu o identyfikatorze podanym w parametrze np bcc!___="{contid}" 
     243 * subjct = "Rekrutacja zakończona" - temat wiadomości zwykły tekst bez znaczników html. Pole jest wymagane. 
     244 * body!__ = "Zakończono proces rekrutacji. W załączniku dostępne są wyniki" - treść wiadomości zwykły tekst bez znaczników html. Pole jest wymagane. 
     245 * tpl_id = "1" - identyfikator szablonu (templates.tpl_id). Jeśli szablon jest typu html parametr body!__ zostanie pominięty a treścią maila będzie wygenerowany dokument z szablonu. W przypadku szablonu typu RTF zostanie on dodany jako załącznik - parametr body nie zostanie pominięty. 
     246 * attach = "1" - flaga oznaczająca czy do wysyłanej wiadomości mają zostać dołączone wszystkie załączniki jakie są w dokumencie. Działa tylko w przypadku procedury przypisanej do dokumentu. 
     247 
     248Spośród parametrów to!__!__, cc!__!__ oraz bcc!___ wystarczy aby tylko jeden był podany aby wiadomość została wysłana. 
     249 
     250 
     251{{{ 
     252#!html 
     253<p style="font-weight:bold;" id="CalendarExceptionCommand">Dodaj wyjątek do kalendarza pracownika</p> 
     254}}} 
     255 
     256Komenda dodaje wyjątek do kalendarza pracownika (zasobu) z atrybutami dzienny, niepracujący. 
     257 
     258''Parametry:'' 
     259 * usr_id = "{LOGGED_USER}" - identyfikator pracownika (users.usr_id), któremu zostanie dodany wyjątek do kalendarza. W przypadku jest pracownik o podanym identyfikatorze nie posiada kalendarza (Zasoby -> Kalendarze zasobów) system automatycznie utworzy kalendarz, który będzie dziedziczył po domyślnym kalendarzu systemowym 
     260 * dscrpt = "Wyjazd na urlop" - opis dodawanego wyjątku. Uwaga - należy zapewnić unikalność nazw wyjątków w obrębie jednego kalendarza 
     261 * from!__ = "2011-08-10" - data rozpoczęcia obowiązywania wyjątku w formacie YYYY-MM-DD np 2011-08-10 
     262 * to!__!__ = "2011-08-20" - data zakończenia obowiązywania wyjątku w formacie YYYY-MM-DD np 2011-08-20 
     263 
     264 
     265{{{ 
     266#!html 
     267<p style="font-weight:bold;" id="ProcessCloseCommand">Zamknij sprawę</p> 
     268}}} 
     269 
     270Komenda zamyka sprawę na której wykonywany jest etap procedury. Komenda działa tylko i wyłącznie w kontekście sprawy.. 
     271 
     272''Parametry:'' 
     273 
     274brak parametrów 
     275 
     276 
     277{{{ 
     278#!html 
     279<p style="font-weight:bold;" id="RunProjectFromTemplateCommand">Utwórz projekt z szablonu</p> 
     280}}} 
     281 
     282Komenda generuje strukturę spraw oraz zadań zgodnie z zadanym identyfikatorem szablonu projektu. 
     283 
     284''Parametry:'' 
     285 * ptplid = "1" - identyfikator szablonu projektu (projects_templates.ptplid) 
     286 * dsexid = "45" - identyfikator teczki z wyciągu z wykazu akt 
     287 * contid = "677" - domyślny identyfikator kontrahenta (contacts.contid) 
     288 * start_ = "2011-08-20" - data rozpoczęcia 
     289 
     290Wszystkie parametry są wymagane 
     291 
     292 
     293{{{ 
     294#!html 
     295<p style="font-weight:bold;" id="CreateProcessCommand">Utwórz sprawę</p> 
     296}}} 
     297 
     298Komenda automatycznie tworzy nową sprawę. W przypadku jeśli komenda jest w procedurze podpiętej pod sprawę nowo utworzona sprawa zostaje ustawiona jako podrzędna. 
     299 
     300''Parametry:'' 
     301 * 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 
     302 * dsexid = "45" - identyfikator teczki z wyciągu z wykazu akt (Ustawienia -> Panel sterowania -> Sprawy -> Wyciąg z wykazu akt -> ID) parametr zamianny z dossmb 
     303 * dscrpt = "Nowa sprawa" - opis sprawy 
     304 * contid = "677" - identyfikator kontrahenta (contacts.contid, Lista kontrahentów -> Kolumna Id) domyślnie jest przepisywany z kontekstu procedury 
     305 * fxterm = "{CURRENT_DATE}" - termin realizacji sprawy (domyślnie {CURRENT_DATE} + 7 dni) 
     306 * rspuid = "{LOGGED_USER}" - osoba odpowiedzialna za sprawę (users.usr_id, Pracownicy -> Konta pracowników -> ID domyślnie identyfikator zalogowanego pracownika {LOGGED_USER} 
     307 
     308 
     309---- 
     310{{{ 
     311#!html 
     312<div id="AdditionalInfo"></div> 
     313}}} 
     314''Informacja dodatkowa'' 
     315 
     316Wszystkie parametry maja możliwość pobierania wartości w następujący sposób: 
     317 
     318 * z cechy 
     319   * emp_id = "featid|81" 
     320   * emp_id = "featid::81" 
     321   * dscrpt = "Pracownik featid::81::string prosi o udzielenie urlopu okolicznościowego" 
     322 
     323 * bezpośrednio z otwartego formularza 
     324   * 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.  
     325 
     326W podanym przypadku pole rspuid (osoba odpowiedzialna w sprawie) jest wartością z kolumny rspuid z tabeli processes. 
     327 
     328 * jako wynik zaptania SQL 
     329   * emp_id = "SQL::SELECT usr_id FROM users WHERE usr_id = featid|81" 
     330   * emp_id = "SQL::SELECT usr_id FROM users WHERE usr_id = featid::81" 
     331   * emp_id = "SQL::SELECT usr_id FROM users WHERE usr_id = {rspuid}" 
     332   * emp_id = "SELECT usr_id FROM users WHERE usr_id = {rspuid}" (dla wersji > 3.5) 
     333 
     334 * predefiniowane parametry 
     335  * {LOGGED_USER} - id zalogowanego użytkownika 
     336  * {ENT_ID} - id jednostki na której pracuje użytkownik 
     337  * {PKEYVALUE} - wartość klucza głównego (id dokumentu/sprawy) patrz klucz główny  
     338  * {CURRENT_DATE} - aktualna data (dla wersji > 3.5) 
     339  * {CURRENT_TIME} - aktualny czas (dla wersji > 3.5) 
     340  * {LOGGED_ORUNID} - identyfikator stanowiska zalogowanej osoby (dla wersji > 3.5) 
     341 
     342Predefiniowane parametry można używać w następujący sposób 
     343 * emp_id = "SQL::SELECT rspuid FROM processes WHERE prc_id = {PKEYVALUE}" 
     344 * emp_id = "{LOGGED_USER}" 
     345 
     346Sposób definicji parametrów można łączyć np.: 
     347 * 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}" 
     348 
     349lub można wykonywać działania (przykład teoretyczny nigdzie nie występuje taki parametr ;)) 
     350 * netto_ = "SQL::SELECT {brutto}::int * featid::89" 
     351 
     352Do 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. 
     353 
     354Dodatkowo dla dokumentów różnych typów można podawać nazwy kolumn z dodatkowych tabel np dla faktur tabela vatnote itd.