none
How to restrict push-down for InfoPath Content Types? RRS feed

  • Question

  • We have an InfoPath form and it is published as Administrator approved form template.

    The related feature is activated in a site collection. This site collection has multiple sub sites. In each sub site, in one library, the above content type is used and user can fill up the form and save it.

    In future, when there is a change in the InfoPath form, we need to ensure that the changes will not affect already provisioned sub sites. Only new sub sites should reflect the changes in the form. To achieve this, we explicitly set "Sealed" property of existing sub site's library content type to True.

    Now, when we publish the updated InfoPath form again, even the existing library content types are getting affected. Why is this behavior?

    When we publish InfoPath, does it internally call SPContentType.UpdateIncludingSealedAndReadOnly method? If yes, how can we change it?

    Tuesday, January 15, 2013 9:15 AM

Answers

  • Hi Emir,

    After a lot of tries, we achieved the result in a different way.

    We'll maintain one text box (called Version) which is hidden and initially it'll have default value set to 1.

    Next time, whenever there is a change in the form, we'll create a new view (say V2) which is a replica of default view plus new additions in the layout. Also, now we'll change the default value of version text box to 2.

    We'll create a form rule which says if Version text box value is 2, switch to view V2.

    This way, already created forms will still load default view and new forms will load V2. Similarly we'll do it for future modifications. Yes, this approach may not be the most efficient but with no other option seems to be available, this is going to serve the purpose.

    • Marked as answer by Emir Liu Friday, January 18, 2013 3:18 AM
    Thursday, January 17, 2013 12:16 PM

All replies

  • What I also understand is, the content type will have a reference to XSN file which is stored in a site collection. Eventhough, content type is sealed, the changes in the form design is reflected in XSN and hence, all the existing forms will see the changes.

    Any inputs on how to avoid this?

    Tuesday, January 15, 2013 11:04 AM
  • Few more updates:

    I tried setting following options in InfoPath designer but it didn't really help.

    Under Versioning,

    Update Template = Let form users decide when to update

    Update existing forms = Do nothing

    Eventhough the above was set, all the existing forms were automatically reflecting the new changes in the form.

    Tuesday, January 15, 2013 12:37 PM
  • Hi Suresh,

    I also test to disable the "Update all content types inheriting from this type" option for the form content type, but updates still applied to existing forms.

    I'm afraid that we can only to publish the new form as a new administrator approved form each time if existing forms don't need to apply the changes.

    Thanks & Regards,
    Emir


    Emir Liu
    TechNet Community Support

    Thursday, January 17, 2013 10:33 AM
  • Hi Emir,

    After a lot of tries, we achieved the result in a different way.

    We'll maintain one text box (called Version) which is hidden and initially it'll have default value set to 1.

    Next time, whenever there is a change in the form, we'll create a new view (say V2) which is a replica of default view plus new additions in the layout. Also, now we'll change the default value of version text box to 2.

    We'll create a form rule which says if Version text box value is 2, switch to view V2.

    This way, already created forms will still load default view and new forms will load V2. Similarly we'll do it for future modifications. Yes, this approach may not be the most efficient but with no other option seems to be available, this is going to serve the purpose.

    • Marked as answer by Emir Liu Friday, January 18, 2013 3:18 AM
    Thursday, January 17, 2013 12:16 PM