WF 100 - SharePoint Designer Workflow: Tips, tricks and best practices
Paul Galvin
Agenda
• About Paul and BrightStarr (brief)• The Arc of a SharePoint Workflow Project
• Data entry• Processing• Dashboards
• Patterns• What are they?• What are they important?
• Discuss business solutions in terms of the Arc and patterns
• Extending SPD to enlarge its scope• Wrap-up
Quick note on this presentation
My laptop doesn’t like Denver
Re-created this presentation without any of my demo’s.
About Paul Galvin
• Microsoft MVP since July 2008• Working on a book on this very topic
• “Paul Galvin Workflow” on Amazon.com
• Working with SharePoint since January 2007(MOSS just came out)
• Twitter: @pagalvin• Email: [email protected]• Blog: www.mstechblogs.com/paul
About BrightStarr
• Founded in UK in 2005 • Microsoft Gold Partner• Global reach with offices in USA
(Paramus, NJ, Houston, TX) and the UK
Microsoft Competencies
Digital MarketingPortals and CollaborationWeb DevelopmentCustomer Relationship Management
As a 100% dedicated SharePoint Company we offer a full range of SharePoint services including:
• Infrastructure Architecture and Design• Information Architecture and Business Analysis• User Experience and Interaction Design• SharePoint and .NET Development• SharePoint Training• Dedicated SharePoint Support
Our web site and links
• Success Stories• www.brightstarr.com/US/Pages/Success-Stories.aspx
• SharePoint Design• View our cool wall of designs
www.brightstarr.com/US/Pages/SharePoint-Design.aspx
The Arc of a SharePoint Workflow Solution
• Requirements gathering• Defining content types
• Naming convention• Use lookup columns
• Implement the solution• Provide a dashboard
• Avoid:• List columns• Jumping in without considering the dashboard• Myopic requirements gathering
• (You can always choose to ignore a requirement)
Workflow Solutions Extend Beyond SPD
• SPD is the engine• SharePoint as a whole provides the solution platform• Don’t fall into the trap thinking that SPD workflow is all
that really matters
• HR On-boarding:• SPD workflow assigns tasks• Otherwise, all the rest is about dashboarding and human intervention
when necessary
Patterns
• At home, I always put the keys in the same place
• Patterns are very important• They save time• They ensure that work is done more quickly with high
quality• Provide a consistent end user experience
Patterns
Two types of patterns:
• Business patterns• Technical patterns
End users see and live with the business patterns
Solution designers use technical patterns to accomplish the task at hand
Common Patterns
There mare many, many patterns.
Here are a few:
• Delegation• Auditing• Security-related• Time Bank• Notifications
Let’s dig into a couple of them.
Delegation
Both a business and technical pattern
From business side:• Tasks are assigned to people• People go on vacation or become unavailable for other
unplanned reasons
From technical side:• How do you set up delegation?• How do you use it?• Video and blog to be posted next week
Auditing
Don’t rely upon SharePoint workflow history• It’s purged automatically• It’s not easy to report against
Instead:• Use a custom list• Rely upon “created” timestamp to see sequencing• Audit often and frequently• Always provide this minimum info: who, what, key value
and a link to the base item• Video / blog entry to follow before end of May
Patterns and Business Solutions
Walk through some solutions:• Helpdesk Ticketing• HR Time Off Management
Helpdesk Ticketing - Requirements
• Capture the request• Try to automatically assign to someone based on
“problem type”• Auto-assign pattern• Very similar to delegation
• Integrate delegation• Security
• “Only IT can see my stuff”
• Self-service• Email notifications at key points during my ticket’s lifespan
• Metrics reporting
Helpdesk Ticketing - Implementation
• Custom list to capture the need• Back the list with a content type
• Follow a naming convention (“HD_”) for all site columns and the content type itself
• Use SPD or InfoPath to improve the UI
• Use content approval on the list to implement security• Implement the metrics feeder pattern
• Track events in a custom list• (submitted, who submitted it, how long it was open)
• Dashboard for self-service• Email notification includes a link to search with
appropriate keywords
Helpdesk Dashboard
SharePoint dashboards are easy• Views on lists• Create web part pages• Add the helpdesk request list to the dashboard
• Add it multiple times• Add with different views
HR Time Off Management - Requirements
• Security is paramount
• End users become lawyers when their vacation is being calculated
• Time bank pattern• Everyone has types of available time off
Time Off - Implementation
• As always, custom lists backed with content types• Always follow a naming convention
• Security pattern: Use one list per approving manager• Content approval won’t be sufficient in this case• The approving manager’s direct reports request time via this list
• Auditing is especially important• Re-use the same auditing pattern• Log all requests• Log all dispositions
• Workflow updates master timebank.
Time Off - Dashboard
Two audiences• HR managers• Individual employees
This is a good case for item level security* on the time bank
• End users can go directly to the time bank• Item level security ensures that they cannot see anyone
else’s time• HR can view everyone’s time
• (*) Item level security ios usually a bad idea
Patterns and SharePoint Designer
Business patterns transcend SharePoint Designer• There’s a lot of stuff you want to do with SPD that
simply can’t be done, or shouldn’t be done• In these cases make a decision:
• Abandon SPD• Extend SPD
Extending SPD
SharePoint Designer is extensible• Custom activities• Custom conditions
Implemented using C# code.
Can follow same feature/solution framework as web parts (and other technical artifacts)
Why Bother Extending SPD?
Invoicing Story from the old days• Human beings spending a lot of time doing
inappropriate things
• Extend SPD so that highly trained/skilled IT resources can spend their time doing the kinds of things that require highly trained and skilled resources
• This is not a knock against end users / power users.
What does it take to extend SPD?
• Some strong SharePoint coding skills• A good example upon which to base your first effort (i.e.
a pattern)• Strong developer can get first custom activity working in
a few days (fully tested and deployed)
• You should think about extending SPD in the same way that you think about creating a content type – it’s a little harder but really, it’s no big deal
Good Candidates for SPD Custom Activities
• Calculate “next business day”• Take company calendar and weekends into account when assigning
due dates.
• Iterations• Iterate over all the items in the list
• Item level security• When content approval isn’t good enough
• Site Governance
Miscellaneous tips and tricks
XOML files (“zommel”)• Role within the SharePoint workflow framework – data
to the engine• Text file that can be edited manually• Best use – richly formatted emails
• Create an email in outlook• “View source”• Put the source into the right place in the XOML file
Miscellaneous tips and tricks
• Security• Use the update workflow variable activity • Look up from a secured list• Empty result means that current user does not have access
Secure the list by means of SharePoint users, SharePoint groups and active directory groups
Example: Conditional approval• $500 approvers• $10,000 approvers• $50,000 approvers
Summary
• Keep the Arc in mind whenever you sit down to start a new business solution• Requirements (cast a wide net)• Implementation, using patterns• Dashboards for self-service and exceptions management
• Discover and use patterns in your daily routine with SharePoint Designer workflow
• Extend SPD so that the right people with the right skill sets are doing the most appropriate things at all times
Questions?
Paul’s contact information:• [email protected]• Twitter: @pagalvin• www.mstechblogs.com/paul
• BrightStarr goodies and business cards