Vstupní skripty: Porovnání verzí

Z enTeam
Skočit na navigaci Skočit na vyhledávání
Řádek 21: Řádek 21:
  
 
<pre>
 
<pre>
Script Obchodnik(): UserCollection
+
script Obchodnik(): usercollection
Begin
+
begin
   Result := GetUserListByTemplate("Obchodnik")
+
   result := getuserlistbytemplate("Obchodnik")
End
+
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
+
script Novaci(): usercollection
Begin
+
begin
   ForEach User Do
+
   foreach user do
     If User.Name = ”Novák”  
+
     if user.Name = ”Novák” then
       Then Result += User
+
       result += user
     End
+
     end
   End
+
   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
+
script NovaciObchodnici(): usercollection
var obchodnici : UserCollection
+
var  
Begin
+
  Obchodnici: usercollection
   obchodnici := GetUserListByTemplate("Obchodnik")   
+
begin
   ForEach User In obchodnici Do
+
   Obchodnici := getuserlistbytemplate("Obchodnik")   
     If User.Name = ”Novák”  
+
   foreach user in Obchodnici do
       Then Result += User
+
     if user.Name = ”Novák” then
     End
+
       result += user
   End
+
     end
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 M/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.
+
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
+
script Nadrizeny(): usercollection
Begin
+
begin
   If ActUser.ReportsToGuid <> "" Then
+
   if actuser.ReportsToGuid <> "" then
     Result := GetUserById(ActUser.ReportsToGuid)
+
     result := getuserbyid(actuser.ReportsToGuid)
   Else
+
   else
     Result:= GetUserById("93ecc830-cfb8-11d2-9aec-004f4901b63e") //ID hlavního nadřízeného
+
     result := getuserbyid("93ecc830-cfb8-11d2-9aec-004f4901b63e") // ID hlavního nadřízeného
   End
+
   end
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 zamapatovat (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.  
+
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
+
script Pracovnik(): usercollection
Begin
+
begin
   If wkf.pracovnik <> "" Then
+
   if wkf.pracovnik <> "" then
     Result := GetUserByID (wkf.pracovnik) //proměnná pracovník již musí být předem naplněna ID uživatele
+
     result := getuserbyid(wkf.Pracovnik) // Proměnná wkf.Pracovnik již musí být předem naplněna ID uživatele
   Else
+
   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í.
+
    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
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.

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