SharePoint WorkflowBest Practices
About me
• Vadim Tabakman
• Lead Technical Evangelist, Nintex
• Over 20 years consulting, development and corporate IT experience
• End user advocate
Introduction• There are more best practices and errors to avoid
• Based on real-world projects
• Advice applies to any workflow product
• No demos
SharePoint Workflow and Multiple History Lists
Why Not One Workflow History List?• History Lists are just SharePoint lists
• Performance degradation with 2000-4000 items
• Multiple Workflows and One History List
• Grows very quickly
• Multiple Workflows and Multiple History Lists
• Shares the load.
• Faster to access workflow history
Don’t Always Use SharePoint Workflow
Good Uses of SharePoint Workflow• Managing how people work
• Document approval & feedback
• Collaborative reviews & discussions
• Gathering signatures
Good Uses of SharePoint Workflow• Automating some of SharePoint’s behavior
• Approve site creation requests
• Parse incoming email in a list and act on it
• Publishing items to target
• Moving documents through lifecycles
Possible Uses of SharePoint Workflow• Manipulating other applications, data sources
• Employee onboarding
• Resource scheduling
• SharePoint lists become work queues
Bad Uses of SharePoint Workflow• Transaction-oriented processes
• Blocking or modifying activity
• Application-to-application service activity
• Aggressive data transformations
• Work that doesn’t involve SharePoint at all
Plan to Fail
Consensus May Not Exist• Get 3 employees and 1 manager together
• Talk about a process
• Little agreement
• Documentation disagreement, too
The Process Will Change
Exceptions are Initially Ignored• Rarely is this considered in advance
• Rarely does everyone agree
• Ignored exceptions lead to bypass
Initial Failure as a Winning Strategy• People do not want to hear these hard truths.
• You may have to create an initial workflow just to show how awful a
process is.
• Only then can you change it.
Process
Step
Step
Step
Start Simple
Automatethisfirst
Automatetheselater
Focus on Everyday Process
Everyday Processes
• Steal time
• Get in the way
• Annoy users
Everyday Processes
• Have few stakeholders (even if many participants)
• Are easier to automate
• Free up time to focus on more critical stuff
Everyday Processes
• Automating them trains users how to think
When to use a :List WorkflowSite Workflow
Reusable Workflow Template
Reusability
• You should think about reusability first
• Save yourself time
• Save your colleagues time
• Save your business time and money
• Is a List workflow the best solution for you?
• It’s probably the quickest and easiest, but is it the best solution?
What if I can’t do what I need to with the given
actions?
Extensibility???
• Web Service calls – Call HTTP web service action
• 21 web services, just from SharePoint itself
• 3rd party LOB systems which have web services
• 3rd party SharePoint solutions that exposes web services
• Build Custom Web Service
• Build Custom Actions
Put Forms in Their Proper Place
The Form is the User Interface
• Not the workflow
• Not the data
If (x and y) then do this do thatEnd if
If (user is Bob) then do this and that and the other thing undo thatEnd if
If (x and y) then do this do thatEnd if
If (x and y) then do this do thatEnd if
If (user is Bob) then do this and that and the other thing undo thatEnd if
If (x and y) then do this do thatEnd if
Form-Only App Problems• Hidden logic
• Disconnected logic
• Security
• Complexity without code
• Inheritance / Knowledge Transfer
Presentation Process IntegrationBegin Step 1
Step 2Step 3
End
Think About the Whole App
Make the Workflow Do the Work• Documented
• Auditable
• Easier to change
• Easier to manage
One Form Per Step• Submit
• Start
• Task
Task Forms
• Workflow can route new data
• New data can be written to original form
• All info can be sent to other places
Self-Reporting Workflows
Least-Loved Techniques
• Browsing individual history entries
• Building custom reports
You’re Already Using SharePoint
• The list itself can be the report
• Users can sort, group, filter on metadata (Leverage Views!)
• Write progress information to item properties
• Stage Workflows already do this
Summary• Don’t always use SharePoint Workflow
• Plan to fail
• Focus on everyday processes
• It’s not about forms
• Self-reporting workflows
Questions?