20

Working with Infopath 2010 here and SP 2010.

I've created my form and published it while in DEV. Now, I want to publish it to the Prod Location. Here's the issue and to me, quite strange.

I can't republish to another location. Normally, I just used the Quick Publish option which republishes to the same location.

Now, I click File Publish.

I have two options Here: "Sharepoint List" and "Export Source Files".

The "Sharepoint List" option is the obvious one, but here's the catch... It remembers the Quick Publish Location and even has a Label stating: "The form will be published to: http://blablabla"

Clicking on the Button, just does EXACTLY the same as Quick Publish.. It does a quick publish without bringing up the wizard to choose the publish location.

It seems sometimes MS tries to be too clever with the ribbons and the menus...

Am I missing Something??

How can I bring the wizard back up to change the publish location?

Thanks

2

19 Answers 19

5

Yes this is "by design". If you want to deploy a form to a different location, use Data Connection Files (.udcx). Here's a good article about how to create and use them properly. http://msdn.microsoft.com/en-us/library/ms772101.aspx

Now if you change the environments, you download the .udcx file from the DEV data connection library and change the ListId to the ListId of your PROD list, and upload the udcx to the data connection library of your PROD environment.

<udc:ConnectionInfo Purpose="ReadOnly" AltDataSource="">
        <udc:WsdlUrl/>
        <udc:SelectCommand>
            <udc:ListId>{Change Here}</udc:ListId>
            <udc:WebUrl>http://additportal/apps/addOffer/</udc:WebUrl>
            <udc:ConnectionString/>
            ....
    </udc:ConnectionInfo>

Then, if you re-publish, infopath will ask you if you want to adjust the the URLs

1
  • 3
    Your reference cannot be applied to data connections on "Sharepoint List Form" Infopath form. The data connections for sharepoint lists are generated automatically (cannot be created manually by wizard), nonmodifiable and cannot be saved as UDCX file. Jul 28, 2012 at 3:50
11

I had the same problem and found out a way to solve it. I saved the form as source files, opened all the files in a text editor (in my case on Visual Studio) and replaced all URLs, used for publishing (actually in 2 files: manifest.xsf and view1.xsl).

After publishing it worked fine.

Good luck.

Regards, Pilan

2
  • I would have chosen it as correct answer Jul 22, 2012 at 14:36
  • This did not work for me. :-/ I can't seem to find all of the instances of the list name, and even though it says it is uploading to the new list, it only uploads to the old list
    – Flotolk
    Jul 26, 2017 at 13:44
6

I found the best approach. It may be little manual but worth it (at least try it once).

  1. xsn files are basically a cab files with bunch of related files in it.
  2. rename xsn to cab and extract to a location (alternatively you could from infopath file > publish > export source files)
  3. Fix the manifest file for new target location
  4. Re-create the cab file (makecab command)
  5. rename cab to xsn

Here is a good article. http://sharepointkb.wordpress.com/2009/01/24/modifying-xsn-files-infopath/

1
  • +1 though I think you missed the stages of saving template locally, then republishing it while the stage of re-creating the cab file is unnecessary since it is being done under the hood by publishing and manual replacing the template.xsn will not work, in my experience Jul 22, 2012 at 14:35
3

Ok found the answer, but it's actually ridiculous!

The Option I took when creating the Form from Infopath Designer, was "Sharepoint List" template, which seems to be the cause of the problem, as it basically contraints you to working on THAT specific List in that specific Site. In Other words, you can't move the Template! Is that by Design? It would be shocking if it is...

Anyways, A workaround, is to save your List as a template and create it somewhere else. You can now also Download the form again from the newly created list and modify it as you want.

Can't find any docs from MS which describes this behaviour, so i'm sure it's a Bug.

2
  • The content of lookup fields is lost at such moving if it is through STP files (to another site collection) Jul 28, 2012 at 10:23
  • How do I change what it' s saved as? When I say save as all it lets me save it as is an InfoPath form template, with all of the settings like the URL already preset
    – Flotolk
    Jul 26, 2017 at 17:51
3

There is a general misunderstanding of the difference between code and content. This is partly the fault of Microsoft for constantly ignoring the fundamental separation of code and data.

In Sharepoint 2010, Code and Content separation is rigorously imposed by the science of Document Management. To be clear Code can execute in the Sharepoint Application itself (SPTimer Service), everything else is Content.

Template.xsn is not Code, it is Content because it runs on a client (InfoPath Filler or InfoPath Forms Service). And do you Deploy content? No, content is Published.

Developers typically bring DEV/TEST/PROD thinking to InfoPath. Instead you should be thinking AUTHOR/APPROVE/PUBLISH. InfoPath publishes only tightly managed content and does not allow any unsafe client Code to execute on the server without Farm Admin deployment.

Bottom line, InfoPath and Sharepoint Designer are Content Editors just like Word and Excel. They are not Development tools.

  1. use SharePoint Designer (SPD) to open the PROD site
  2. copy the current template.xsn to a new file in the same location.
  3. edit the new file in InfoPath by double clicking from SPD
  4. When done publish the new file (it will go to the same SharePoint List location in PROD)

Job Done.

  • If recovery is needed, simply repeat steps 1-4 on the original template.xsn
2

After spending many hours i have found out some solution so i thought let me share with you guys. You might have found slimier kind of solution. I have figured out solution which may be more easy way to do it, and below are the steps.

  1. You can save as your existing list as template.
  2. At same site or different site, create new list using saved form template.
  3. Then go to New List - List Settings -> General Settings -> Form Settings.
  4. Select modify the existing Info Path Form
  5. Click button OK

It will open form in Info Path. Here you can see in publish and quick publish option your new List's path. You can save your form and do required changes if you want to and then publish it.

This option seems bit funny but it works for me.

Thanks Everyone.

1
  • This is no longer supported... They don't allow templates for newer versions of sharepoint.
    – Flotolk
    Jul 26, 2017 at 17:31
2

If you are working with InfoPath List form, you can not change publishing options from within InfoPath. Usually this means that you should create new InfoPath form and manually create all rules and controls using the previous form as an example.

Howewer, infopath xsn form is a cab file, wich contains multiple xml files. The file manifest.xsf inside that cab archive contains info about publishing options. If you really need to change publishing url, you may dig in that direction.

Below I post my steps to achieve this. I cannot guarantee 100% result, but it worked for me:

  • Save infopath form on your hard drive
  • Change extension of the saved form from xsn to cab and unpack its content
  • Find the manifest.xsf file and change it as follows:
    • The baseUrl tag, relativeUrlBase attribute: set the url of another list. There must be absolute url which points to specific content type folder (e.g. for Tasks list it should be http://weburl/Tasks/Task
    • Find the sharepointListAdapterRW tag with name="Main Data Connection" attribute and change its attributes as follows:
      • sharePointListID attribute to Id of your new list. You can find Id of the list with tools like Sharepoint Manager 2010. EDIT: The easist way to determine the attribute is to go to the List Settings page of the list in SharePoint. The URL will display the list id in encoded format. To decode it, replace %7B with {, %2D with -, and %7D with }. This page has more information on the topic.
      • contentTypeID attribute (if it differs) to the content type id of your new list. EDIT: To obtain this id, go to the List Settings page of the list in SharePoint. Next, click the Advanced settings link. Choose Yes to Allow management of content types?, then click OK. You'll go back to List Settings, where you'll now see a new section called Content Types. The Item link will have the id in the URL as ctype=. You can disable the content management option once you've obtained the id. This page has more information on the topic - scroll down to the answer provided by Brian_TX.
      • siteURL to absolute url of the web, containing your list (e.g. http://site/web1/web2/)
      • relativeListUrl to the web-relative path of your new list, e.g. Lists/Tasks
  • Compress files in cab archive, (I myself used cabpack for that purpose) and set its extension to xsn.
  • Open compressed xsn with InfoPath designer, click "Refresh Fields", check that the form is ok, save it and publish it. It should be published in new location.
5
  • 1
    No need to compress files in archive, just open manifest.xsf in Infopath Designer, save as XSN and publish, to a changed location Jan 9, 2013 at 9:46
  • In my answer I adressed how to submit to multiple sharepoint lists since this workaround permits to change the publish location, but it does not enable to submit the same form to various/multipe (or more than one) sharepoint lists Jan 9, 2013 at 10:20
  • To moderator: I've made edits ("This is my answer to another, similar question") to this answer by mistake (having though that I was editing my own answer)!!!! Please don't approve them! Mar 10, 2013 at 3:36
  • Excellent, well structured answer. You can actually unpack the .xsn file from within InfoPath by selecting File -> Publish - Export Source Files. Then, after making the necessary edits with a text editor, you can locate the manifest.xsf in Windows Explorer, Right Click, and select "Design" which will load everything up in InfoPath, and you can publish from there.
    – Chloraphil
    Aug 5, 2020 at 20:32
  • Also, if your form calls external data connections those will need to be updated as well.
    – Chloraphil
    Aug 5, 2020 at 20:32
1

I came across this thread, when encountering the same problem, and unfortunately for existing forms I could not get any of the solutions to work absolutely correct, so had to redesign from scratch. However as I am working more in InfoPath all the time and have to share variations of the same forms around - I thought I would give my non tech solution.

I create a read only copy of the form without any publish location - and then use this as a master template. I can then publish a copy of this form with the location to where needed as I have the master copy still intact.

Hope this helps

0

Save the form as a new file and just change the submit options to point to a different list.

0

If you publish to a Document or Form Library, I found the option to change this easily. I had the same problem and initially I thought the solution would be complicated as Gennady explained, but after seeing this then I was able to change the publish location quickly. Go to File->Publish as you said but then find the "Publish Form to a SharePoint Library" option with the "SharePoint Server" button to the left of it, from there you get back to the original publishing dialog where you can input your new destination location.

0

Another option that seems to have worked for me is this:

Create a template of the list from the development environment.

Create the list in the production environment using the new list template.

Create a new form in InfoPath selecting "SharePoint List" as the type.

Set the location of the SharePoint site as your production site which contains the new list.

Choose "Customize an existing SharePoint List" and select the list you created from the development list template.

InfoPath will open the list and its existing InfoPath form. You can now save this InfoPath form as the template for your new list location.

0

Have you changed submit option in info path to your new location (production) ? If you want to publish directly to SharePoint library or list then in this blog all the steps are mentioned and if you are trying to publish it to the content type then you can follow the instruction given in this link,

0

To get rid of this issue ,you can create your form in a "new blank template" instead of "new SharePoint list "template.

In this way you can save it anywhere , publish it on any site and manage your submit button option to any list.

2
  • Would you please explain or show some steps on how to manage submit button option to any list.
    – Asad Refai
    Sep 4, 2015 at 6:52
  • In submit button options go to submit options,Select Allow users to submit this form. Then in send data to a single destination choose "sharepoint document library".Add your required library URL , You can add another URL there,and manage. A button named "manage" will be activated when you add multiple destinations .
    – jp nayak
    Sep 4, 2015 at 10:43
0

Right click the .xsn file and select "Design" from the dropdown. Click "File" then "Publish" Select the new location. Done

0

Easy way to move infopath list template from dev (any site) to prod any any site with same list format

scenario dev- site url http://sharepointdev.dom.net/site/list...

       prod-site url-http://sharepoint.dom.net/site/list...
  1. Open your infopath form template in infopath designer
  2. Click on file menu and select publish and select export source file ( say to you desktop ) put it in folder say folder xxx - close you infopath form template
  3. from folder xxx open the manifest file in notepad ++ or and script writer
  4. look for select the dev-site and replace it with prod site URL

then save manifest file and publish it done

0

I created a copy of a site with an InfoPath 2010 form (both now in SharePoint Online). When I tried to open the form in the copied list, I was getting an error. It turned out that the default forms had to be reset in SharePoint Designer. So now it's working. Go to your list in SPD 13 >Forms > Type column. The Newifs, Displayifs and Editifs are the ones for the custom form. For each one, select the file but click it in the Type column, and in the ribbon at the top, select Set as Default for each one. See if this solves the problem. It did for me.

0
  1. Go to File > Publish > Export Source Files.
  2. Close InfoPath form.
  3. Open saved Manifest.xsf file and find all instances of the URL and replace them with the new URL.
  4. If you have secondary data connections, update those also.
  5. Save the manifest.xsf file and close.
  6. Now right click on the manifest.xsf and select Design to open it back up in InfoPath.
  7. Click on File >Publish and verify the URL is correct.
0

Changing the SharePoint library address when publishing!

Steps:
1. Go to your infopath form (using infopath designer)
2. Go to File > Publish > SharePoint Server
3. Enter the new SharePoint library site address , then NEXT button
4. Select Form Library or the option you require (tic the checkbox for "Enable this form to be filled out by using a browser" if preferred), then NEXT button
5. Create or update the library (up to your requirement). If UPDATE is selected, choose your existing form library name, then click NEXT
6. Specify columns as per your requirement, then NEXT button
7. Publish

Hope this could help those who are not that expert in SharePoint and Infopath like myself.

0

This is my answer to another, similar question, that was removed and my answer migrated here, so having made my answer repeating previous answers


You can submit from the same Infopath form to multiple sharepoint lists though, for this, one should avoid using Infopath form template of type/compatibility Sharepoint List Form. I.e. you should avoid generating IP form template by pressing Customize button in browser or Sharepoint Designer or by pressing Sharepoint List button in Infopath Designer File > New > Sharepoint List. Use any other IP types of form templates

Also, check:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.