Vstupní skripty: Porovnání verzí

Z enTeam
Skočit na navigaci Skočit na vyhledávání
 
Řádek 82: Řádek 82:
  
 
Zpět na stránku [[Skriptovací jazyk]]
 
Zpět na stránku [[Skriptovací jazyk]]
[[Category: MTB skripty]]
+
[[Category: enTeam skripty]]

Aktuální verze z 22. 12. 2020, 21:26

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