Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

35
www.expertpointsolutions.com Building Scalable SharePoint 2013 Workflows Brian Culver SharePoint Fest DC WF 101 April 8-10, 2015

Transcript of Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Page 1: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

www.expertpointsolutions.com

Building Scalable SharePoint 2013 Workflows

Brian Culver● SharePoint Fest DC ●WF 101 ● April 8-10, 2015

Page 2: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

About Brian Culver

SharePoint Solutions Architect for Expert Point Solutions

Based in Houston, TX

Author

ProveIT! Analytics

SharePoint 2010 Unleashed

Various White Papers

Speaker and Blogger

Page 3: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Session Agenda

Why do we use Workflows?

How did Workflows change in

SharePoint 2013

Why are they better in 2013?

Workflow Manager 1.0

Building a Workflow in 2013

Workflows Best Practices

Page 4: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Why do we use Workflows?

A workflow is basically a series of tasks that produce an outcome.

In a business scenario, a workflow is a business process.

Workflows can be used to automate, solve and improve processes:

Help people to collaborate on documents

Manage project tasks

Help organizations to adhere to consistent business processes

Improve organizational efficiency and productivity

They enable the people who perform these tasks to concentrate

on performing the work rather than managing the workflow or

process.

Page 5: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

How did Workflow change in SharePoint 2013?

SharePoint 2013 offers two workflow engine flavors:

SharePoint 2010 Workflows (based on .NET3.5)

SharePoint 2013 Workflows (based on .NET4.x)

SharePoint 2010 Workflows run within SharePoint (the internal

workflow host)

SharePoint 2013 Workflows run outside of SharePoint in the new

Workflow Manager (formerly labeled as Azure Cloud) Farm

2010

Workflows

2013

Workflows

SharePoint 2013

Rest Services

Page 6: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Why are they better in 2013?

Several improvements in several areas:

Workflow Engine

For SharePoint 2013 Workflows – taken out of SharePoint

Uses Workflow Framework in .NET 4.x which is much more robust

Can be extended and enhanced more easily

Much more scalable

SharePoint Designer 2013

Leverages Visio 2013 to provide a better design experience for users and developers.

Business user builds the Workflow in Visio 2013 with SharePoint 2013 Workflow Shapes.

Designer/Developer can import into SharePoint Designer 2013 and/or Visual Studio 2012.

Export to Visio 2013 files preserves workflow properties and details which makes it much more portable between sites and environments.

Page 7: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

What is better in 2013?

New Workflow Actions, Components and Conditions

Page 8: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

What is better in 2013?

Stage Shapes

A stage is a container which can contain any number of shapes and actions, such as sending

an email and logging to the workflow history. A stage must have only one path in and one

path out.

Page 9: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

What is better in 2013?

The following rules apply to stages:

A workflow must have at least one stage. A stage, by

default, has a Start, Enter and Exit shape SharePoint 2013

Workflow template.

An explicit Start shape is required outside of the stage for

the entire diagram. An explicit Terminate shape outside of the

stage is not required.

Stage containers cannot be nested. Use other containers

within a stage to nest, such as a Step container.

Stop Workflow shapes may exist within a stage.

At the top level, the workflow can contain only stages,

conditional shapes, and Start and Terminate terminators.

All other shapes must be contained within a stage.

Page 10: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

What is better in 2013?

Loop shapes Loops are a series of connected shapes that will execute as a single unit

within a loop container. Like stages, loops are a container shape with an

Enter and Exit shape. A loop shape also requires that an Enter and Exit

shape be added to the edges of the container to define the paths in and

out of the loop. Workflows in SharePoint Server 2013 support two types

of loops: loop n times and loop with condition.

Page 11: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

What is better in 2013?

The following rules apply to loops:

Loops must be within a stage.

Steps may be within a loop.

Loops may have only one entry and one exit point.

Page 12: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

What is better in 2013?

Step shapes

Steps represent a group of sequential actions to be performed as a single unit.

Page 13: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

What is better in 2013?

The following rules apply to steps:

Steps must be within a stage.

Steps may be within a loop.

Steps may have only one entry and one exit point.

Steps can contain steps.

To learn more about the workflow Shapes available in the SharePoint Designer

2013, go to:

http://msdn.microsoft.com/en-us/library/jj164055.aspx

Page 14: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

What is better in 2013?

Designer Improvements (with Visio 2013 only)

Text-Based Designer

Visual Designer

Page 15: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Visual Designer vs Text-Based Designer

Demo

Page 16: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

What is better in 2013?

SharePoint 2013 Workflows Architecture

SharePoint 2013 workflows are powered by the .NET 4.x workflow

infrastructure or Windows Workflow Foundation 4 (WF4).

WF4 was substantially redesigned from prior versions in that it is built

on the messaging functionality provided by the Windows Communication

Foundation (WCF).

In WF4 workflows, each business process step is represented by a

workflow "activity". Thus, workflow activities represent the underlying

managed objects whose methods drive workflow behaviors.

Page 17: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

What is better in 2013?

SharePoint 2013 Workflows Architecture

Page 18: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

What is better in 2013?

SharePoint 2013 Workflows Architecture

In SharePoint Designer, workflow actions are the user-friendly

representations of the underlying activities from WF4.

As the workflow executes, each workflow action interacts with

the workflow execution engine which in turn acts on the

corresponding activities.

The workflow activities are implemented declaratively by using

XAML.

Workflow activities are invoked by using loosely coupled web

services that use messaging APIs (Windows Communication

Foundation or WCF) to communicate with SharePoint Server

2013.

Page 19: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

What is better in 2013?

SharePoint 2013 Workflows Architecture

In SharePoint Server 2013, the Workflow Manager Client 1.0

hosts the WF4 engine and WCF web services.

Together, the Workflow Manager Client 1.0, SharePoint 2013,

and SharePoint Designer 2013 each provide the functionality that

makes up the SharePoint 2013 Workflow Architecture.

The Workflow Manager Client 1.0 provides the management of

workflow definitions and hosts the execution processes for each

workflow instance.

The SharePoint 2013 platform provides the framework for

building SharePoint workflows and storing the SharePoint

workflows.

Page 20: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Is there bad news?

So the bad news?

There is no bad news. There is only news.

SharePoint 2013 does not support all the actions SharePoint 2010 did.

Why?

WorkAround:

Invoke a SharePoint 2010 Workflows via the SharePoint Interop (Start Another Workflow action).

Bad ALM Story

Dueling Banjos

Dictionaries are hard to build dynamically

Page 21: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Workflow Manager 1.0

Installing the Workflow Manager 1.0

Download “Workflow Manager 1.0”

http://www.microsoft.com/en-us/download/details.aspx?id=35375

Install

Prerequisites: http://technet.microsoft.com/en-us/library/jj193451.aspx

WorkflowManager.exe in the Application Servers or Workflow Farm Servers.

For SharePoint 2013, WorkflowClient.exe in the Web Front Ends.

Run the “Workflow Manager Configuration”

“Configure Workflow Manager with Custom Settings”

Note: Do not pick “Recommended” option

For more information: http://technet.microsoft.com/en-us/library/jj658588.aspx

Page 22: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Workflow Forms

The New Story

Is InfoPath 2013 going away?

.NET 4 Workflows and Forms

Generates .ASPX pages

Can work with InfoPath 2013 as well

InfoPath 2013 does have new improvements.

Web service, WCF, REST, JSON

Page 23: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Workflow Forms

The New Story

New features in InfoPath 2013

The development experience has been drastically improved to

work with Visual Studio 2012

InfoPath can now be deployed as a sandbox solution

The publishing process has been simplified

SharePoint List forms have been enhanced

An InfoPath form Web part has been added

The InfoPath Form Service provides richer Web forms

The InfoPath Form Service follows better compliant standards

InfoPath now supports digital signatures

Page 24: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Building a Workflow in 2013

Reusable and Global Reusable WorkflowsReusable workflows were introduced in SharePoint Designer 2010 along with site workflows.

Reusable workflows are associated with a content type instead of a specific list.

SharePoint provides the ability to reuse content types across multiple sites and lists, and

enables associated workflows to execute on any list where the content type has been

configured for use.

Reusable workflows are only aware of site columns on the associated content type, and

certain core list metadata columns that are shared across all lists such as “Created” and

“Created By”.

Global Reusable workflows are available for use anywhere within a Site Collection, but the

workflow and associated content type must be created in the top-level site of a site collection.

One of the most powerful features of the reusable workflow is the ability to export for use in

other site collections, web applications and SharePoint farms.

SharePoint Designer automatically packages the workflow and dependencies including forms

as a solution package (.WSP) that can be deployed as a sandbox solution, making it possible

to also deploy them to hosted SharePoint environments such as Office 365.

Page 25: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Building a Workflow in 2013

Site Workflows

Site workflows were new in SharePoint 2010. Site workflows are published to a

site rather than a content type or list. Since they are not associated with a specific

list or content type, they are not associated with any specific list item (or within the

workflow context, the current item). Since a site workflow does not have the

specific list item associated with the workflow context, some workflow actions are

not available, such as workflow actions triggered when the current list item

changes.

Site workflows also do not have events in SharePoint that trigger them. Therefore, site

workflows have to be started manually either directly by user or programmatically.

Site workflows are essentially best designed to perform administrative functions on the

sites upon which they execute.

Site workflows greatly benefited from custom workflow actions which can expand the

capabilities far beyond what is provided out of the box.

Page 26: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Building a Workflow in 2013

List Workflows

List workflows have been supported since SharePoint 2007 in SharePoint

Designer. A list workflow is designed and published directly to a specific list

instance.

List workflows do offer a key feature not found in site workflows or reusable workflows,

the ability to access list columns (columns created directly on the list).

A very annoying flaw in list workflows is their affinity to the list where they were published.

Cannot be moved or reused on another list or another site.

List workflows have a place where a small and specific process is required.

They are not good choices for complex workflows or workflows that may need to be used

elsewhere, such as another site or list.

Page 27: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Building a Workflow in 2013

Lets build a simple vacation request workflow

Page 28: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Building a workflow in SharePoint 2013

Demo

Page 29: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Using REST API

Creating a Sub Site via Workflow using REST API

url: http://site url/_api/web/webinfos/add

method: POST

Headers:

Authorization: "Bearer " + accessToken,

X-RequestDigest: form digest value,

content-type: "application/json;odata=verbose",

content-length: length of post body

body: { 'd' :{

'parameters': {

'__metadata': {'type': 'SP.WebInfoCreationInformation' },

'Url': 'RestSubWeb',

'Title': 'RestSubWeb',

'Description': 'rest-created web',

'Language':1033,

'WebTemplate':'sts',

'UseUniquePermissions':false}

}}

Page 30: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Using REST API

Creating a Sub Site via Workflow using REST API

Page 31: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Using REST API

Creating a Sub Site via Workflow using REST API

Page 32: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Workflows Best Practices

Document the High-Level workflow Then break it up into smaller units

Plan before you build Most workflows do not look the same after a couple iterations

Put in the time to carefully understand the workflow and identify issues

Create Reusable workflows Portable and reusable

Create smaller, simpler workflows (when possible) Larger workflows are harder to reconfigure

Larger workflows are harder to fix and diagnose

Larger workflows increase complexity of logic

Page 33: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Questions

??

?

?

Page 34: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Constructive Feedback Is Appreciated

Great information,

but would like to

have learned more

about [Insert Topic]Brian – Your

presentation

was …

Good

Demos!

Thanks!

Page 35: Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC

Thank you!

Brian Culver, MCM

Twitter:

@spbrianculver

E-mail:

[email protected]

Blog:

http://blog.expertpointsolutions.com/

Slides:

http://www.slideshare.net/bculver