Reputation: 12205
We are using Infopath forms on our web application (not Sharepoint). We have run into a problem with Infopath 2010 on Windows 7 machines, when upgrading the form.
If we publish a new version of the form to our server, and then open the form in Infopath (only 2010 on windows 7), a yellow information bar appears telling us that there is a newer version of the form available, and asking whether we want to "Save and Update". The problem is, this calls the Save
function of the form, but the form can not be saved if there are validation errors. If the user clicks this "Save and Update" button as soon as Infopath opens, Infopath still tries to save the empty form. This results in lots of error messages appearing, which does not provide a very good end-user experience.
However, after all the errors have gone, and the form is reopened, it now has the new version.
I have also noticed, that for some users this error does not happen, and Infopath seems to just silently update the form before displaying anything. Testing with a number of Local accounts (including the machine administrator) on a test machine produced the error, but when I logged on with my own domain account (with admin privileges) I did not get the error. This makes me suspect that the problem is due to some security setting in Windows 7.
I have tried catching the OnVersionUpgrade
event that Infopath provides, but this event does not fire till after the form has attempted to save, so it does not help me in this case. I have also tried to set Upgrade automatically when a new version is available under Form Options -> Versioning, but this does not seem to make any difference to the behaviour of the form.
Is there any way that I can force Infopath to upgrade the form automatically when there is a new one available, without it first trying to save the form?
Upvotes: 0
Views: 543
Reputation: 11
I had a similar issue and it was solved by clearing the local infopath cache. Likely happening to your users that have opened that same form before. Might be a way to do that programatically on form load?
Upvotes: 1