Form Development and Deployment Lifecycle
Published: May 2010
To develop and deploy an InfoPath form template for use on a SharePoint Server that is running InfoPath Forms Services requires knowledge of how to create a browser-compatible form template, how it becomes browser-enabled, and the various states that a form template can be in after it is deployed.
A browser-compatible form template goes through many stages on its way to becoming a browser-enabled form template, which means that it can be filled out in the browser. Figure 1 illustrates the stages, or states, that a browser-compatible form template can have.
Figure 1. Lifecycle of a Form Template
A browser-compatible form template must first be created for this process to begin.
A form template created in Microsoft InfoPath 2010 can be compatible with the InfoPath Filler, or with both the InfoPath Filler and InfoPath Forms Services. Either designated initially or changed after the form template was created, the compatibility information is available on the Design Checker task pane, and on the Compatibility page of the Form Options dialog box.
For more information about how to create a browser-compatible form template, see Developing and Deploying Form Templates for InfoPath Forms Services.
For more information about the subset of controls available when you design browser-compatible form templates, see Design-Once Feature Compatibility.
There are three categories of browser-compatible form templates with respect to deployment:
Form templates that contain only declarative business logic, such as rules, calculations, and conditional formatting, which can be published directly from InfoPath Designer by any user who has permission to create libraries and lists on the site.
Form templates that contain code, which can be deployed as sandboxed solutions directly from the InfoPath Designer by a site collection administrator.
Form templates that contain code that requires full trust, which require a farm administrator to approve, upload, and activate them from the SharePoint 2010 Central Administration site.
For more information about how to deploy browser-compatible form templates, see Developing and Deploying Form Templates for InfoPath Forms Services.
The following are the various states that a form template can have on a SharePoint Server running InfoPath Forms Services.
Uploading: The user form template, which does not contain code, or sandboxed solution is being deployed from the InfoPath Designer 2010 to a SharePoint site, or the administrator-approved form template that contains managed code, is being deployed from the Upload Form Template page of the SharePoint 2010 Central Administration site.
Converting or Pending Conversion: The form template is awaiting conversion or is being converted.
A browser-compatible form template becomes a browser-enabled form template when it has finished converting.
Normal: The form template has been converted and is available for use in a browser. The form template is browser-enabled.
Upgrading: The form template is being upgraded from an earlier version. At this point, no new forms can be created from the old form template files. Depending on the option selected from the Upload Form Template page of the SharePoint 2010 Central Administration site, existing form sessions based on the old form template are either allowed to complete or are terminated.
Quiescing or Quiesced: The form template is being retired or has been retired from use on the SharePoint Server running InfoPath Forms Services. Existing sessions may be allowed to complete in the time specified on the Quiesce Form Template page of the SharePoint Central Administration site.
Removing: The form template and associated files are being removed from the site.
Error: An error has occurred in the form template. See the details of the error for more information.
The following members of the Microsoft.Office.InfoPath.Server.Administration namespace, that are implemented in the Microsoft Office.InfoPath.Server.dll assembly located in the drive:\Program Files\Microsoft Office Servers\14.0\Bin folder on the server, can be used to automate the management of form templates. You can return the form template status by using the FormTemplateStatus property of the FormTemplate class. The values are based on the FormTemplate.FormTemplateState enumeration.
Converting or Pending Conversion: There is no way to explicitly invoke the conversion process for a form template. The ReconvertAll method may be useful when all deployed form templates have to be reconverted.
Normal: Use the FormTemplateCollection to access individual form templates.
Upgrading: Upgrade form templates by using the UpgradeFormTemplate method.
Removing: Use the RemoveFormTemplate method to remove it from the server.