InfoPath Server Form Invocation - part 1
There are always questions on how does my form know where to open, in the browser or in the rich client?
The simple answer is to set the document library settings to open in the preferred environment. This can be either the InfoPath rich client or the browser.
The problems start to arise when you want to copy and paste a link and put it in email or IM to someone. The issue is how document libraries interact with the list items.
A when you click on an item in a document library there is SharePoint Java Script that gets activated and the script determines some things about your environment. These things are the default item open setting, permissions, type of document etc.
Depending on what the default open item is set to SharePoint may try to invoke InfoPath client or it may try to send the request to InfoPath Forms Service.
Once the decision is made to send the request to InfoPath forms service the URL should look something like this:
http://server/_layouts/FormServer.aspx?XsnLocation=http://server/documentlibrary/Forms/template.xsn&SaveLocation=http://server/documentlibrary&DefaultItemOpen=1
The important things to look at is the DefaultItemOpen. This URL parameter detemines how the server will try to render the form.
DefaultItemOpen = 0 means try to render in the rich client
DefaultItemOpen = 1 means try to render in the browser.
There are other URL parameters such as OpenIn, SaveLocation, XsnLocation, XmlLocation. I will go into more detail about these later. I will also discuss how permissions are handled for forms.