UiPath Community: Communication Mining from Zero to Hero
Developing Reusable Workflow Features (SPSVB)
1. Developing Reusable Workflow Features
SharePoint Saturday Virginia Beach
Mike Oryszak
http://www.mikeoryszak.com
January 7, 2012
2. About Me
• Practice Manager with Intellinet
• Microsoft SharePoint Server MVP
• Dev and Architect with MS stack since 1996
• Working with SharePoint since 2002
• Raleigh-Durham, NC Area since 1998
• Contact Info
– Blog - http://www.mikeoryszak.com
– Twitter - @Next_Connect
– Email – nextconnect@live.com
– LinkedIn - http://www.linkedin.com/in/michaeloryszak
3. Session Overview
• Approach and Goals
• Overview on Creating Custom Actions
• Example 1 – Budget Approval Limits
• Example 2 – Out of Office Delegation
• Additional Examples
• Wrap-up and Questions
6. Approach and Goals
Common Workflow Limitations
• Common Workflow Limitations
– Workflows developed one at a time
– Config and Admin content is localized – Silos
– Maintaining data difficult, and process admin focused
7. Approach and Goals
Workflow Reuse Goals
• Reuse Goals
– Centralize common configuration data
– Leverage central farm services
– Make it easier for users to maintain their data
– Reduce time to create new workflows
– Improve efficiency of managing workflows
8. Approach and Goals
Recommended Approaches
• Approaches
– Take a “Portfolio Approach” to process design
– Change data lookup sources from local to central
• Budget Approval Limit example
• Out of Office Delegation example
– Group common functions or calls into Actions or Services
• Out of Office Delegation example
• Check Request example
– Leverage central services like User Profiles, BCS
• Budget Approval example
• Out of Office Delegation example
– Link workflows together; start workflow from another
• Check Request example
10. Creating Custom Actions
Full Trust Actions
• Approaches
– Leverage central services like User Profiles, BCS
• Budget Approval example
• Out of Office Delegation example
– Link workflows together; start workflow from another
• Check Request example
11. Creating Custom Actions
Farm Solution Implementation
• Important Namespaces
– System.Workflow.ComponentModel
– Microsoft.SharePoint.Workflow
– Microsoft.SharePoint.WorkflowActions
• Key Dev Tasks
– Change Class Def to “public partial class <Name> :
Activity”
– Define Properties
– Override ActivityExecutionStatus Execute
– Override ActivityExecutionStatus HandleFault
– Create WorkflowActions definition in Elements.xml
– Register Type in web.config
12. Creating Custom Actions
Sandboxed Actions
• Developed in Visual Studio
• Limited to Site Collection boundaries
• Does not require server admin to deploy; O365
• Provides a way to create simple reusable features
13. Creating Custom Actions
Sandboxed Solution Imlementation
• Important Namespaces
– Microsoft.SharePoint.Workflow
– Microsoft.SharePoint.UserCode
• Key Dev Tasks
– Action must return a Hashtable
– Action must accept a SPUserCodeWorkflowContext as
the first argument
– Create WorkflowActions definition in Elements.xml
15. Budget Approval Limits
Overview
• A common example of data needed to support an
approval workflow
• Centralize the data so that it is available for
multiple processes
• Leverage services like User Profile and BCS
16. Budget Approval Limits
Bad Approach
Load Budget For Approver Issues:
• 3 Sites, separate config lists
• Separate Maintenance
• Out of Sync
20. Out of Office Delegation
Overview
• SharePoint has no built-in Out of Office
Delegation
• Great example of User Maintained config data
• Great example of leveraging User Profiles
21. Out of Office Delegation
Bad Approach
• Building it into each process, with localized data
stored in a list on the workflow site
– Process Admin Maintains it
– Data stored in multiple places
– Workflow steps maintained in multiple places
22. Out of Office Delegation
Alternative Approach
• Out of Office Delegation Feature
– User Profile Custom Attributes
• Out of Office Start Date
• Out of Office End Date
• Out of Office Delegation
– Custom Workflow Action
• Simplifies check from SPD workflows
25. Additional Examples
• Standard Feature Requests
– Escalations
– Task Reminders
– Out of Office Delegation
– Role Based Assignments (CFO, Ops Mgr, etc)
• Frequent Re-usable Processes
– Check Request
– Compliance Activity Logging
26. Additional Examples
Initiating Another Workflow
• Create Reusable Sub-Processes
• Use Standard Events
– New Item
– Edit Item
• Can use Full Trust Actions to add/edit items
between site collections
27. Check Request Workflow
Overview
• Check Request is an example of a process that
may be initiated from multiple processes
• Could be built into each process, or separated
into a separate “sub-process” for reuse
28. Check Request Workflow
Bad Approach
Issues:
• Same process steps
• AP users have tasks in x
sites
• Multiple places to update if
process changes
• Process owners may not
understand other uses
29. Check Request Workflow
Sub-Process Approach
Advantages:
• Std process on AP site
• Easy access for AP users
• Easy to maintain and
monitor
31. Wrap-up
Recommended Approach
• Recommended Approaches
– Take a “Portfolio Approach” to process design
– Change data lookup sources from local to central
– Group common functions or calls into Actions or Services
– Leverage central services like User Profiles, BCS
– Link workflows together; start workflow from another