automate business processes using sharepoint designer workflows

45
Automating business processes using SharePoint Designer Jeff MacKenzie Director of Technology Edgewater Technology www.edgewater.com [email protected]

Upload: edgewater

Post on 29-Jun-2015

904 views

Category:

Business


5 download

DESCRIPTION

Edgewater (www.edgewater-consulting.com) presented "Automating business processes using SharePoint Designer Workflows" at multiple SharePoint Saturdays. This presentation covers the types of workflows available, best practices, and common issues.

TRANSCRIPT

Page 1: Automate business processes using SharePoint Designer Workflows

Automating business processes using SharePoint Designer

Jeff MacKenzieDirector of TechnologyEdgewater Technologywww.edgewater.com

[email protected]

Page 2: Automate business processes using SharePoint Designer Workflows

2

► What is a workflow?► Types of SharePoint Workflows► Workflow Demo► Workflow Best Practices & Common Issues► What’s new in SharePoint 2013

Contents

Page 3: Automate business processes using SharePoint Designer Workflows

What is a Workflow?

Page 4: Automate business processes using SharePoint Designer Workflows

4

What is a Workflow

► “The steps required to complete a process”► A workflow can have the following attributes.

– May include Steps that must be completed by multiple people in an organization or even outside an organization

– Interaction with multiple systems and applications (integration)– Notification or alerts to let people know when they need to perform a task

related to a workflow (email, SMS)– Branching logic that chooses the next step based on the result of the

current task– Can be long running (hours or even days)– May need to request data from users

Page 5: Automate business processes using SharePoint Designer Workflows

5

Examples

► Internal– HR - Vacation Request, New Hire, reviews– IT – help desk ticket, equipment procurement

► Internal & External– Loan Application– College application

Page 6: Automate business processes using SharePoint Designer Workflows

6

Evolution of workflows► Manual

– Process• Paper forms, folders, mail, fax

– Issues• Slow, no visibility, error-prone, bad for trees

► Email– Process

• PDF/Word forms, shared folders, email– Issues

• Better – but still no visibility into status• No central location to see status and results• Relies on user to follow rules• Which is the correct/latest form?

► SharePoint – Process

• Lists/InfoPath forms, SPD workflow, email for notification– Issues

• Provides central location to view status and results• Provides personalized work queue for users• Rules documented and enforced• Email still used for notification

Page 7: Automate business processes using SharePoint Designer Workflows

Types of SharePoint Workflows

Page 8: Automate business processes using SharePoint Designer Workflows

8

► SharePoint Designer– Supports only sequential workflows– Types

• List Workflow• Reusable Workflow• Site Workflow

► Visual Studio– Custom code-based workflows (only SP 2010)– Deploy as a WSP file to a farm– Supports sequential and state machine workflows ( SP 2010)

Type of SharePoint Workflows

Page 9: Automate business processes using SharePoint Designer Workflows

9

► Simplest workflow to create► Workflow is tied directly to a list or document library► Cannot be re-used for other lists► Cannot be published globally.► Cannot be saved as a template (WSP).► Cannot be associated with a content type.► Cannot be exported easily

Designer – List workflow

Page 10: Automate business processes using SharePoint Designer Workflows

10

► Not required to be linked to a specific list or content type – Similar to built in workflows

► Can be published Globally which allows the workflow to be used in all sub-sites in site collection– Must be created at top level site and user must be an site admin at top level

► Can be saved as a Template which will create a WSP file in the SiteAssets library

► WSP File Can be imported into Visual Studio - for more advanced options - one-way trip – cannot go back to designer

► Can be associated with a Content type or a list

Designer - Reusable workflow

Page 11: Automate business processes using SharePoint Designer Workflows

11

► A workflow that runs at the site level – not linked to a list or content type

► Does not have a current item ► Execute from “All Site Content” page on the site

Designer – Site workflow

Page 12: Automate business processes using SharePoint Designer Workflows

12

► Steps – group actions logically► Condition – if then statements► Actions – do things► Impersonation Step – run step

as user that created the workflow

► Parallel Block - Execute actions at the same time

► Local variables – hold data that is global to the workflow

SharePoint Workflow Components

Page 13: Automate business processes using SharePoint Designer Workflows

13

► Some actions are only available in certain workflow types or steps and not supported in foundation. The following link describes all the actions, what they do, and when they are available.

► For example,– “Add List Item Permissions” is only available in an impersonations step– Actions such as Start Approval Process, Declare Record, and Lookup

Manager of a User are available only when your SharePoint site is running SharePoint Server 2010 (not available in foundation).

► http://office.microsoft.com/en-us/sharepoint-designer-help/workflow-actions-in-sharepoint-designer-2010-a-quick-reference-guide-HA010376961.aspx

Actions By Type

Page 14: Automate business processes using SharePoint Designer Workflows

Demo – Vacation Request

Page 15: Automate business processes using SharePoint Designer Workflows

15

► Employee’s manager must approve vacation requests from employees and HR should be notified when a vacation request is approved

► Flow– Employee enters request– Approval task assigned to manager (can use AD manager lookup)– If manager approves

• Notification sent to HR• Notification sent to Employee• Vacation added to department calendar

– If rejected • Notification sent to Employee who can update and re-submit

Business Issue

04/13/2023

Page 17: Automate business processes using SharePoint Designer Workflows

Workflow Best Practices & Common Issues

Page 18: Automate business processes using SharePoint Designer Workflows

18

► Build a workflow is essentially the same as writing code in a controlled environment► Development Lifecycle

– Gather requirements• High level business requirements – the business issues you are trying to address• Low level – functions required

– Architecture & Design• Architecture - how the solution will be constructed at a high level• Design - low level description of how components will be built

– Prototype• If requirements are fuzzy a prototype can help to iterate on a solution

– Develop• Build the solution and unit test to ensure the component works in the development environment

– QA Testing – • A QA or business analysts tests solution fully. Make sure to try all use cases and exercise all workflow

paths to ensure workflow functions correctly.– Deploy to production– User acceptance testing – have business users test solution and validate functionality– Go Live – put into daily use– Maintenance Mode – perform entire lifecycle again for enhancements and bug fixes

Software Development Lifecycle

Page 19: Automate business processes using SharePoint Designer Workflows

19

► Start out simple – scope creep can derail the process► Automate as much of the process as possible with an

understanding that there may be manual steps which are replaced over time

► For example– Problem

• The business requirements identity the need to access an HR system to lookup the manager of a user.

• This requires a large design and development effort to integrate with the HR system

– Solution• Ask the user to enter their manager as part of the process• Expand the solution later to include HR system integration

Requirements and Design tips

Page 20: Automate business processes using SharePoint Designer Workflows

20

► Testing workflows is difficult– Multiple users involved at different levels of the business– Difficulty moving from test environment to production– Reliant on external global data such as AD settings

► Tips– Configure test users – make sure to assign an email address– Ensure you test all workflow paths– Use “log to history” action to track flow and allow debugging in a

production environment– Use workflow variables to hold user names when possible to allow quickly

changing from test users to real users– Use workflow variables to share email “snippets” across emails to ease

maintenance of workflow

Testing

Page 21: Automate business processes using SharePoint Designer Workflows

21

► What user does my workflow run as?– Regular steps – runs as user who initiated the workflow– Impersonation step (SP 2010 only) – runs as user who published the workflow– App Step (2013) – has read/write access to all lists in site (Site Feature-> Enable

Workflow Task Content Type)► Issues

– Workflow can break if impersonation steps are used and account that published the workflow is deactivated – use a system account to prevent this

– Very carefully plan for permissions in your workflow. Make sure you know where exactly you are getting data from and what data you are going to modify and ensure that every potential workflow user has permissions to all these objects.

► - Plan for workflow security and user management - http://technet.microsoft.com/en-us/library/ee428324.aspx

► - Declarative Workflows and User Context - http://blogs.msdn.com/b/sharepointdesigner/archive/2008/09/28/declarative-workflows-and-user-context.aspx

Security

Page 22: Automate business processes using SharePoint Designer Workflows

22

► When a workflow starts – automatically or through a manual execution it runs synchronously up to the point where there is a delay - at that point it is suspended

► A suspended workflow is executed in the timer process on a schedule (default is every 5 minutes)

► Issues– To reduce the impact on the user of starting a workflow a delay action can

be added early in the process to move the workflow to the timer process– A delay in the timer process can not be below the timer process scheduled

delay ( default is 5 minutes) – so a delay of 1 minute can take >=5 minutes

Synchronous or Asynchronous (2010)?

Page 23: Automate business processes using SharePoint Designer Workflows

23

► When mixing “AND” and “OR” logic in a workflow the outcome may not be what is expected

► Designer workflow do not have parenthesis– a or b and c

► By default the statement a or b and c is evaluated as (a or b) and c

► If you want a or (b and c)– Rewrite as B and c or a– Or calculate b and c put into variable x– Then use a or x

► “Read” left to right or top to bottom in designer

Logic Issues

Page 24: Automate business processes using SharePoint Designer Workflows

24

► Each time a workflow is published a new version is created

► Old versions are renamed with date

► Old versions can be deleted

Versioning

Page 25: Automate business processes using SharePoint Designer Workflows

25

► To allow debugging a workflow in production the “Log to history list” action should be used at key places in the workflow.

► Messages passed to this action will be visible in the workflow details screen.

Debugging

Page 26: Automate business processes using SharePoint Designer Workflows

26

Debugging (Log Example)

Page 27: Automate business processes using SharePoint Designer Workflows

27

► Workflow history is a “hidden” list that is created on the sites that have workflow

► The list holds the workflow history and is used to populate the “workflow information” screen

► To access the list add “Lists/Workflow%20History/AllItems.aspx” to the site URL. – For example, if the site is http://test.dev.edgewater.com/test then the history URL

is http://test.dev.edgewater.com/test/Lists/Workflow%20History/AllItems.aspx► By default, a timer job removes data from this list after 60 days.► If you want to keep the History List for an extended time, you can

update the settings in Central Administration>Operations>Global Configuration>Timer Job Definitions.( http://technet.microsoft.com/en-us/library/ee662522(v=office.14).aspx)

► Not intended to be used as permanent audit log

Workflow History

Page 28: Automate business processes using SharePoint Designer Workflows

What’s new in SharePoint 2013

Page 29: Automate business processes using SharePoint Designer Workflows

29

► Adds a new workflow engine (based on Workflow Manager)– 2010 engine is still available– Requires additional setup steps to install– Must choose version when creating a new workflow

New Features

Page 30: Automate business processes using SharePoint Designer Workflows

30

New Features

► 2013 Workflow Features– More powerful workflow

constructs including• Looping• “Goto” a stage• Start a workflow –

including 2010 workflows

• Call web service• Dictionary type to hold

collection of name/value pairs

Page 31: Automate business processes using SharePoint Designer Workflows

31

Limitations

► No more Visual Studio Workflows with code – only declarative– Call web services for custom

code/integration► No more InfoPath forms – just

Asp.Net forms► Reusable workflow cannot be

tied to a Content Type► Relies more on calling

SharePoint REST API to integrate with SharePoint

► Discontinued features (highlighted)– Actions:

• Add List Item• Inherit List Item Parent Permissions• Remove List Item Permissions• Replace List Item Permissions• Collect Data from a User• Start Approval Process (start a task process)• Start Custom Task Process• Start Feedback Process

– Conditions:• If current item field equals value• Check list item permission levels• Check list item permissions

– Steps:• Impersonation Step

– Data sources:• User Profile lookup

– Other features:• Visio integration• Association Column• 'Require Manage List/Web Permission' feature for

list/site workflow

Page 32: Automate business processes using SharePoint Designer Workflows

32

Discontinued Features – full list

► Discontinued Features– Actions:

• Stop Workflow• Capture a Version of the Document Set• Send Document Set to Repository• Set Content Approval Status for the Document Set• Start Document Set Approval Process• Declare Record• Set Content Approval Status• Undeclare Record• Add List Item• Inherit List Item Parent Permissions• Remove List Item Permissions• Replace List Item Permissions• Lookup Manager of a User• Assign a Form to a Group• Assign a To-Do Item• Collect Data from a User• Start Approval Process• Start Custom Task Process• Start Feedback Process• Copy List Item (SharePoint Designer 2013 supports

only the document-copying action.)

– Conditions:• If current item field equals value• Check list item permission levels• Check list item permissions

– Steps:• Impersonation Step

– Data sources:• User Profile lookup

– Other features:• Visio integration• Association Column• Content Type Association for reusable

workflow• 'Require Manage List/Web Permission'

feature for list/site workflow• Globally reusable workflow type• Workflow visualization option

Page 33: Automate business processes using SharePoint Designer Workflows

33

► Copy and Past support for actions and steps for both 2010 and 2013 workflows– Both within a workflow and

between workflows, and across sites► Support for new 2013 workflows

New Features of SharePoint Designer 2013

Page 34: Automate business processes using SharePoint Designer Workflows

34

► Avoid starting a large number (>10,000) workflows at the same time – can overload the timer service

► Timer server processes a number of steps in the workflow on each execution (configurable)

► Can overload the timer service and cause workflows to fail or be delayed for many processing cycles

► Avoid the issue– Identify if this might be an issue when designing the workflow. For example, If an

automated process adds 1,000 files to a library at the same time that trigger a workflow• Possible fix – break into smaller batches and spread out over time

– Do not automatically start workflows – build a component which does this on a timer

► If workflow performance becomes an issue then more WFE servers can be added to the farm to handle the additional load.

04/13/2023

Start Large Numbers of Workflows Simultaneously

Page 35: Automate business processes using SharePoint Designer Workflows

35

► Try to limit breaking inheritance at item level on large lists (> 100 items in root)► Impacts search crawling ► Best Practices

– Group users into groups and assign permissions to these groups. Try to use AD groups as opposed to SharePoint groups

– Try to group the item with the same permissions and put them into containers - folders, lists, sites and assign permissions on the containers. This way permission inheritance will be broken only on the container level.

– Limit number of items on one hierarchical level to 2000– Reduce the number of uniquely permissioned parent objects– Try to manage permissions on the web site level or at least at the highest possible level.– Avoid at all cost copying permissions from the parent – creates many “Limited access” permissions

► Resources:► - Best practices for using fine-grained permissions -

http://www.microsoft.com/download/en/details.aspx?id=9030► - Security planning for sites and content -

http://technet.microsoft.com/en-us/library/cc262939.aspx

04/13/2023

Fine-grained permissions

Page 36: Automate business processes using SharePoint Designer Workflows

Moving from Sandbox to Live

Page 37: Automate business processes using SharePoint Designer Workflows

37

► OOTB method to move to new site collection/farm– Content DB backup/restore– Site collection backup/restore

► Purchase third-part tool– DocAve, Metalogix, Quest, HarePoint Workflow Migration for SharePoint,

etc.

04/13/2023

Designer - List Workflows

Page 38: Automate business processes using SharePoint Designer Workflows

38

► Manual copy (can be tricky)– Create a new workflow on the Production site with the same name. Be sure

to add a fake condition and one fake activity. This will generate the standard workflow files

– Copy the XOML and RULES files from your workflow in Dev (open the folder in SPD2010 and copy these specific files)

– Paste those files into the workflow folder you created in step 1– Open the workflow again in Prod, and click through all the steps to reassociate

each data point (simply click on the item, and it will re-associate)– If you have any lookups like "Update List Item," then you'll need to manually

edit the XOML file in SPD or Notepad so that you can find/replace the GUID of the associated list. Of course, that list must already exist on the Prod site, too.

– When done, click Finish to publish the workflow with the copied settings, and it should now work.

04/13/2023

Designer - List Workflows

Page 39: Automate business processes using SharePoint Designer Workflows

39

► Designer - Reusable workflow– Can be exported as a WSP template and installed as a feature in a new site

collection/farm – after export cannot be edited in Designer– Can be Imported into Studio for further editing– Once exported cannot be edited in Designer

► Potential Development Lifecycle– Create/test in dev using Designer– Export as wsp– Install wsp on production and publish using Designer– Future changes made to dev with re-export/install of WSP– Must Ensure associated workflow items exist in production

• Content Types• Column Types• Lists

04/13/2023

Designer – Reusable Workflows

Page 40: Automate business processes using SharePoint Designer Workflows

InfoPath

Page 41: Automate business processes using SharePoint Designer Workflows

41

InfoPath

► In March 2014 at the SharePoint Conference Microsoft announced that it would “deprecate” InfoPath– Blog post at

http://blogs.office.com/2014/01/31/update-on-infopath-and-sharepoint-forms/

► InfoPath will be supported through the End of Life date for the SharePoint 2013 on premise version (2023), but the on-line version would be phased out over a shorter duration, probably within the next two to three years.

► For details see http://channel9.msdn.com/Events/SharePoint-Conference/2014/SPC348

Page 42: Automate business processes using SharePoint Designer Workflows

42

Page 43: Automate business processes using SharePoint Designer Workflows

43

Page 44: Automate business processes using SharePoint Designer Workflows

44

InfoPath

► Microsoft Replacements– Excel Surveys

• Office 365: Continuously shipping• On-premises: Included with Office 2013

– Forms on SharePoint Lists (FoSL)• Office 365: Between summer 2014 and October 2015• On-premises: Next version of SharePoint (SharePoint vNext)

– Structured Documents (Word)• Office 365: Current plans target the end of 2014• On-premises: Current plans target the end of 2014

– App Forms (Access)• Office 365: Continuously shipping• On-premises: Included with Office 2013

Page 45: Automate business processes using SharePoint Designer Workflows

45

InfoPath

► 3rd Part replacements– Nintex Forms– KWizCom– InfoWise Ultimate Forms– K2 SmartForms– ClaySys AppForms– Emgage Turbo