www.expertpointsolutions.com Building Scalable SharePoint 2013 Workflows Brian Culver ● SharePoint Saturday Kansas City ● Jan 2015 Get more value from your Office 365 subscription
Jul 18, 2015
www.expertpointsolutions.com
Building Scalable SharePoint 2013 Workflows
Brian Culver● SharePoint Saturday Kansas City ● Jan 2015
Get more value from your Office 365 subscription
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
About Brian Culver
Dad to 2 more girls (4 months old)
Thank you SPSKC15 sponsors!
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
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.
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
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.
What is better in 2013?
New Workflow Actions, Components and Conditions
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.
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.
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.
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.
What is better in 2013?
Step shapes
Steps represent a group of sequential actions to be performed as a single unit.
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
What is better in 2013?
Designer Improvements (with Visio 2013 only)
Text-Based Designer
Visual Designer
Visual Designer vs Text-Based Designer
Demo
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.
What is better in 2013?
SharePoint 2013 Workflows Architecture
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.
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.
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
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
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
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
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.
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.
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.
Building a Workflow in 2013
Lets build a simple vacation request workflow
Building a workflow in SharePoint 2013
Demo
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}
}}
Using REST API
Creating a Sub Site via Workflow using REST API
Using REST API
Creating a Sub Site via Workflow using REST API
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
Questions
??
?
?
Constructive Feedback Is Appreciated
Great information,
but would like to
have learned more
about [Insert Topic]Brian – Your
presentation
was …
Good
Demos!
Thanks!
Thank you!
Brian Culver, MCM
Twitter:
@spbrianculver
E-mail:
Blog:
http://blog.expertpointsolutions.com/
Slides:
http://www.slideshare.net/bculver