Future Proofing your Workflow Investment How to Develop Maintainable Custom Workflows in Office365...
-
Upload
prashant-g-bhoyar -
Category
Technology
-
view
112 -
download
0
Transcript of Future Proofing your Workflow Investment How to Develop Maintainable Custom Workflows in Office365...
#Collab365 @pgbhoyar
Future Proofing Your Workflow Investment
- How to develop maintainable custom
workflows in Office 365SharePoint Online?
Prashant G Bhoyar (PGB)
Collab365
20 October 2016
#Collab365 @pgbhoyar
2
• Born and raised in India
• Came to United States of America in 2007 for studies
• University of Maryland College Park Alumni
• Technical Reviewer of the book “Pro : SharePoint 2013 Administration”
• Organizer of SharePoint Saturday Baltimore (SPSBMORE)
• Founder and Organizer of DC-Metro Office 365 User Group Monthly in person & online event
http://www.meetup.com/DC-Metro-Office-365-User-Group/
• Recipient of Antarctic Service Medal
• Senior Consultant at Portal Solutions
Who AM I ?
Prashant G Bhoyar (PGB)
#Collab365 @pgbhoyar
About Portal Solutions
We deliver Digital
Workplace Products
and Solutions that help
organizations share
what they know and
find what they need by
connecting people,
data, and content.
3
#Collab365 @pgbhoyar
OneWindow Capabilities –
Modern Intranet Out-of-the Box
Social and Mobile
experience
Collaborative workspaces
(public or private,
communities or projects)
People directory and
gateway to other
applications (my apps)
Stories and corporate
communication
publishing
#Collab365 @pgbhoyar
OneWindow Workplace
• Built on and for Office 365 and Microsoft Azure
• Available for Office 365 and SharePoint Hybrid environment
OneWindow
YammerSharePoint
OnlineSkype For Business Office Groups Office Graph/Delve
VideosOneDrive for
Business
OneWindow APIs
Planner
Analytics
#Collab365 @pgbhoyar
Next Steps
6
Interested in assessing if OneWindow Workplace
is right for you?
Let’s talk. Click here or go to http://www.onewindowapp.com to learn more.
#Collab365 @pgbhoyar
• Future
• Tips for writing maintainable
workflows
• Throttling Limits in Office 365
• Limitations of SharePoint
Workflows
• Q&A
Agenda
#Collab365 @pgbhoyar
Typical SharePoint Workflow Life Cycle
Initiation
• When the workflow instance is started on list/library item
Running• User Interaction via tasks
• Status page reflects the status of the workflows
Termination • End of the workflow instance
Association
• When the workflow is associated with List/Library
#Collab365 @pgbhoyar
• Browser
• SharePoint 2013 Designer
• Visio 2013
• Visual Studio 2012/2013/2015
• Third Party Tools
• Flow/Logic Apps
Office 365 /SharePoint
Online 2013 Workflow
Tools
#Collab365 @pgbhoyar
#Collab365 @pgbhoyar
Recent Announcements
• There will NOT be SharePoint Designer 2016 http://sharepoint-community.net/forum/topics/what-s-happening-to-sharepoint-designer-in-
sharepoint-2016-is-it
• Microsoft Flow https://powerapps.microsoft.com/en-us/blog/introducing-microsoft-flow-and-announcing-the-
public-preview-of-powerapps/
11
#Collab365 @pgbhoyar
What does this mean?
• SharePoint Workflows most probably will have same fate as InfoPath forms services
Microsoft will continue to support
No future enhancements
• Time to explore other options
Microsoft Flow Under Preview https://flow.microsoft.com
Visual Studio Workflows Can deploy them only as “App”
Other Third Party Products
12
#Collab365 @pgbhoyar
#Collab365 @pgbhoyar
14
• The development/testing experience is
slow
Because of platform’s architecture
In general Workflow development is slow
process
Analogy : Public Transportation System
• Difficult to gather all the requirements
before start of the development
Be ready for multiple revisions
Lessons Learned
#Collab365 @pgbhoyar
#Collab365 @pgbhoyar
Tips for developing maintainable custom workflows
• Naming Convention for Custom Workflows
Use the naming convention that works best for you and your
organization
For example, List or Library + ListName + Purpose
• Use activity “Add a comment” to write informative comments in
the workflow
End users will not see these comments unlike workflow history list
logs
#Collab365 @pgbhoyar
Tips for developing maintainable custom workflows
• Have flow chart of the workflow handy Use Microsoft Visio
Pen and Paper works too
• Implement the logic to stop/start at a particular stage Super helpful in case the workflow instance gets terminated
Super helpful during migration
Helpful to update the business logic
• Using If condition and a custom variable, we can pick and choose the additional logging Similar to #if debug directive in C#
The workflow will be long, but it can save a lot of troubleshooting/development time
End users will not see additional comments in Production
#Collab365 @pgbhoyar
Tips for developing maintainable custom workflows
• Save the Workflow status in a separate field
Avoid default workflow name
Helps to divide workflow into multiple workflows
• Create a separate Workflow status field as text
Gives the ability of filtering and sorting Approvers love this option
• Capture the dates of various approval steps
Helps to generate audit logs/reports
#Collab365 @pgbhoyar
Tips for developing maintainable custom workflows
• Review the workflow starting logic
Limit how many times the workflow gets started
Make sure they won’t start unnecessarily after the workflow is ended
successfully
• If possible Break down the workflows in multiple WFs
Helps a lot in development and maintenance
We can start SharePoint 2010 workflows from SharePoint 2013 only
We can not start SharePoint 2013 workflows from SharePoint 2013
workflows
You can use “Wait for field change in current item” to trigger the workflows
#Collab365 @pgbhoyar
Tips for developing maintainable custom workflows
• Use new Task List and History list for each workflow
To create the new tasks list and history list, we can use
Workflow Settings page
SharePoint Designer
SharePoint UI
OOTB “Workflow Tasks” List has additional notifications
To turn off -> List Settings – Advanced Settings -> Uncheck “Send e-mail
when ownership is assigned?”
#Collab365 @pgbhoyar
Tips for developing maintainable custom workflows
• Don’t create the variable if you don’t have to
50 is the limit
• Use SharePoint groups to assign the tasks/send emails instead of
individual users
• Keep workflow initiation activity to minimum
#Collab365 @pgbhoyar
Tips for developing maintainable custom workflows
• Do not modify the OOTB global workflows
Create copy and then modify
• Log information in the History List
Log variables, important info that will be helpful during
debugging/troubleshooting
End users can see the logs
#Collab365 @pgbhoyar
Tips for developing maintainable custom workflows
• Create custom task content types for tasks with only one logical
outcome
• Pay extra attention while modifying the Custom Task content
types
Task outcome field must be the last field
• Restrict the access
• For large lists, don’t remove the workflow, but set to no new
instance
Do it in non business hours
#Collab365 @pgbhoyar
#Collab365 @pgbhoyar
Throttling Limits in Office 365
• In Office 365 workflow manager has strict throttling limits for
SharePoint 2013 Style workflows
• The instance has exceeded the outbound http request quota for a
1.00:00:00 time period. The 5000 request limit was reached in <time>.
Analogy credit score
• Workflow instances can get suspended and we need to wait 24
hours to resume the suspended workflow instance by
clicking Resume for the workflow or
by using the SharePoint Workflow Client Object Model
• Suspended workflow instances will be terminated after 10 days.
Source : https://support.microsoft.com/en-us/kb/3076399
#Collab365 @pgbhoyar
Throttling Limits in Office 365
• The resource limitations are for per workflow in a site collection in the span of 24 hours
• There is no OOTB email alert if the workflow get suspended
• We can find the suspended workflows on the page /_layouts/15/WorkflowServiceHealth.aspx
• If we develop workflow as an “App” these throttling limitations does not apply
#Collab365 @pgbhoyar
Throttling Limits in Office 365
#Collab365 @pgbhoyar
Throttling Limits in Office 365 – Design Consideration
• Avoid infinite loops
We may use “Wait for field change in current item”
• Avoid using a workflow to execute complex algorithms
Workflows are intended to manage document-driven, human
processes and not to dispatch significant computational tasks.
• Avoid the use of the “Wait for Event in List Item" activity
Source : https://support.microsoft.com/en-us/kb/3076399
#Collab365 @pgbhoyar
#Collab365 @pgbhoyar
30
Limitations
We can not start workflows on delete event
50 variable limit
No source control for SPD workflows
String functions are limited
For advance implementations you will need to involve devs/architects
You can not start the workflows on Task lists whenever new tasks gets created by SP2013 style workflows
Workaround : Create SP2010 style workflow in Task List
#Collab365 @pgbhoyar
Questions? Feedback? Contact me:
Twitter: @PGBhoyar
Blog: http://pgbhoyar.com (limited contents)
Email: [email protected]
Feedback : Please provide feedback
Conference Link
Email or
Anonymous Suggestions: https://www.suggestionox.com/r/pgb
Thank You
Organizers, Sponsors and You for Making this Possible.