Programování workflow pro SharePoint – Nástroje
- Posted by Jan Vaněk
- On 30.3.2015
- 0
V minulém díle jsme si představili workflow obecně. K čemu jsou, do jakých kategorií se dají rozdělit, z čeho se skládají a mnoho dalšího. Dnes se podíváme na to, jakým způsobem je můžeme tvořit, jaké nástroje máme k dispozici a jaká nás mohou potkat úskalí.
SharePoint 2010 vs SharePoint 2013
SharePoint 2010 a SharePoint 2013 se liší významně “motorem”, který máme k dispozici k pohonu našich workflow. V SharePointu 2010 je k dispozici “motor” v podobě Windows Worklfow Runtime 3.5. V SharePointu 2013 je to trochu složitější. V edici SharePoint Foundation je to tentýž Windows Worklfow Runtime 3.5, zatímco v SharePoint Serveru 2013 máme navíc k dispozici i “motor” Windows Workflow Runtime 4. V SharePoint Foundation 2013 jsme na tom tedy stejně jako v předchozí verzi SharePointu. V SharePoint Serveru 2013 si můžeme vybrat.
Hlavním důvodem, proč je původní runtime v SharePoint 2013 stále dostupný, je zpětná kompatibilita. V SharePoint Foundation 2013 je to zároveň jediná volba.
Kromě změny verze runtime přináší verze 2013 i novinky z hlediska vnitřního uspořádání. Runtime pro hostování workflow 2010 je součástí instalace SharePointu. Nový runtime pro hostování Workflow 2013 je implementován v samostatně instalovaném Workflow Manageru. Toto obecnější řešení umožňuje provozovat workflow nejen z SharePointu ale obecně z jakéhokoliv jiného systému, který se s Workflow Managerem dokáže spojit. Komunikace probíhá pomocí Azure Service Bus. SharePoint je vlastně jen jedním z mnoha možných klientů, kteří si v něm nechávají hostovat svá workflow.
Změna architektury hostování workflow mezi SharePointem 2010 a SharePointem 2013
Změna runtime v SharePointu 2013 také přináší některé nové aktivity.
Nástroje
Workflow pro SharePoint můžeme tvořit pomocí 3 základních nástrojů. Těmi jsou SharePoint Designer, Visio a Visual Studio.
SharePoint Designer
Nástroj pro pokročilejší uživatele a autory úprav SharePointu. Snaží se balancovat mezi jednoduchostí a tím, co uživateli nabízí. S jeho pomocí můžeme tvořit 3 typy workflow:
- Workflow nad seznamem (list workflow) – je asociováno s konkrétním seznamem nebo knihovnou dokumentů. Nad ním je spouštěno ručně nebo automaticky.
- Opakovaně použitelné workflow (reusable workflow) – při svém vzniku není asociováno s ničím, je to jen definice. Později může být asociováno se seznamem, knihovnou nebo typem obsahu a nastaveno, jak se má spouštět.
- Webové worklfow (site workflow) – workflow definované na úrovni webu. Dá se spouštět jen ručně pomocí zobrazení obsahu webu a vpravo nahoře možnost Workflow webu.
SharePoint Designer 2013 umožnuje ve workflow pro runtime 2013 použít i některé novinky:
- Definovat fáze – umožnují zabalit několik kroků do jednoho bloku a na konci tohoto bloku pomocí podmínek řídit, který blok se má vykonávat jako další.
- Vytvářet cykly – podmíněné (jejich opakování je řízeno podmínkou) i s pevným počtem opakování.
Příklad definice workflow s SharePoint Designeru 2013
Visio
MS použil nástroj, který už má, k tomu aby usnadnil návrh worklfow. Vytvořil pro ně sadu tvarů, kterými se dají wokflow “nakreslit”. Visio je možné použít dvěma způsoby:
- Ve Visiu 2013 použijete sadu tvarů Pracovní postup Microsoft SharePointu 2013 k nakreslení kostry workflow. To pak můžete naimportovat do SharePoint designeru a dotvořit jej do fungující podoby.
- Pokud máte na stejném počítači nainstalován SharePoint Designer 2013 a Visio 2013, můžete využít jejich spolupráce při tvorbě workflow. Fakticky to funguje tak, že si můžete v ribbonu přepínat zobrazení SharePoint Designeru a Visia. Pokud máte na SharePointu kam výsledné workflow nasazujete rozchozeny i Visio Services, můžete se v takovém případě dívat na Visio zobrazení workflow i přímo v SharePointu.
Stejné workflow jako v předchozím případě zobrazené pomocí Visia 2013
Visual Studio
Abyste mohli ve Visual Studiu vytvářet projekty pro SharePoint, musíte mít nainstalované rozšíření Office Developer Tools. Také u Visual Studia si musíme zmínit verze. Visual Studio 2010 umožnuje tvořit projekty pro SharePoint 2010. Visual Studio 2012, 2013 a chystající se 2015 vám umožní vytvářet projekty pro SharePoint 2010 i SharePoint 2013. Nesmíte zapomínat přepínat cílové .NET frameworky (3.5 pro SharePoint 2010 a 4.5 pro SharePoint 2013).
Pomocí Visual Studia můžeme vytvořit prakticky jakékoliv workflow. Cenou za to je nutnost umět používat Visual Studio použít a komplikovanost tvorby. Klíčovými otázkami, které si při vývoji pro SharePoint 2013 musíme na začátku zodpovědět, jsou:
- Budu podporovat i edici Foundation? Pokud ano, musím zvolit mód workflow 2010.
- Budu ho nasazovat do SharePointu Online? Pokud ano, nesmím v něm napsat žádný .NET kód.
I ve Visual Studiu můžete výsledné workflow doplnit o diagram z Visia a mít tak vizuální reprezentaci pro zobrazení v SharePointu (opět jsou nutné fungující Visio Services).
Pomocí Visual Studia můžete tvořit nejen workflow, ale i knihovny aktivit, které následně můžete nainstalovat do SharePointu a využívat je v dalších workflow.
SharePoint Online vs SharePoint on-premise
Jak už jsem se zmínil, SharePoint Online přináší některá omezení:
- Jako ve všech ostatních případech i pro workflow platí, že nesmí obsahovat žádný vlastní kód (C#, VB, …).
- Rozšíření do SharePoint online se nasazují pomocí tzv. apps. Jejich základní vlastností je, že vše co obsahují, se nasazuje do pro každou app vlastního webu (tzv. app web). Platí to pro seznamy, stránky a samozřejmě i workflow. Tato worklfow mohou běžet nad seznamy z téže app. To je sice fajn, ale uživatelé obvykle chtějí, aby běžely i nad jejich daty. Tedy nad seznamy a knihovnami dokumentů ve webech, které se si sami vytvořili a na nichž app instalují. Těmto webům se říká host weby. Abychom tento požadavek splnili, máme 2 možnosti:
- Upravíme app dodatečně (po jejím zkompilování) tak, aby worklfow nasadila do host webu. Toto je v podstatě hack a není MS podporován.
- Napíšeme naši app tak, aby obsahovala kód, který při instalaci “překopíruje” definici workflow z app webu do host webu.
0 comments on Programování workflow pro SharePoint – Nástroje