Nick Grattan’s SharePoint Blog

About Microsoft SharePoint and some .NET

Applying a SharePoint Designer Workflow to multiple Lists

with 14 comments

When using SharePoint Designer to create a workflow you are required to bind the workflow to a particular list:

Wf1

The problem is that you cannot from this interface bind the workflow to other lists.

You might be tempted to use the “Save List as Template” option in the List’s settings, and then create a new list based on this template to create a list that uses the workflow. The problem is that the workflow is still bound to the list from which the new list is based, and an error will probably be generated whenever you try to start an instance of the workflow – the steps will try to reference items etc. in the original list.

In SharePoint Designer you can expand out the files associated with a workflow:

Wf3

The “.xoml.wfconfig.xml” file contains information on the list the workflow is bound to using the List’s ID (a GUID): 

Wf2

The file “.xoml.rules” contains the ‘conditions’ you program for the workflow and the “.xoml” file contains the ‘actions’. The “.aspx” form is displayed when the workflow is started manually.

To re-use a workflow in another list:

  1. Create a new workflow on the new list.
  2. Create at least one step, one condition and one action in this workflow. This ensures that the files shown above are created and they will be replaced by the next operations.
  3. From the original workflow open the .xoml file as XML and copy the entire contents to the clipboard.
  4. Open the .xoml file for the new workflow and replace the entire contents with the copy from (3).
  5. Repeat this operation for the xoml.rules file.
  6. Double click the .xoml file for the new workflow to open the workflow in the Workflow Designer and click Check Workflow to verify no errors and then click Finish to ensure the workflow is saved.

I’ve tested this technique with simple workflows and the process works well.

 

 

Written by Nick Grattan

October 17, 2007 at 12:08 pm

14 Responses

Subscribe to comments with RSS.

  1. Myself, I would be tempted to just add further Association tags to xoml.wfconfig.xml… Tried that and failed? Just curious. Haven’t tried it yet myself.

    Philipp Schumann

    February 26, 2008 at 10:26 am

  2. Philipp,

    Thanks for the suggestion which I have just tried. Unfortunately it doesn’t work – the additional tag is ingored.

    There is a SharePoint hidden list that stores information on workflows and it may be that an additional item needs to be added to this list.

    Regards,

    Nick.

    nickgrattan

    February 27, 2008 at 12:58 pm

  3. Hello Nick,
    Our school has different approvers for each dept. and I’d like to use one standard form I was wondering if it is possible for the Form User, at runtime, to add the required Workflow Approvers to the form and the workflow approvers property is populated with the entries?

    RalfDeC

    May 19, 2008 at 9:44 am

  4. This worked perfectly. You just saved me many hours of duplicating a very complicated set of workflow actions for processing new employees.

    Thanks a bunch!

    -Steve

    Steve Sherman

    October 16, 2008 at 8:41 pm

  5. thnks so much ….

    Mohammed

    December 19, 2008 at 5:56 am

  6. Even though this approach would work for you, it still doesn’t allow you to move the workflow between sites. So you’ll still have to be within the same site to leverage this XOML capability. Template is the approach that I’ve seen that works well when dealing with this issue.

    Leonard Mwangi

    December 22, 2008 at 10:59 pm

  7. You are AWESOME! It worked! Thank you so much!

    Maya Green

    March 19, 2009 at 7:14 pm

  8. AMAZING!!!!!

    Craig

    April 15, 2009 at 12:17 pm

  9. [...] and especially the one about copying an SPD workflow from one list to another. [...]

  10. [...] (e.g. when provisioning an intranet portal for another client). I usually use the method described here. It basically boils down to a few simple [...]

  11. Hi ,

    First of All thanks.

    Actully My requirment is somethign diffrent . I have copy workflow from My Test Environment to Production Server.

    So i have find and Replace all List Id and Task with Current one …

    Thanks for Reference …..

    Pritesh Gandhi

    August 17, 2009 at 9:10 am


Leave a Reply