Everything began from nothing.

Showing posts with label infopath. Show all posts
Showing posts with label infopath. Show all posts

Friday, 17 February 2017

SharePoint XSN provisionning with WSP

it's not very simple to package a form xsn in the wsp solution, specialy if you want to do a provisionning.

You probably tried to use something like:
1 <elements xmlns="http://schemas.microsoft.com/sharepoint/">
2    <module name="DefaultForms" rootwebonly="FALSE" url="Lists/Forms">
3      <file path="DefaultForms\TestForm.xsn" type="GhostableInLibrary" url="TestForm.xsn"/>
4    </module>
5 </elements>

But if you just put the XSN files in a module and deploy it to a Form-library like this, or just upload the xsn file to the library, the Info Path form will not be able to render (error: form is not browser enabled).
What you have to do to fix this is adding some extra properties:
 1 <elements xmlns="http://schemas.microsoft.com/sharepoint/">
 2   <module 
 3        name="DefaultFormulieren" 
 4        rootwebonly="FALSE" 
 5        url="Lists/Forms">
 6      <file path="DefaultForms\myform.xsn" 
 7            type="GhostableInLibrary" url="TestForm.xsn">
 8        <property name="ContentTypeId"
 9                  value="XXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
10        <property name="ContentType" value="Form"/>
11        <property name="vti_contenttag" type="string" 
12                  value="{xxxxxxxxxxxxxxxxxxxxxxxxx},2,1"/>
13        <property name="ipfs_streamhash" type="string"
14                  value="u+Z+9oSpboLO+KfE7V3NmgN0DfxlgCQB0/R8/S3pVBM="/>   

15      </file>
16   </module>
17 </elements>

  • ContentTypeId and ContentType are self explaining, but how to find the vti_contenttag and ipfs_streamhash?

  1.  open the form in InfoPath-designer and publish it to a SharePoint site.
  2.  create a WSP from the existing site.

If it’s a publishing site you cannot in a normal way access the ‘save site as template’ page. So you should browse to / _layouts/savetmpl.aspx. There's no shame in doing this (or in forgetting), just remeber that it's hidden for a reason!

Make sure ‘Include content’ is selected.
Download the WSP and rename to .cab
Now you can extract this file with (for example) winrar.
Browse to the just extracted files. 

Open the Modules folder
Under 'files' you’ll find the XSN file (under a subfolder with the name of the library), I always use this file to be absolutely sure it’s exactly the same as when a user publishes the original XSN with infopath.

Go back to the root folder of your extracted WSP and open the 'propertybag' folder.
In this folder open the elements.xml. 

Find the File tag for your XSN file. (just search for .xsn).

Here you’ll find the vti_contenttag and ipfs_streamhash values. You can just add these to your module, since SharePoint itself figures out if values are fields or need to be set to the propertybag.

Thursday, 16 February 2017

Deploy Info path using PowerShell, SharePoint 2013

This post aims to describe how to deploy infopath forms as form templates in a sharepoint site using Powershell.

This post will not detail out how to create a custom infopath form. It will assume that there is already an existing Infopath source files that are for deployment.
Sharepoint 2010
Microsoft Infopath Designer 2010


1.Locate the manifest.xml, right-click and click on Design. The Infopath Designer should load.

2.Whenever modifications have been made to the form, it is a good practice to change the version of the infopath form. This is because when you create a version 1.0 and so on for a form, all of the previous versions will be saved in Sharepoint. To do this, Click on File on the Infopath Form Designer. On the Info Ribbon tab, Click on Advanced Form Options.
The Form Option dialog box should appear.

3.Change the version on the Version field.
4.[Not Required] If you would like to create another set of source files for the modified Infopath form, you can do so by re-exporting the source files into another location.
Click File and select the Publish Ribbon. Click on the Export Source Files.

5.Select the folder where you want to save the Source Files. On the Folder field, type in the folder name where you want to save the files.

6.To publish your form into an Infopath .xsn format, Click on File and Click on the Info Ribbon Tab. On the Info Ribbon Tab, Click on the Quick Publish button.

7.Please take note on the location of the .xsn to be published. The directory is displayed on the right hand part of the Quick Publish section.

8.This operation will result in the creation of a .xsn file. A .xsn file defines the data structure, appearance, and behavior of Finished forms. This particular file is what is to be deployed in sharepoint.

9.Deploy Infopath form using Powershell. Click on Start>All Programs>Microsoft Sharepoint 2010 Products. Click on Sharepoint 2010 Management Shell.

10.To Uninstall the existing xsn Form Template. Type in the Management shell

Uninstall-SPInfoPathFormTemplate -Identity Exampleform.xsn

11.Install the new solution based on the .xsn file path. For example, the .xsn is located in drive c:/

Install-SPInfoPathFormTemplate -Path C:\Form.xsn

12.To disable the feature on the site collection level, type in the management shell. For example, the site collection URL is http://SPSite.

Disable-SPInfoPathFormTemplate -Identity "Form.xsn" -Site http://SPSite 

13.To enable the feature on the site collection level, type in the management shell. For example, the site collection URL is http://SPSite.

Enable-SPInfoPathFormTemplate -Identity "Form.xsn" -Site "http://SPSite"

14.Verify that the form was indeed deployed on the Sharepoint site. Browse to your site, make sure that you have the necessary rights to view the Form Templates. Click on Site Actions > View All Site Contents and Click on Form Templates.

15.The Infopath form should be on the List of the Form Templates.

Source :http://sharepointfruity.blogspot.com/2012/09/infopath-deployment-using-powershell.html