SharePoint has had a Workflow engine either built in natively or installed over the top for some time now. In a previous post I walked through the steps to get it installed in SharePoint 2016 too.
Getting the workflow engine into SharePoint is part one, however what you use it for as an organization is really where the power comes in. Within SharePoint 2010, 2013 and 2016, workflows can be created either using SharePoint Designer, Visio and Visual Studio. SharePoint Designer is the most common way of creating them and personally is the easiest way. Opening SharePoint Designer will display to you the version of Workflows that you can create based on the configuration of the SharePoint Farm.
Opening a site in SharePoint Designer 20103, pointed to a SharePoint 2013 Farm displays core workflows built in SharePoint 2010 mode.
Selecting the either the “List Workflow, Reusable Workflow or Site Workflow” ribbon controls will launch the core wizard to create either one of these workflows. Selecting the dropdown for the “Platform Type” will display the version of workflows that you can create.
Selecting which version to choose really comes down to what you are trying to achieve and what functionality is needed. Architecturally they are both different, and it is important to know what the changes are.
SharePoint 2010 Workflow Architecture
SharePoint 2013 Workflow Architecture
With the change that came with SharePoint 2013, and continues within SharePoint 2016, workflows can now scale beyond the limitations of SharePoint only. Using the 2013 version of the workflow services brings extra features that did not exist in previous versions.
- A visual workflow development using Visio 2013 add-in
- A new action that enables no-code web service calls from within a workflow
- New actions for creating a task and starting a task process
- New coordination actions that let you start a workflow built on the SharePoint 2010 Workflow platform from a workflow built on the SharePoint 2013 Workflow platform
- A new Dictionary type
- New workflow building blocks such as Stage, Loop, and App Step
Creating a workflow in SharePoint Designer, uses a canvas type designer to add stages, conditions and actions easily.
Each stage within a workflow can contain various conditions such as “If” comparison, along with any actions that are needed. A workflow can contain multiple stages as well as call into other workflows as needed.
What makes workflows really useful though is the ability to create parallel blocks, allowing for multiple actions to run simultaneously at any point.
Each stage in a workflow can contain various actions, that relate to each other as well as loops allowing for timed processes to run, wait and then complete at various time intervals. SharePoint Designer also allows the workflow to be modified or even created using Visio. With Visio Professional installed, a simple workflow can be exported or the view changed so that Visio can be used for editing.
The Visio Plugin design surface exposes all of the same actions, conditions and terminators as if you were still using the text mode in SharePoint Designer, however building the workflows is easier using a graphical view.
For Workflows to work as expected often various parameters are required that contain data that needs to persist through the workflow lifecycle or just at initiation. SharePoint Designer allows these to be created and set at any point and stage of the workflow, using “Initiation Form Parameters” and “Local Variables”. Once a workflow is built and saved it then become available within the core SharePoint Web User Interface.
Deciding on the type of workflow to create determines whether it is associated to a list or library, or if it is reusable on multiple objects within SharePoint. The workflows themselves can either run automatically or manually based on the use case and configuration.
All in all, Workflow Services within SharePoint allow for business process design, using multiple applications. Being able to view the history of a workflow at any point and store values directly into a Workflow History List means that debugging and auditing workflows is easy and simple.