14

We have a SharePoint designer workflow, which is globally reusable and used in sub sites in a site collection. The workflow is associated with a content type.

Now for the purpose of maintenance and upgrading this workflow from Dev to QA to Production we have a couple of options:

  1. Save as template: if we want to save the workflow as template (wsp file), the option save as template is grayed out in designer for globally reusable workflows. On the other hand, if we have two copies of the workflow, globally reusable and reusable (not globally), then we can save the reusable copy as template. But we need to keep the two versions in sync.

    • If we change the reusable workflow, and use "Publish Globally" button, it DOES create a globally reusable workflow for the first time, but it DOES NOT update the globally reusable workflow (although it seems that it should).
    • If we change the globally reusable workflow, then the only option to copy it as a reusable workflow is to use the option "Copy & Modify" which does not allow you to have the workflow with the same name (although when you publish globally the two workflows have the same name, but it does not let you do it the other way).
  2. Recreate manually The only option working for me right now which is basically opening two instances of SharePoint Designer and copying the actions from QA to prod. Sometimes somethings will not work such as variables and parameters which cannot be copied through and should be created manually. This is definitely not a proper way of moving things from QA to prod.

  3. Export to Visio There is the export to Visio option, which is actually for moving the workflow INSIDE a site collection, not to another site collection and obviously not to another farm. There is apparently a hack for it which is mentioned in this post: Exporting and Importing SharePoint Designer 2010 List Workflow. Anyway it is dodgy and I neither want to do it, nor I recommend it.

I have seen another option which is copying the workflow files. I consider this option like option 3, not applicable, as it is not straight forward copying and needs modification to xml files.

So the question is what is the best practice and proper way for moving SPD globally reusable workflows between environments?

  • Did you ever find a solution to this? There must be something beside the comically unacceptable #2 option. – Dan Feb 22 '16 at 15:18
  • use powershell to get the workflow wsp file and activate it on site collections on the target farms- qa, prod. I have done this approach and successfully implemented in staging n production environments. – SaMolPP Mar 23 '16 at 10:49
  • 2
    SaMolPP, please provide an answer. Did you upgrade those workflows as well? – dbardakov Apr 5 '16 at 14:15
2

Saving stuff as a template usually is a bad idea, SharePoint often screws that up. It leads to a lot of problems if you have different SharePoint versions on source and target system.

IF you recreate the workflows manually, I would convert them to a Visual Studio Solution. Than you can deploy it very easily as a WSP-File as often as you like (it works on 2013, 2016 and SP online as well), you even can script that via powershell, if you have to do that on multiple site collections.

Maybe you also can import the WF automatically. I found this for 2010 workflows, maybe it works for 2013 as well: https://msdn.microsoft.com/de-de/library/ee231580.aspx?f=255&MSPPError=-2147217396

1

For moving the workflow from source to destination:

When you found out your source site ,destination site and List workflow to be moved please go through the below steps:

  1. Select 'Export to Visio' and your workflow for the source site will be saved as .vwi extension(let's call it SourceName.vwi).

  2. In the destination site, create the workflow with same name as source and publish it, select'Export to Visio'(let's call it DestinationName.vwi).

  3. Make both of the files as zip by adding .zip extension to both the files(lets call SourceName.vwi.zip and DestinationName.vwi.zip). Open both zip files and copy workflow.xoml.wfconfig.xml from **destination to source **.

  4. Rename SourceName.vwi.zip to SourceName.vwi. Go to destination site and do 'Import from Visio' and select SourceName.vwi. Publish and run workflow.

Hope this helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.