== 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"
}}}
Od wersji 3.8 definiowanie parametrów komend odbywa się za pomocą dedykowanego formularza jak na screenie poniżej:
[[Image(commandParamsForm.jpg)]]
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]
=== Spis komend dostarczanych z systemem === #CommandList
[#DecreeDocumentCommand Przekaż dokument][[BR]]
[#AddCommentCommand Utwórz komentarz][[BR]]
[#CheckIfFieldIsEmptyCommand Sprawdź czy pole jest wypełnione][[BR]]
[#CopyFKElementsCommand Przepisz elementy z listy pozycji][[BR]]
[#CheckSQLConditionCommand Sprawdź prawdziwość warunku SQL][[BR]]
[#CreateTaskCommand Utwórz zdarzenie dla pracownika][[BR]]
[#CheckDocumentCommand Sprawdź czy istnieje dokument][[BR]]
[#ChangeFKElementsStateCommand Zmień status pozycją dokumentu][[BR]]
[#ExportDocumentToFKCommand Eksport dokumentu do systemu zew.][[BR]]
[#CheckDocumentConfirmationCommand Sprawdź potwierdzenie eksportu dokumentu do systemu FK.][[BR]]
[#ChangeProcessStateCommand Zmiana statusu][[BR]]
[#AddGroupToPrivilagedInProcessCommand Uprawnij grupę pracowników do sprawy][[BR]]
[#AddGroupToPrivilagedInDocumentCommand Uprawnij grupę pracowników do dokumentu][[BR]]
[#CreateDocumentCommand Utwórz dokument][[BR]]
[#CreateAlarmCommand Utwórz przypomnienie][[BR]]
[#DecreeDocumentToSupervisorCommand Przekaż dokument do przełożonego][[BR]]
[#RegisterDocumentCommand Zarejestruj dokument][[BR]]
[#CreateAttachmentFromTemplateCommand Utwórz załącznik z szablonu][[BR]]
[#NotifyCommand Wysyłanie powiadomienia][[BR]]
[#SendEmailCommand Wyślij wiadomość email][[BR]]
[#CalendarExceptionCommand Dodaj wyjątek do kalendarza pracownika][[BR]]
[#ProcessCloseCommand Zamknij sprawę][[BR]]
[#MoveProcessCommand Przenieś sprawę][[BR]]
[#RunProjectFromTemplateCommand Utwórz projekt z szablonu][[BR]]
[#CreateProcessCommand Utwórz sprawę][[BR]]
[#CreateDocumentLinkCommand Powiąż dokument z klientem, sprawą lub innym dokumentem][[BR]]
[#CreateDocumentToSuppliersCommand Utwórz dokument/y dla dostawców produktów][[BR]]
[#CreateReplacementCommand Ustaw zastępstwo][[BR]]
[#SignAttachmentCommand Podpisz załącznik][[BR]]
[#AddFKElementCommand Utwórz pozycję dokumentu][[BR]]
{{{
#!html
}}}
=== Przekaż dokument === #DecreeDocumentCommand
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||
||orders||"Komentarz"||komentarz do dekretacji||
Wszystkie wartości w parametrach to orunid z widoku orgtree_view.
''Przejdź do [#CommandList Spis komend]''
----
=== Utwórz komentarz === #AddCommentCommand
Komenda dodaje komentarz do sprawy/dokumentu w którym jest uruchomiona.
''Parametry:''
||Nazwa||Wartość||Opis||
||dscrpt||"Sprawa {symbol} została załatwiona"||treść komentarza||
''Przejdź do [#CommandList Spis komend]''
----
=== Sprawdź czy pole jest wypełnione === #CheckIfFieldIsEmptyCommand
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"||nazwa pola (z bazy), które będzie sprawdzane||
||alert||"Wypełnij pole symbol"||wiadomość w przypadku pustej wartości w polu||
''Przejdź do [#CommandList Spis komend]''
----
=== Przepisz elementy z listy pozycji === #CopyFKElementsCommand
Komenda przepisuje elementy z listy pozycji jednego dokumentu na drugi.
''Parametry:''
||Nazwa||Wartość||Opis||
||from__||"456" lub "symbol"||identyfikator dokumentu źródłowego (documents.doc_id), z którego chcemy przepisać pozycje. Dokument takie musi obsługiwać pozycje (jest widoczna zakładka)||
||to____||"6789"||identyfikator dokumentu docelowego (documents.doc_id), z którego chcemy przepisać pozycje. Dokument takie musi obsługiwać pozycje (jest widoczna zakładka)||
''Przejdź do [#CommandList Spis komend]''
----
=== Sprawdź prawdziwość warunku SQL === #CheckSQLConditionCommand
Komenda sprawdza wynik zapytania SQL. Zapytanie SQL musi zwrócić TRUE albo FALSE. Zaleca się korzystanie z konstrukcji EXISTS np. SELECT EXISTS (SELECT doc_id FROM documents WHERE prc_id = {prc_id}). W innym wypadku wykonanie komendy może zakończyć się błędem.
''Parametry:''
||Nazwa||Wartość||Opis||
||query||"SELECT EXISTS (SELECT doc_id FROM documents WHERE prc_id = {prc_id} AND is_del IS FALSE)"||zapytanie SQL||
||alert||"Dodaj dokument do sprawy"||wiadomość w przypadku niespełnienia sql||
||success||"Dokument został dodany"||wiadomość w przypadku jeśli zapytanie SQL zwróci wynik TRUE lub 1||
''Przejdź do [#CommandList Spis komend]''
----
=== Utwórz zdarzenie dla pracownika === #CreateTaskCommand
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_USR_ID}" || identyfikator pracownika lub pracowników oddzielone znakiem przecinka, którym zostanie przypisane zdarzenie '''(Pracownicy -> Konta pracowników -> ID)'''||
||grp_id || "2"||identyfikator grupy lub grup pracowników oddzielone znakiem przecinka, którzy zostaną dodani do zadania '''(Pracownicy -> Grupy -> ID)'''||
||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: TODO - zadanie, MEETING - spotkanie, PHONECALL - rozmowa telefoniczna, ALARM - przypomnienie||
||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)||
||ismile||"1/0"||kamień milowy - końcowy punkt, który podsumowuje określony zestaw zadań tzw. milestone. Wartość parametru to 0 - nie albo 1 - tak. Domyślnie 0||
||deadln||""||ostateczny termin wykonania zadania tzw. deadline. Parametr w formacie daty||
||cycle_||""||Cykl dla zdarzenia. Przykład poniżej||
Parametry dscrpt i emp_id są wymagane.
Aby w prostu sposób wydobyć orunid dla danego usr_id należy użyć polecenia SQL:
SELECT text_sum(orunid::text) FROM orgtree_view WHERE usr_id = {ID UŻYTKOWNIKA};
Cykl zdarzenia jest określany za pomocą ciągu znaków w formacie JSON.
Przykłady :
Taki JSON utworzy cykl w dni Poniedziałek, Wtorek, Środa i będzie powtarzać zadanie co tydzien.
{{{
{"wdays":"1110000","cyctyp":"2","dstate":1,"numday":"1","numweek":"1","rgmonth":1,"mnumday":"5","mwdaynum":"1","mwday":"4","numonth":"1","cstart":"2013-09-05","crgend":1}
}}}
Ten JSON spowoduje utworzenie cyklu dziennego - co dwa dni
{{{
{"wdays":"0000000","cyctyp":"1","dstate":1,"numday":"2","numweek":"1","rgmonth":1,"mnumday":"5","mwdaynum":"1","mwday":"4","numonth":"1","cstart":"2013-09-05","crgend":1}
}}}
Jeśli parametry cyklu są trudne i niejasne - najlepiej jest utworzyć zadanie z określoną cyklicznością i w bazie podejrzeć jak zapisała się ona w kolumnie cycle_
''Przejdź do [#CommandList Spis komend]''
----
=== Sprawdź czy istnieje dokument === #CheckDocumentCommand
Komenda służy do sprawdzania czy w danej sprawie występuje dokument o konkretnym type oraz rodzaju.
''Parametry:''
||Nazwa||Wartość||Opis||
|| dctpid || "9" || identyfikator typu dokumentu ze słownika '''(Ustawienia -> Panel sterowania -> Dokumenty -> Definicje dokumentów -> ID)'''||
|| state_ || "2" || identyfikator rodzaju dokumentu 1 - wychodzący, 2 - przychodzący 3 - wewnętrzny||
''Przejdź do [#CommandList Spis komend]''
----
=== Zmień status pozycją dokumentu === #ChangeFKElementsStateCommand
Komenda zmienia status elementom na liście pozycji dokumentu. Komenda jest przeznaczona tylko dla dokumentu.
''Parametry:''
||Nazwa||Wartość||Opis||
|| state_ || "2" || kod statusu ze słownika statusów '''(Ustawienie -> Panel sterowania -> Ogólne -> Statusy -> Kod)'''||
''Przejdź do [#CommandList Spis komend]''
----
=== Eksport dokumentu do systemu zew. === #ExportDocumentToFKCommand
Komenda służy do wyeksportowania dokumentu (najczęściej faktury) do systemu zew. Obecnie tylko dla Symfonii.
''Parametry:''
||Nazwa||Wartość||Opis||
|| bsysid || "1" || identyfikator połączenia z systemem zew. '''(Narzędzie -> Połączenia z systemami zew. -> ID)'''||
|| mode!__ || "2" || co ma się dziać z dokumentami załączonymi - obowiązuje tylko dla delegacji gdzie na liście rozliczenia są faktury. W przypadku innego typu parametr ten nie jest brany pod uwagę. Wartości parametru:[[BR]] 1 - eksportuje tylko główny dokument (domyślna wartość)[[BR]] 2 - tylko załączone [[BR]] 3 - główny plus załączone||
''Przejdź do [#CommandList Spis komend]''
----
=== Sprawdź potwierdzenie eksportu dokumentu do systemu FK === #CheckDocumentConfirmationCommand
Komenda sprawdza potwierdzenie eksportu dokument do systemu FK. Po sprawdzeniu potwierdzenie jest usuwane niezależnie od statusu. W przypadku błędu (brak identyfikatora z systemu FK) potwierdzenie jest przenoszone do katalogu wskazanego z parametrze errfld.
''Parametry:''
||Nazwa||Wartość||Opis||
|| xmlfld || "./var/integration/fk/" || katalog w którym znajdują się potwierdzenia importu dokumentów do systemu zew. Nazwa pliku musi składać się z identyfikatora dokumentu z systemu eDokumenty oraz posiadać rozszerzenie xml np. 123.xml. Struktura potwierdzenia może być zależna od systemu FK i wymagać modyfikacji lub dodania własnej komendy bazującej na poniższej. Katalog powinien posiadać odpowiednie prawa do odczytu i zapisu||
|| errlfd || "./var/integration/fk/errors/" || katalog w którym znajdują się potwierdzenia dla dokumentów których nie udało się zaimportować. Katalog powinien posiadać odpowiednie prawa do odczytu i zapisu||
|| idtgnm || "fkid" || nazwa taga xml przechowującego identyfikator z systemu FK||
|| mstgnm || "errors" || nazwa taga xml przechowującego wiadomość w przypadku błędnego importu do systemu FK||
|| bsysid || "1" || identyfikator połączenia z systemem zew jeśli takie jest utworzone i eksport został wykonany komendą '''(Narzędzie -> Połączenia z systemami zew. -> ID)'''. Parametr nie jest wymagany. W przypadku jego podania oraz poprawnego formatu potwierdzenia dodawane jest powiązanie w tabeli bs_connect_documents_coherences pomiędzy dokumentem z systemu eDokumenty z dokumentem z systemu FK zdefiniowanym w połączeniu||
''Przejdź do [#CommandList Spis komend]''
----
=== Zmiana statusu === #ChangeProcessStateCommand
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''')||
|| clsnam || "PROCESS" || klasa obiektu: PROCESS - sprawa, DOCUMENT - dokument. Parametr ten umożliwia zmianę statusu dla innego obiektu niż aktualnego w kontekście procedury||
|| keyval || "{prc_id}" || identyfikatr obiketu, klucz główny z tabel: sprawy - processes.prc_id, dokumenty - dokumenty.doc_id. Parametr wymagany przy podaniu clsnam||
''Przejdź do [#CommandList Spis komend]''
----
=== Uprawnij grupę pracowników do sprawy === #AddGroupToPrivilagedInProcessCommand
Komenda służy do nadania (aktualizacji) uprawnień grupie lub pracownikom do sprawy. Jeśli grupa lub pracownik zostali już wcześniej uprawnieni wtedy następuje aktualizacja poziomu uprawnień. W przypadku podania kilku wartości dla parametru grp_id, grpnam lub usr_id - wszystkie otrzymają poziom uprawnień zadeklarowany w parametrze attrib.
''Parametry:''
||Nazwa||Wartość||Opis||
|| grp_id || "2" || identyfikator grup oddzielone znakiem przecinka, które chcemy uprawnić do sprawy '''(Pracownicy -> Grupy -> ID)''' - parametr zamienny z grpnam. W przypadku kilku wartości identyfikatory grup powinny być oddzielone znakiem przecinka||
|| grpnam || "Pracownicy" ||nazwy grup oddzielone znakiem przecinka, które chcemy uprawnić do sprawy '''(Pracownicy -> Grupy -> Nazwa)''' - parametr zamienny z grp_id, jeśli podano grp_id i grpnam priorytet ma parametr grp_id. W przypadku kilku wartości nazwy grup powinny być oddzielone znakiem przecinka||
|| usr_id || "2,3,4" ||identyfikator pracownika lub pracowników oddzielone przecinkiem '''(Pracownicy -> Konta praconwików -> ID)'''||
|| attrib || "rwnd" || maska uprawnień według specyfikacji: [[BR]] r - odczyt, [[BR]] w - zapis zadań i dokumentów,[[BR]] d - oglądanie wszystkich dokumentów,[[BR]] n - powiadamianie o nowych dokumentach, zadaniach i komentarzach, [[BR]]m - zarządzanie (karta Ogólne i Uprawnienia).[[BR]] Poprzedzenie maski znakiem minus (-) oznacza , iż dane prawo ma zostać zabrane np. -m oznacza zabranie tylko prawa do zarządzania - m||
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)
''Przejdź do [#CommandList Spis komend]''
----
=== Uprawnij grupę pracowników do dokumentu === #AddGroupToPrivilagedInDocumentCommand
Komenda służy do nadania (aktualizacji) uprawnień grupie lub pracownikom do dokumentu. Jeśli grupa lub pracownik zostali już wcześniej uprawnieni wtedy następuje aktualizacja poziomu uprawnień. W przypadku podania kilku wartości dla parametru grp_id, grpnam lub usr_id - wszystkie otrzymają poziom uprawnień zadeklarowany w parametrze attrib.
''Parametry:''
||Nazwa||Wartość||Opis||
|| grp_id || "2,4" ||identyfikator grup oddzielone znakiem przecinka, które chcemy uprawnić do sprawy '''(Pracownicy -> Grupy -> ID)''' - parametr zamienny z grpnam. W przypadku kilku wartości identyfikatory grup powinny być oddzielone znakiem przecinka||
|| grpnam || "Pracownicy" ||nazwy grup oddzielone znakiem przecinka, które chcemy uprawnić do sprawy '''(Pracownicy -> Grupy -> Nazwa)''' - parametr zamienny z grp_id, jeśli podano grp_id i grpnam priorytet ma parametr grp_id. W przypadku kilku wartości nazwy grup powinny być oddzielone znakiem przecinka||
|| usr_id || "2,3,4" ||identyfikator pracownika lub pracowników oddzielone przecinkiem '''(Pracownicy -> Konta praconwików -> ID)'''||
|| attrib || "rwnd" || maska uprawnień||
Znaczenie poszczególnych flag maski uprawnień:
* r - odczyt
* w - zapis
* m - zarządzanie
''Przejdź do [#CommandList Spis komend]''
----
=== Utwórz dokument === #CreateDocumentCommand
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)||
||fradid|| "2" ||pole Nabywca dla dokumentu typu Pismo (identyfikator adresu (address.addrid))||
||toadid|| "3" ||pole Odbiorca dla dokumentu typu Pismo (identyfikator adresu (address.addrid))||
||spadid|| "56 ||pole Dostawca dla dokumentu typu Zapotrzebowanie, Zamówienie (identyfikator adresu (address.addrid))||
||rcadid|| "66" ||pole Odbiorca dla dokumentu typu WZ (identyfikator adresu (address.addrid))||
||pchaid|| "89" ||pole Zamawiający dla dokumentu typu Zapotrzebowanie, Zamówienie (identyfikator adresu (address.addrid))||
||addrid|| "6889" ||pole Dostawca/Odbiorca dla dokumentu typy PZ/WZ (identyfikator adresu (address.addrid))||
Dodatkowo komenda przyjmuje wszystkie parametry jak w [#AddGroupToPrivilagedInDocumentCommand Uprawnij grupę pracowników do dokumentu]
''Przejdź do [#CommandList Spis komend]''
----
=== Utwórz przypomnienie === #CreateAlarmCommand
Komenda tworzy nowe przypomnienie o podanej treści dla wskazanego pracownika na określony dzień. Wszystkie parametry są wymagane.
''Parametry:''
||Nazwa||Wartość||Opis||
|| dscrpt || "Przypomnienie o zatwierdzeniu etapu" || opis przypomnienia||
|| start_ || "SQL::SELECT now()" || na kiedy ma ustawić przypomnienie||
|| usr_id || "2" || dla kogo zostanie utworzone przypomnienie '''(Pracownicy -> Konta pracowników -> 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||
''Przejdź do [#CommandList Spis komend]''
----
=== Przekaż dokument do przełożonego === #DecreeDocumentToSupervisorCommand
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_USR_ID}" || identyfikator pracownika którego przełożony otrzyma dokument domyślnie identyfikator zalogowanego '''(Pracownicy -> Konta pracowników -> ID)'''||
||orders||"Komentarz"||komentarz do dekretacji||
''Przejdź do [#CommandList Spis komend]''
----
=== Zarejestruj dokument === #RegisterDocumentCommand
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)||
''Przejdź do [#CommandList Spis komend]''
----
=== Utwórz załącznik z szablonu === #CreateAttachmentFromTemplateCommand
Komenda automatycznie tworzy załącznik do dokumentu na podstawie podanego id szablonu (tabela templates kolumna tpl_id).
''Parametry:''
||Nazwa||Wartość||Opis||
|| tpl_id || "23" || identyfikator szablonu '''(Ustawienia -> Panel sterowania -> Dokumenty -> Szablony dokumentów -> ID)'''||
''Przejdź do [#CommandList Spis komend]''
----
=== Wysyłanie powiadomienia === #NotifyCommand
Komenda pozwala na wysłanie powiadomienia na zadany sposób.
''Parametry:''
||Nazwa||Wartość||Opis||
||dscrpt || "Zebranie zarządu" || treść powiadomienia||
||grp_id || "2" || identyfikatory grup, których pracownicy otrzymają powiadomienie '''(Pracownicy -> Grupy -> ID)'''. W przypadku kilku wartości identyfikatory grup powinny być oddzielone znakiem przecinka||
||grpnam || "Zarząd" || zamienny parametr do grp_id, nazwa grupy '''(Pracownicy -> Grupy -> Nazwa)'''. W przypadku kilku wartości nazwy grup powinny być oddzielone znakiem przecinka||
||usr_id || "2" || identyfikator pracownika może być w formie 2, 35, 77 '''(Pracownicy -> Konta pracowników -> ID)'''||
||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.
''Przejdź do [#CommandList Spis komend]''
----
=== Wyślij wiadomość email === #SendEmailCommand
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 e_mail FROM users WHERE usr_id = {LOGGED_USR_ID}" || pole od kogo domyślnie jest wstawiane eDokumenty ||
|| to!__!__ || "prezes@firma.eu" || pole do w przypadku parametru liczbowego zostanie wstawiony adres email kontaktu o identyfikatorze podanym w parametrze np to!__!__="{contid}" ||
|| cc!__!__ || "kierownik@firma.eu" || pole kopia w przypadku parametru liczbowego zostanie wstawiony adres email kontaktu o identyfikatorze podanym w parametrze np cc!__!__ = "featid::98"||
|| bcc!___ || "archiwumfirma.eu" || pole kopia ukryta w przypadku parametru liczbowego zostanie wstawiony adres email kontaktu o identyfikatorze podanym w parametrze np bcc!___="{contid}"||
|| subjct || "Rekrutacja zakończona" || temat wiadomości zwykły tekst bez znaczników html. Pole jest wymagane.||
|| 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.||
|| 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.||
|| 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||
|| onlyct || "1" || wyślij załączniki dokumentu oznaczone jako Treść - dodanie tego parametru z wartością 1 spowoduje załączenie do wiadomości email załączników dokumentu oznaczonych jako Treść. Dodatkowo załączone zostaną załączniki, które są podpisane certyfikatami pieczęci elektronicznej||
|| replto || "prezes " || odpowiedz do ||
Spośród parametrów to!__!__, cc!__!__ oraz bcc!___ wystarczy aby tylko jeden był podany aby wiadomość została wysłana.
''Przejdź do [#CommandList Spis komend]''
----
=== Dodaj wyjątek do kalendarza pracownika === #CalendarExceptionCommand
Komenda dodaje wyjątek do kalendarza pracownika (zasobu) z atrybutami dzienny, niepracujący.
''Parametry:''
||Nazwa||Wartość||Opis||
|| usr_id || "{LOGGED_USR_ID}" || 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||
''Przejdź do [#CommandList Spis komend]''
----
=== Zamknij sprawę === #ProcessCloseCommand
Komenda zamyka sprawę w kontekście, której wykonywana jest procedura lub komenda może być wykonana z kontekstu dokumentu wtedy pobierana jest sprawa, w której dany dokument się znajduje.
''Parametry:''
||Nazwa||Wartość||Opis||
|| prc_id || "23" || identyfikator sprawy (processes.prc_id), którą chcemy zamknąć. Parametr ten nie jest wymagany. Jeśli nie zostanie podany pobierana jest sprawa z kontekstu procedury||
|| tpstid || "9" || id statusu ze słownika statusów dla odpowiedniej klasy ('''Ustawienia -> Panel sterowania -> Ogólne -> Statusy -> kolumna id''')||
''Przejdź do [#CommandList Spis komend]''
----
=== Przenieś sprawę === #MoveProcessCommand
Komenda automatycznie przenosi sprawę do wskazanej teczki albo do działu, który posiada taką samą teczkę co sprawa. Komenda może być wykonana z kontekstu dokumentu wtedy pobierana jest sprawa, w której dany dokument się znajduje.
''Parametry:''
||Nazwa||Wartość||Opis||
|| prc_id || "23" || identyfikator sprawy (processes.prc_id), którą chcemy przenieść. Parametr ten nie jest wymagany. Jeśli nie zostanie podany pobierana jest sprawa z kontekstu procedury||
|| dsexid || "23" || identyfikator teczki w wyciągu z wykazu akt '''(Ustawienia -> Panel sterowania -> Sprawy -> Wyciąg z wykazu akt -> Kolumna ID)'''||
|| orunid || "6" || opcjonalny (zamienny) parametr identyfikator jednostki organizacyjnej w której znajduje się teczka do której chcemy przenieść sprawę. Teczka musi być ta sama co w sprawie.||
''Przejdź do [#CommandList Spis komend]''
----
=== Utwórz projekt z szablonu === #RunProjectFromTemplateCommand
Komenda generuje strukturę spraw oraz zadań zgodnie z zadanym identyfikatorem szablonu projektu.
''Parametry:''
||Nazwa||Wartość||Opis||
|| ptplid || "1" || identyfikator szablonu projektu '''(Ustawienia -> Panel sterowanie -> Sprawy -> Szablony projektów -> ID)'''||
|| dsexid || "45" || identyfikator teczki z wyciągu z wykazu akt '''(Ustawienia -> Panel sterowania -> Sprawy -> Wyciąg z wykazu akt -> ID)'''||
||contid || "677" || domyślny identyfikator kontrahenta '''(Klienci -> ID)'''||
||start_ || "2011-08-20" || data rozpoczęcia - w przypadku nie podania tego parametru data rozpoczęcia jest ustawiana na bieżący czas||
Wszystkie parametry są wymagane
''Przejdź do [#CommandList Spis komend]''
----
=== Utwórz sprawę === #CreateProcessCommand
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, '''Klienci -> ID''') domyślnie jest przepisywany z kontekstu procedury. Parametr ten może być kolekcją/tablicą (np. 1,2,3 lub {1,2,3} lub [1,2,3]). W takim przypadku, sprawa zostanie utworzona dla każdego kontrahenta (np. contid="SQL::SELECT ARRAY(SELECT contid FROM addresses_view WHERE addrid = ANY({$LISTA_ADRESOW}))". $LISTA_ADRESOW jest daną wejściową typu "addrid[]").||
|| fxterm || "{CURRENT_DATE}" || termin realizacji sprawy (domyślnie {CURRENT_DATE} + 7 dni)||
|| rspuid || "{LOGGED_USR_ID}" || osoba odpowiedzialna za sprawę (users.usr_id, '''Pracownicy -> Konta pracowników -> ID''' domyślnie identyfikator zalogowanego pracownika {LOGGED_USR_ID})||
|| 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||
|| prtype || "1" || type sprawy: '''1''' - terminowa, '''2''' - stała. Domyślnie jest to 2 czyli stała||
|| projid || "1" || identyfikator projektu (projects.projid, '''Ustawienia -> Panel sterowania -> Sprawy -> Projekty -> ID''')||
Dodatkowo komenda przyjmuje wszystkie parametry jak w [#AddGroupToPrivilagedInProcessCommand Uprawnij grupę pracowników do sprawy]
''Przejdź do [#CommandList Spis komend]''
----
=== Powiąż dokument z klientem, sprawą lub innym dokumentem === #CreateDocumentLinkCommand
Komenda dodaje powiązanie pomiędzy dokumentem w kontekście, którego jest wykonywana procedura a wskazanym obiektem w systemie (klient, sprawa lub dokument).
''Parametry:''
||Nazwa||Wartość||Opis||
|| clsnam || "PROCESS" || klasa obiektu: [[BR]] - CONTACT - klient [[BR]] - PROCESS - sprawa [[BR]] - DOCUMENT - dokument. [[BR]] Parametr wymagany.||
|| keyval || "{prc_id}" || identyfikatr lub identyfikator (wymienione po przecinku) obiektu, klucz główny z tabel: [[BR]] - klienci - contacts.contid [[BR]] - sprawy - processes.prc_id [[BR]] - dokumenty - dokumenty.doc_id. [[BR]] Parametr wymagany||
''Przejdź do [#CommandList Spis komend]''
----
=== Utwórz dokument/y dla dostawców produktów === #CreateDocumentToSuppliersCommand
Komenda tworzy dokument/y danego typu dla dostawców produktów określonych w liście pozycji danego dokumentu źródłowego. Wybór pozycji może odbywać się poprzez ręczne określenie obiektu źródłowego (podanie clsnam oraz keyval dla dokumentu/sprawy) albo pozycje będą pobierane z obiektu (dokument/sprawa) w kontekście którego działa procedura.
''Parametry:''
||Nazwa||Wartość||Opis||
|| clsnam || "PROCESS" || klasa obiektu źródłowego skąd zostaną pobrane pozycje: [[BR]] - PROCESS - sprawa [[BR]] - DOCUMENT - dokument.
W przypadku braku tego parametru produkty są pobierane z obiektu (dokument/sprawa) w kontekście, którego działa procedura.||
|| keyval || "{prc_id}" || identyfikatr obiektu, klucz główny z tabel: [[BR]] - sprawy - processes.prc_id [[BR]] - dokumenty - dokumenty.doc_id.
Parametr wymagany w przypadku podania clsnam.||
|| cntkey || "spadid" || Nazwa klucza (parametru z komendy "Utwórz dokument") odpowiedzialna za przechowywanie wartości adresu.[[BR]][[BR]] Np. dla zamówienia jest to parametr "Dostawca" - nazwa parametru - spadid (na dole pomocy znajduje się nazwa)||
Dodatkowo komenda przyjmuje wszystkie parametry jak w [#CreateDocumentCommand Utwórz dokument]
''Przejdź do [#CommandList Spis komend]''
----
=== Ustaw zastępstwo === #CreateReplacementCommand
Komenda ustawia zastępstwo dla wskazanego pracownika.
''Parametry:''
||Nazwa||Wartość||Opis||
|| usr_id || "{LOGGED_USR_ID}" || identyfikator pracownika '''(Pracownicy -> Konta pracowników -> ID)''', któremu zostanie ustawione zastępstwo.[[BR]]Domyślnie jest to zalogowany pracownik.||
|| rusrid || "23" || identyfikator pracownika '''(Pracownicy -> Konta pracowników -> ID)''', który będzie pełnił funkcję zastępcy dla pracownika wskazanego w parametrze "Dla kogo".||
|| from__ || "2012-12-10" || od kiedy zastępstwo będzie obowiązywać. Data w formacie YYYY-MM-DD||
|| to____ || "2012-12-20" || do kiedy zastępstwo będzie obowiązywać. Data w formacie YYYY-MM-DD||
|| notify || "1" || parametr ten powoduje, iż zastępca jest informowany o ustawieniu zastępstwa.[[BR]] Obsługiwane parametry:[[BR]]0 - nie powiadamiaj[[BR]] 1- powiadamiaj.[[BR]][[BR]]Domyślna wartość to 1 - powiadamiaj|
|| force_ || "1" || parametr ten powoduje, iż zastępstwo ustawiane przez komendę ma wyższy priorytet i w przypadku jeśli pracownik wskazany w parametrze "Dla kogo" posiada już ustawione zastępstwo komenda nadpisze to zastępstwo.
Obsługiwane parametry:[[BR]]0 - zachowaj zastępstwo jeśli jest już ustawione[[BR]] 1- nadpisuj zastępstwo jeśli ustawiono.[[BR]][[BR]]Domyślna wartość to 1 - nadpisuj||
''Przejdź do [#CommandList Spis komend]''
----
=== Podpisz załącznik === #SignAttachmentCommand
Komenda utworzy podpis dla wskazanego załącznika a następnie doda podpis jako załącznik w dokumencie. Podpis zostanie utworzony w kodowaniu base64.
''Parametry:''
||Nazwa||Wartość||Opis||
|| coesid || 1 || certyfikat pieczęci elektronicznej '''(Ustawienia -> Panel sterowania -> Pozostałe ustawienia -> Certyfikaty pieczęci elektronicznej -> ID)'''. Uwaga. W przypadku jeśli certyfikat wymaga podania hasła wymagane jest pole passwd||
|| fileid || || identyfikator załącznika (files.fileid) z listy załączników dokumentu w kontekście, którego uruchomiono procedurę||
|| iscont || 1 || parametr zamienny z fileid. Jeśli podano fileid parametr iscont nie jest brany pod uwagę. Po wpisaniu wartości 1 system automatycznie wyszuka na liście załączników dokumentu w kontekście, którego uruchomiono procedurę załącznika oznaczonego jako treść||
|| passwd || || w przypadku jeśli certyfikat pieczęci elektronicznej wymaga podania hasła w celu podpisania dokumentu należy wprowadzić hasło na stałe do komendy lub skorzystać w danych wejściowych w celu pobrania tego hasło od użytkownika a następnie wpisania nazwy danej wejściowej np. SQL::SELECT {$HASLO_PIECZEC}||
''Przejdź do [#CommandList Spis komend]''
----
=== Utwórz pozycję dokumentu === #AddFKElementCommand
''Parametry:''
||Nazwa||Wartość||Opis||
|| doc_id || || identyfikator dokumentu do, którego zostanie dodana pozycja. Domyślne jest to dokument z kontekstu procedury. Wybrany dokument musi obsługiwać zakładkę Pozycje||
|| depoid || 123 || identyfikator produktu z modułu Produktu '''(Produkty -> Lista produktów -> Kolumna ID produktu)'''||
|| depnam || PC 999 || nazwa produktu, która pojawi się na liście pozycji oraz na wydruku (PDF/RTF). Domyślnie jest to pole Nazwa z kartoteki wybranego produktu||
|| quantm || 666 || liczba||
|| unitid || szt || identyfikator jednostki miary '''(Ustawienie -> Panel sterowania -> Magazyn -> Jednostki miary -> Kolumna ID)''' albo nazwa jednostki (może być skrót)||
|| vat_id || 23% || identyfikator stawki VAT '''(Ustawienie -> Panel sterowania -> Finansowe -> Stawki VAT -> Kolumna ID)''' albo nazwa stawki VAT||
|| netto_ || 100 || cena netto za 1 jednostkę ||
''Przejdź do [#CommandList Spis komend]''
----
{{{
#!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)
* crtdat = "SELECT {$data_z_danej_wej}" ($data_z_danej_wej jest daną wejściową lub własnością)
* predefiniowane parametry
* {LOGGED_USR_ID} - 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_USR_ID}"
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_USR_ID} 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.