Základní pravidla tvorby workflow: Porovnání verzí
Řádek 31: | Řádek 31: | ||
Ukažme si však nyní příklad, kdy by toto nefungovalo: | Ukažme si však nyní příklad, kdy by toto nefungovalo: | ||
<br/> | <br/> | ||
− | [[Soubor: | + | [[Soubor:Graf2.png]] |
Po uplatnění předchozího pravidla by totiž krok D čekal také na krok E, který by ale určitě ještě nebyl dokončen. Proto musíme některé hrany označit jako Zpětné (jde o vlastnost na hraně, graficky je to znázorněno neplnou šipkou). Předchozí pravidlo pak rozšíříme na: Krok je instanciován tehdy, pokud do něj přichází všechny hrany, které do vedou, avšak krok s instanciováním nečeká na hrany zpětné. | Po uplatnění předchozího pravidla by totiž krok D čekal také na krok E, který by ale určitě ještě nebyl dokončen. Proto musíme některé hrany označit jako Zpětné (jde o vlastnost na hraně, graficky je to znázorněno neplnou šipkou). Předchozí pravidlo pak rozšíříme na: Krok je instanciován tehdy, pokud do něj přichází všechny hrany, které do vedou, avšak krok s instanciováním nečeká na hrany zpětné. |
Aktuální verze z 14. 8. 2020, 09:38
Po ujasnění základních pojmů můžete přistoupit k vlastnímu návrhu workflow. Základem správného fungování workflow je návrh grafu workflow, který splňuje všechny požadavky kladené na pracovní proces. V ideálním případě by měl počítat i s možnými změnami pracovních postupů a personálního obsazení v budoucnu.
Obsah
Příprava grafu workflow
- načrtnout si na papír potřebné uzly (pracovní kroky) se zřetelem na personální obsazení uzlů a termíny splnění činnosti pracovních kroků
- spojit uzly hranami včetně podmínek jejich průchodnosti
Tato příprava se obvykle provádí v součinnosti s vlastníkem workflow.
Konstrukce grafu workflow
Po promyšlení výše uvedených skutečností lze přistoupit ke konstrukci grafu workflow v prostředí Workflow Designer.
Pravidla pro hrany
Rozhodující pro průběh workflow je výsledek vyhodnocení skriptu hrany.
- Pokud je výsledkem hodnota true, může workflow pokračovat dál.
- Pokud je výsledkem hodnota false, není možné hranou pokračovat.
- Mohlo by dojít k situaci, že by žádná cesta nebyla průchodná a workflow by bylo přerušeno. Z toho důvodu je někdy nutné použít pro hranu podmínku/příkaz ELSE.
Příkaz ELSE
V rámci zajištění konzistence workflow je nutné zajistit, aby nebylo nikde přerušeno. To znamená, že musí být neustále k dispozici hrana, kterou by mohlo workflow pokračovat. K tomuto účelu slouží příkaz ELSE. Je nutné dodržet následující pravidla:
- Pokud vede od nějakého uzlu pouze jedna hrana, není možné jí přiřadit žádný skript. Toto pravidlo je založeno na předpokladu, že skript s návratovou hodnotou boolean může mít výsledek false a nebylo by tedy možné pokračovat dál. Pokud není hraně přiřazen žádný skript, nemůže nastat situace přerušení workflow.
- Pokud vede od jednoho uzlu workflow více hran, které všechny obsahují skript, musí mezi nimi být právě jedna hrana s příkazem ELSE.
- Hrana s příkazem ELSE je hrana, kterou workflow pokračuje, pokud neexistuje žádná jiná hrana s hodnotou true. Pouze v tomto případě je hrana ELSE aktivována.
Mechanismus zpracování workflow
Důležitým bodem při tvorbě prvního workflow je pochopení, jak systém vyhodnocuje podmínky na hranách a jaké jsou návaznosti mezi kroky v grafu.
Nejjednodušší situace je taková, kdy workflow má pouze sériové kroky, tzn. kroky následující jeden za druhým a nejsou zde žádná větvení. Pak systém po dokončení jednoho kroku automaticky připraví krok k vyřízení. (Stav vyřízení je takový, kdy krok může být přiděleným uživatelem spuštěn. Někdy také říkáme, že krok je instanciován)
Drobná komplikace nastane, pokud se workflow větví, tak jak je uvedeno na následujícím obrázku. Pokud na žádné hraně není skript, pak krok D bude ve stavu k vyřízení až tehdy, když bude dokončen krok B a C. Pokud je ale např. na hraně 1 podmínka, která hranu uzavřela, tak se krok D dostane do stavu k vyřízení ihned po dokončení kroku C.
Dalo by se tedy stanovit pravidlo: Krok je instanciován (ve stavu k vyřízení) tehdy, pokud do něj přejdou všechny hrany, které do něj vedou.
Ukažme si však nyní příklad, kdy by toto nefungovalo:
Po uplatnění předchozího pravidla by totiž krok D čekal také na krok E, který by ale určitě ještě nebyl dokončen. Proto musíme některé hrany označit jako Zpětné (jde o vlastnost na hraně, graficky je to znázorněno neplnou šipkou). Předchozí pravidlo pak rozšíříme na: Krok je instanciován tehdy, pokud do něj přichází všechny hrany, které do vedou, avšak krok s instanciováním nečeká na hrany zpětné.
Proměnné
Velmi důležité je ještě před začátkem návrhu činnosti pracovních kroků, což reprezentuje ve většině případů i návrh masek k přijímání informací od uživatele, nadefinovat globální proměnné, které budou k tomu potřeba. To se provádí ve Slovníku dat, do kterého je přístup z prostředí Mask Designer i Workflow Designer. Ve Workflow Designer najdete datový slovník v menu NÁSTROJE/ADMINISTRACE/DATOVÝ SLOVNÍK.
V dialogu EDITOVAT/VLASTNOSTI WORKFLOW ve Workflow Designer je pak nutné tyto proměnné přiřadit k právě editovanému workflow.
Globální proměnné (ve skriptu s předponou <wkf.>) si zachovávají hodnotu z jednoho kroku i po přechodu do dalšího kroku téže instance workflow. Naopak v různých instancích téže workflow se tyto proměnné stejného jména nijak neovlivňují. Důvod, proč se proměnná definuje a zvlášť přidává k danému workflow, je ten, že je možné jednu definici proměnné používat v různých definicích workflow. Existuje pak např. pouze jedna proměnná IdDodavatele a ta je použita ve workflow Smlouva i workflow Faktura přijatá.
Kromě globálních proměnných existují i lokální proměnné, které lze nadefinovat přímo ve skriptu pro pomocné výpočty. Mají platnost pouze v rámci pracovního kroku, kde je tento skript použit. Mohou být stejného typu jako globální proměnné kromě typu Seznam (list). POZOR: Lokální proměnné je nutné na rozdíl od globálních zapisovat stejně, jako jsou nadefinovány, tedy použít stejnou velikost písmen.
Navržené globální proměnné nadefinujte ve Slovníku dat. Nezapomeňte je pak také přidat do workflow ve Vlastnostech workflow.
Zpět na stránku Tvorba workflow