Text of WF 100 - SharePoint Designer Workflow: Tips, tricks and best practices Paul Galvin
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 doesnt like Denver Re-created this presentation without any of my demos.
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@example.com@gmail.com Blog: www.mstechblogs.com/paulwww.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 Marketing Portals and Collaboration Web Development Customer 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 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 Dont 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 Lets 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 Dont rely upon SharePoint workflow history Its purged automatically Its 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 tickets 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 wont be sufficient in this case The approving managers 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 elses time HR can view everyones time (*) Item level security ios usually a bad idea
Patterns and SharePoint Designer Business patterns transcend SharePoint Designer Theres a lot of stuff you want to do with SPD that simply cant be done, or shouldnt 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 its a little harder but really, its 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 isnt 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? Pauls contact information: Galvin.firstname.lastname@example.org Twitter: @pagalvin www.mstechblogs.com/paul BrightStarr goodies and business cards