How to allow users to run a SharePoint Designer workflow on multiple list items.

Overview:
Design and deploy a solution based on SharePoint 2010 to store and track data on events. 

Technical Approach:

  • Use SharePoint 2010 lists, libraries, and content types to store and track event data.

  • Develop SharePoint Designer 2010 workflows to standardize and replace current manual processes and provide secured views of sensitive data. 

  • Use SharePoint Designer 2010 workflows for data migration from current Excel spreadsheets and Access database.

  • Provide customized reporting using customized SharePoint 2010 list views and Microsoft Access 2010’s ability to generate reports based on data stored in SharePoint 2010. 

Challenge: How to provide the user the ability to quickly kick-off a workflow on multiple events all in the same view.

We ran into a challenge on a key requirement to allow the user to quickly kick-off a workflow on multiple events all in the same view.  Given the large number of events involved it would be a time-consuming process for the user to select each list item representing the event, edit the final event details, and run the associated workflow process to complete and close the event. 

We evaluated using one of the new out-of-the-box features of SharePoint 2010: the ability to multiple select items in a list and perform an action.   This could have been an easy way to provide the user the ability to a workflow on multiple list items- the ideal solution-simply instruct the user to select multiple list items in the default view, select the workflow button in the ribbon, and execute the workflow.  

The challenge? It appears the actions you can perform on multiple list items are limited to edit and delete, workflows are not included.   It is not clear to us if this is by design (SharePoint Designer team can jump in here and clarify if we are missing something I am sure) but since the workflow button is de-activated when selecting more than one list item and time was short we proceeded to investigate another possible solution. 

Screenshot of standard list view with multiple list items selected demonstrating the ability to edit and delete multiple items but workflow command de-activated.

ViewEvents
Screenshot of identical standard list view with a single list item selected demonstrating the ability to run a workflow against a single item only.

WorkflowSingleItem

How then to provide a mechanism in the user interface to allow the event coordinator to quickly and easily update information on multiple events without requiring a time-consuming process to open each and every event from the default SharePoint item edit view, update, and run the associated SharePoint workflow to complete the event?  Tires me just saying it. 

Solution:

Use the SharePoint multiple item form in conjunction with SharePoint Designer workflow ability to execute on list item updates.

  • Create a new field to designate the event as complete using the checkbox field type, one value for yes and no default value.

  • Create a new aspx page from the masterpage using SharePoint Designer, insert a dataview, select the appropriate fields in the datasource details pane, and insert as a multiple item form. 

  • Although multiple item forms are similiar to the datasheet view they provide the ability to customize to your scenario.

  • Add the complete column to the dataview to provide the checkboxes to designate the event as completed.

  • Set the close workflow settings to execute when an item has changed and add a condition to the workflow to check the complete status prior to execution i.e. if the event has already been closed do not execute workflow.  Easy addition would be to provide filtered views of the Event list by Complete=Yes and Complete =.

  • When the user selects the Complete event checkbox on multiple events and selects save the values in each associated list item is updated which in turn begins execution of the workflow for each list item selected. 

Screenshot of an example custom SharePoint list item form in the Multiple Item Form view.  

 CloseEventSmall

The user is able to select multiple events and designate as completed using the new Complete checkbox, update the event details using the fields in the multiple item form, and select Save.  The workflow will then begin execution on each item as they are updated.

Of course you can customize this page to suit your needs-SharePoint Designer 2010 provides a full range of options including conditional formatting, filtered views, and advanced editing mode. 

Important considerations when using customized list forms and workflows:

  • Use conditional clauses to ensure you don’t create infinite loops and workflows are executed only when appropriate.

  • I recommend creating an entirely new .aspx page rather then editing the built-in list forms for adding a multiple item view when possible.

  • When editing existing list forms i.e. editform.aspx be carefull not to delete the list form control but use the web-part settings to hide instead.

Summary:

Using the SharePoint custom multiple item form is one method to provide the user a quick and easy way to edit multiple list items and an excellent alternative to the default single item edit form.

Although similar to the datasheet view multiple item forms are customizable.  

When the list is associated with a workflow the user has the ability to perform workflow actions on multiple list items as well.