
Programování workflow pro SharePoint – Úvod
- Posted by Jan Vaněk
- On 24.2.2015
- 0
Workflow, nebo taky pracovní postupy jsou jednou z klíčových schopností SharePointu. Umožnuje formulovat procesy, které budou nad informacemi v něm probíhat. Procesy jako jsou např. tvorba podnikové směrnice, schvalování faktur, objednání kancelářských pomůcek, rezervace služebních automobilů a podobně. Někdy mohou popisovat jen dílčí činnosti nad položkami a dokumenty. Jindy mohou určovat celý jejich životní cyklus od vytvoření až ke skartaci, nebo archivaci.
Ideálním cílem je stav, kdy tyto procesy mohou tvořit a upravovat i lidé, kteří nejsou programátory s dlouholetou praxí, ale kteří rozumí dané problematice a jejím procesům (např. účetnictví).
Workflow uvnitř
Worklfow se skládá z dílčích kroků, které jsou mezi sebou propojeny tak, aby workflow dělalo, co se po něm chce. Trochu to může připomínat skládání kostek Lega. Společné je i to, že máme omezenou sadu tvarů, se kterými pracujeme. Těmto kroků nebo kostkám se v terminologii workflow říká aktivity. Na rozdíl od stavění z Lega musíme u worklfow navíc ještě určit, kde má začátek a kde konec. Konců může mít případně více.
Dalším rozdílem oproti Legu je fakt, že si můžeme vytvářet nové vlastní aktivity (kostky) a ty pak opakovaně používat při stavbě dalších workflow. Při použití aktivit ve worklfow jim můžeme nastavovat vlastnosti a tím ovlivňovat jejich chování.
Pokud nám funkce aktivit nestačí a nechceme (nebo nemůžeme) tvořit nové, můžeme worklfow doplnit o programový kód. Tato možnost je ale závislá na tom, jakým způsobem worklfow tvoříme a kam jej budeme nasazovat (SharePoint on-premise vs online). Podle toho se workflow dělí na:
- deklarativní – jsou poskládána pouze z dostupných aktivit a jejich parametrů. Takové workflow je potom vnitřně tvořeno pouze XAML definicí (XML dokument). Tato jediná se dají publikovat přímo do SharePoint Online.
- kódová – obsahují navíc i vlastní kód – kromě XAMLu obsahuje i zkompilovaný .NET kód (DLL).
Typy workflow
Workflow se obvykle dělí na 2 kategorie podle toho, jak je řízen jejich běh.
- Sekvenční – odpovídá tradiční představě. Zobrazují se obvykle jako „hrozen“. Nahoře workflow začíná a dolů se vine několik větví, které se mohou dělit a zase spojovat. Tyto větve představují možné běhy workflow. Rozdělení větve představuje podmínku, na jejímž základě se workflow rozhodne kudy dále. Konec větve je i koncem běhu workflow.
- Stavová – na obrázku vypadají jako krabičky různě propojené čarami. Zdánlivě to nemá začátek ani konec. Boxy představují vnitřní stavy workflow (např. Nakupování, K zaplacení, Vybrán způsob doručení, … ), počáteční a koncové (může jich být opět více) jsou označeny zvláštními barvami. Když workflow dorazí do nějakého stavu, spustí se sekvenční sada aktivit. Čáry mezi představují přechody mezi stavy. Každý takový přechod je určen podmínkou, kdy k němu může dojít. Například ve workflow nákupu se ze stavu Nakupování do stavu K zaplacení může workflow dostat jen tehdy, když si uživatel něco vložil do košíku a kliknul na tlačítko K zaplacení. Po jeho stisku se na pozadí vytvoří objekt Objednávky. A pokud vše dopadne dobře, dostane se workflow do stavu K zaplacení.
Typy aktivit
Tak jako workflow i aktivity můžeme rozdělit do několika skupin, tentokrát podle toho, co dělají:
- Řídící – podmínky, smyčky, … Typicky vyhodnocují zadanou podmínku a slouží k řízení běhu workflow. Např. je cena objednávky vyšší než 5000Kč? Když ano, pokračuj tudy, jinak pokračuj jiným směrem.
- Ty co na něco čekají (event driven) – např. čekají na to, až se změní stav úkolu, až uplyne zadaná doba, až se změní položka, nad kterou běží…
- „Výkonné“ aktivity – ty něco dělají. A mohou dělat různě složité věci. Například do proměnné ve workflow mohou nastavit hodnotu, nebo vytvoří úkol zadanému uživateli. Vůbec práce s úkoly bývá častá náplň činnosti workflow.
Asi nikoho nepřekvapím tím, že workflow samotné je vlastně “jen” složitější aktivita.
Spouštění workflow
Workflow může být v SharePointu spuštěno několika způsoby:
- Uživatelem z uživatelského rozhraní
- Vytvořením položky
- Změnou položky
- Programově
Vždy ale v SharePoint platí, že workflow musí běžet nad 1 entitou (položkou seznamu, dokumentem v knihovně dokumentů nebo webem).
Životní cyklus
Popsali jsme si, jak se workflow spouští. Nyní se podívejme, co se děje dál.
- Spuštění – workflow je na základě podmínek, nebo ručně spuštěno. Definice workflow je načtena do paměti, jsou jí předány parametry.
- Běh workflow – postupně jsou spouštěny jednotlivé aktivity podle definice až do okamžiku, kdy workflow skončí nebo začne na něco čekat. V případě čekání je workflow tzv. dehydrováno.
- Dehydratace – workflow včetně jeho aktuálního stavu je uloženo do databáze. Zaregistruje se událost, na kterou čeká (uplynutí času, změna úkolu vytvořeného workflow, změna položky, nad níž workflow běží, … ).
- Rehydratace – opětovné načtení do paměti a spuštění od místa, kde naposledy skončilo.
Definice, asociace, instance
V souvislosti s workflow v SharePointu se můžete setkat s následujícími pojmy:
- Definice workflow – popis toho, co má worklfow dělat. Součástí definice mohou být i 2 sady parametrů:
- Asociační – předávají se při asociaci definice (viz. dále). Mohou mít i vlastní formulář pro vstup uživatele.
- Instanciační – předávají se workflow při spuštění. Mohou mít i vlastní formulář pro vstup uživatele
- Asociace – napojení definice workflow na konkrétní seznam, knihovnu dokumentů nebo web (v SharePointu 2010 šlo asociovat worklfow i s typem obsahu). Každá asociace má svoje jméno, způsob spouštění a asociační parametry. Asociace se děje buď automaticky, nebo uživatelem v UI (v takovém případě je mu zobrazen asociační formulář worklfow pro zadání asociačních parametrů). Jednu definici workflow můžeme asociovat několikrát pod různým jménem a různými parametry.
- Instance – jedno konkrétní běžící workflow. Pro každou asociaci může běžet nad 1 položkou nejvýše 1 instance workflow. Každá instance může mít svoji vlastní sadu instanciačních parametrů. V případě spuštění uživatelem mu může být zobrazen formulář pro jejich zadání. Všechny instance jedné asociace mají společné asociační parametry.
0 comments on Programování workflow pro SharePoint – Úvod