- Upload the file to the server via Central Admin > Applications Management > Upload Form Template
- Go to My Form Library (e.g. "Purchase Order Forms" > Settings > Form Library Settings. Where the current content type is used.
- Add the new content type PurchaseOrderForm_V1-00 to the list.
- Rename the old Content Type (ie the current one in use that you want to preserve) to PurchaseOrderForm_V1-00 (this is typically the Name of the "Parent content Type"
- Rename the newly uploaded content type from PurchaseOrderForm_V1-00 to a friendly name the same as the old version e.g. "Purchase Order Form"
- Go to "Purchase Order Forms" > Settings > Form Library Settings > Change New Button Order and Default Content Type
- Hide the old content type as you don't want new instances created (e.g. hide "PurchaseOrderForm_V1-00") and show the new version "Purchase Order Form". It should be selected as the default content type.
- Finished - old versions of your form will still open without error and appear as they used to, and the new versions will open with the updated code base and schema.
Also See http://www.delphi-ts.com/blogs/lozzi/post/2009/07/08/Versioning-Your-Published-InfoPath-Forms.aspx which has similar info. I also confirmed that this works if your Forms reference common code Dlls - the assemblies required for the forms are also not blown away as you are not upgrading.
Thursday, 21 January 2010
Side-By-Side Versioning of InfoPath Browser Based Forms using SharePoint 2007 (aka how to have Multiple versions the same Form in the Same Forms Library)
When you have an InfoPath form live on your server, and you make a change to the schema of the form and upload it over the existing copy, your old forms won't open. You will just get a "Form has been closed" message or another kind of supporting error. To avoid killing off old versions of forms when deploying new versions, you simply have to do the following: