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:
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).
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.
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?