I thought of writing a series of articles around SharePoint 2010 workflows. This is one of my favourite area in SharePoint 2010 and I’m also involved in lot of SharePoint 2010 workflow development these days. Microsoft Visio 2010 Premium edition has the ability to design SharePoint 2010 workflows using the visual designer and export it to SharePoint Designer 2010 (and then to Visual Studio 2010) for further implementation. This brings powerful workflow modelleing capability to the business users and also brings consistency during workflow modeling and workflow implementation.
The business users/power users can start modeling the business process in Visio 2010 and then transition this to the development team for further implementation. The workflow modeling in Visio 2010 needs a bit of understanding of SharePoint 2010 platform. At this point of time, the SharePoint 2010 workflow modeling capability is not supported in Professional edition of Visio 2010.
Let’s open the Visio 2010
File —-> New —> Microsoft SharePoint Workflow —> Click ‘Create’
We’ll get to see three tabs SharePoint Workflow Actions, SharePoint Workflow Conditions and SharePoint Workflow Terminators.
SharePoint workflow terminators has the activities for start and terminate of workflow.
SharePoint workflow conditions has the set of activities to perform various conditonal checks like comparing against arbitrary parameters, comparing with the current list items and check for other SharePoint related objects.
SharePoint workflow actions has the whole lot of actions that can be performed related to a SharePoint workflow.
If we do quick tour of activities present in Visio 2010, we feel most of these are available in SharePoint Designer 2010. Yes, SharePoint Designer 2010 and Visual Studio 2010 has lot many activities. I’ll brief the in later sections of that article. Let’s move on the the business process, that we want to model in Visio 2010. It’s a simple one. Let’s assume that we’re modeling an Invoice process for a contracting form. The contracting firm (vendor) submits invoice to the company ‘A”. If the invoice is less than 50K, the invoice would be approved. A manual approval process is needed if the invoice exceeds 50k.
Let’s try to model this..
1. Drag the ‘Start’ activity from the workflow terminators
2. Drag ‘Log to History’ from Workflow Actions and connect with the ‘Start’ activity. Double click the activity and name it as ‘Log for starting’
3. Drag ‘Compare Data Source’ activity from workflow conditions and connect it with ‘’Log to History’ activity. Double click and rename the activity as ‘If invoice > 50k’
4. Drag ‘Set Workflow status activity’ . Connect it with the compare data source activity (‘invoice > 50k’). Double click and rename the activity as ‘Auto Approval’. Right click on the connector line and set it as ‘Yes’.
5. Drag ‘Start approval process activity’ to the other side of the compare data source activity (‘invoice > 50k’) and connect it. Double click and name it as ‘Manager approval process’. Right click on the connector and set it as ‘No’
6. Drag a ‘Log to History’ next to ‘Auto Approval’ and double click and name it as ‘Log for Auto approval’. Connect it with Terminate activity.
Navigate to the Process Tab in the Ribbon and click ‘Export’
Save the workflow definition as ‘invoice processing.vwi’.
Now the workflow is ready for implementation in Microsoft SharePoint Designer 2010.
We’ve included the manual ‘Approval Process’ if the invoice > 50 K . This involves task process. The task behavior cannot be customized in Visio 2010 to include more custom task behavior actions like Wait for Change in Task Process, Wait for Deletion in Task Item Process and Escalate Task etc. This can be customized
I’ll discuss about implementing this workflow in SharePoint Designer 2010 in the next article.
Pingback: Design SharePoint 2010 workflows in Visio 2010 - My experiments with SharePoint, Azure and .NET using Visual Studio