Vstupní skripty: Porovnání verzí
Řádek 21: | Řádek 21: | ||
<pre> | <pre> | ||
− | + | script Obchodnik(): usercollection | |
− | + | begin | |
− | + | result := getuserlistbytemplate("Obchodnik") | |
− | + | end | |
</pre> | </pre> | ||
Řádek 30: | Řádek 30: | ||
Ze všech uživatelů systémů vybere skript všechny uživatele s příjmením Novák a zobrazí aktuálnímu uživateli jejich seznam, aby vybral jednoho z Nováků pro další pokračování workflow procesu. | Ze všech uživatelů systémů vybere skript všechny uživatele s příjmením Novák a zobrazí aktuálnímu uživateli jejich seznam, aby vybral jednoho z Nováků pro další pokračování workflow procesu. | ||
<pre> | <pre> | ||
− | + | script Novaci(): usercollection | |
− | + | begin | |
− | + | foreach user do | |
− | + | if user.Name = ”Novák” then | |
− | + | result += user | |
− | + | end | |
− | + | end | |
− | + | end | |
</pre> | </pre> | ||
<h2>Nalezení uživatele dle role a příjmení</h2> | <h2>Nalezení uživatele dle role a příjmení</h2> | ||
<pre> | <pre> | ||
− | + | script NovaciObchodnici(): usercollection | |
− | var | + | var |
− | + | Obchodnici: usercollection | |
− | + | begin | |
− | + | Obchodnici := getuserlistbytemplate("Obchodnik") | |
− | + | foreach user in Obchodnici do | |
− | + | if user.Name = ”Novák” then | |
− | + | result += user | |
− | + | end | |
− | + | end | |
+ | end | ||
</pre> | </pre> | ||
<h2>Nalezení nadřízeného</h2> | <h2>Nalezení nadřízeného</h2> | ||
− | Pokud má aktuální uživatel v aplikaci | + | Pokud má aktuální uživatel v aplikaci enTeam User vyplněnu vlastnost "Odpovídá", pak níže uvedený skript nalezne přímého nadřízeného aktuálně přihlášeného člověka. Pokud tuto vlastnost uživatel vyplněnu nemá, pak je pro daný krok vybrán konkrétní uživatel dle svého ID. Může to být např. ředitel společnosti. |
<pre> | <pre> | ||
− | + | script Nadrizeny(): usercollection | |
− | + | begin | |
− | + | if actuser.ReportsToGuid <> "" then | |
− | + | result := getuserbyid(actuser.ReportsToGuid) | |
− | + | else | |
− | + | result := getuserbyid("93ecc830-cfb8-11d2-9aec-004f4901b63e") // ID hlavního nadřízeného | |
− | + | end | |
− | + | end | |
</pre> | </pre> | ||
<h2>Skript pro nalezení dříve určeného pracovníka</h2> | <h2>Skript pro nalezení dříve určeného pracovníka</h2> | ||
− | Ve většině workflow procesů je obvykle jeden vlastník běžícího procesu (např. u zakázky je to přidělený obchodník). Tento zpracovává většinu kroků, následně zpracování kroků předává dalším pracovníkům a workflow se pak k němu obvykle v nějakém kroku vrací. Je tedy vhodné si obchodníka nejprve v nějakém prováděcím kroku | + | Ve většině workflow procesů je obvykle jeden vlastník běžícího procesu (např. u zakázky je to přidělený obchodník). Tento zpracovává většinu kroků, následně zpracování kroků předává dalším pracovníkům a workflow se pak k němu obvykle v nějakém kroku vrací. Je tedy vhodné si obchodníka nejprve v nějakém prováděcím kroku zapamatovat (do proměnné wkf.Pracovník uložíme ID uživatele "wkf.Pracovnik := actuser.UserID") a následně již uživatele neobtěžovat výběrem obchodníka, ale workflow na něj automaticky přesměrovat. |
<pre> | <pre> | ||
− | + | script Pracovnik(): usercollection | |
− | + | begin | |
− | + | if wkf.pracovnik <> "" then | |
− | + | result := getuserbyid(wkf.Pracovnik) // Proměnná wkf.Pracovnik již musí být předem naplněna ID uživatele | |
− | + | else | |
− | + | result := actuser // V případě, kdy by proměnná wkf.Pracovnik nebyla naplněna, bude další krok workflow předán na uživatele, který právě dokončuje krok předchozí. | |
− | + | end | |
− | + | end | |
</pre> | </pre> | ||
Zpět na stránku [[Skriptovací jazyk]] | Zpět na stránku [[Skriptovací jazyk]] | ||
[[Category: MTB skripty]] | [[Category: MTB skripty]] |
Verze z 14. 8. 2020, 08:27
Vstupní skripty určují, který uživatel bude pracovní krok zpracovávat.
Obsah
Základní vlastnosti vstupního skriptu
- Vstupní skript se provádí při dokončování kroku předchozího. Je nutné na to myslet zejména u kroků, do kterých vede hrana z kroku předchozího, ale i z nějakého následujícího, tedy ze smyčky.
- Uživatel, který bude ve skriptu označen jako aktuální (actuser) bude ten, který právě dokončuje krok předchozí.
- Pokud je výsledkem vstupního skriptu více uživatelů, pak bude aktuálnímu uživateli zobrazen seznam těchto uživatelů s požadavkem výběru jednoho konkrétního uživatele.
Skript AktualniUzivatel
Tento skript se používá, pokud je krok nutné nasměrovat na uživatele předchozího kroku. Obvykle se tento skript používá také pro první krok workflow, tzn. první krok bude zpracovávat uživatel, který workflow proces spustil.
script AktualniUzivatel(): usercollection begin result := actuser end
Skript pro nalezení uživatele dle Role
Skript nalezne uživatele dle role "Obchodnik". Pokud má roli přidělen pouze jeden uživatel, pak je pracovní krok přiřazen tomuto uživateli. Pokud má tuto roli více uživatelů, pak bude aktuálnímu uživateli zobrazen seznam těchto uživatelů s požadavkem výběru jednoho konkrétního uživatele.
script Obchodnik(): usercollection begin result := getuserlistbytemplate("Obchodnik") end
Cyklus přes všechny uživatele systému
Ze všech uživatelů systémů vybere skript všechny uživatele s příjmením Novák a zobrazí aktuálnímu uživateli jejich seznam, aby vybral jednoho z Nováků pro další pokračování workflow procesu.
script Novaci(): usercollection begin foreach user do if user.Name = ”Novák” then result += user end end end
Nalezení uživatele dle role a příjmení
script NovaciObchodnici(): usercollection var Obchodnici: usercollection begin Obchodnici := getuserlistbytemplate("Obchodnik") foreach user in Obchodnici do if user.Name = ”Novák” then result += user end end end
Nalezení nadřízeného
Pokud má aktuální uživatel v aplikaci enTeam User vyplněnu vlastnost "Odpovídá", pak níže uvedený skript nalezne přímého nadřízeného aktuálně přihlášeného člověka. Pokud tuto vlastnost uživatel vyplněnu nemá, pak je pro daný krok vybrán konkrétní uživatel dle svého ID. Může to být např. ředitel společnosti.
script Nadrizeny(): usercollection begin if actuser.ReportsToGuid <> "" then result := getuserbyid(actuser.ReportsToGuid) else result := getuserbyid("93ecc830-cfb8-11d2-9aec-004f4901b63e") // ID hlavního nadřízeného end end
Skript pro nalezení dříve určeného pracovníka
Ve většině workflow procesů je obvykle jeden vlastník běžícího procesu (např. u zakázky je to přidělený obchodník). Tento zpracovává většinu kroků, následně zpracování kroků předává dalším pracovníkům a workflow se pak k němu obvykle v nějakém kroku vrací. Je tedy vhodné si obchodníka nejprve v nějakém prováděcím kroku zapamatovat (do proměnné wkf.Pracovník uložíme ID uživatele "wkf.Pracovnik := actuser.UserID") a následně již uživatele neobtěžovat výběrem obchodníka, ale workflow na něj automaticky přesměrovat.
script Pracovnik(): usercollection begin if wkf.pracovnik <> "" then result := getuserbyid(wkf.Pracovnik) // Proměnná wkf.Pracovnik již musí být předem naplněna ID uživatele else result := actuser // V případě, kdy by proměnná wkf.Pracovnik nebyla naplněna, bude další krok workflow předán na uživatele, který právě dokončuje krok předchozí. end end
Zpět na stránku Skriptovací jazyk