R.I.P. Hendrik

Beste mensen, voor u verder wilt gaan met lezen, moet ik u zeggen dat dit voor de verandering een ernstige log is. Dit bericht is absoluut niet grappig, tenzij voor sadisten onder u.

Het begon allemaal gisterenmiddag. Glenn, Kris en ikzelf waren aan het skaten op het skateplein te Kalmthout (want we werden na 5 minuten al weggestuurd toen de directeur van de bibliotheek naar ons kwam). Er heerste een rustige sfeer.

Het skateplein is gesitueerd in het centrum van een rustige wijk, achter enkele tuinen. Daar bevonden zich ook enkele hoenderachtige dieren (vooral kippen en kalkoenen). Na een tijdje te hebben geskate, werden we plotseling opgeschud door kakelende kippen. Er bleek een indringer aan de rand van de ren te zitten, met name een kleine hond ( een onschuldig dier als het zo zou zien ). Maar de hond was niet zo onschuldig als hij er uitzag…

Genadeloos sloeg de hond toe. Hij had al snel een kip vast, een vermoedelijk zwak en verouderd dier. We hebben deze kip Hendrik genoemd (het is dan wel een jongensnaam, maar het getuigd van respect om het een naam te geven). Hendrik werd letterlijk gepluimd. De hond, die we Rotzak noemen, zette zijn tanden in de billen van Hendrik. Het was een bloederig gebeuren. De andere kippen keken hulpeloos toe hoe hun dierbare vriend werd verpulverd.

Bij deze zou ik van deze log een rouwregister willen maken. Als u geeft om Hendrik, ook al kende u het beestje niet persoonlijk, zouden we het een mooi eerbetoon vinden, mocht u een reactie plaatsen met uw persoonlijke condoleantie of rouwbeklag.

Hendrik was meer dan een gewone kip. Hij maakte deel uit van de achtergrondgeluiden van het skateplein te Kalmthout.

We zullen je missen… kieke

Horrordonk

Het is ondertussen al enkele dagen geleden dat Horrordonk plaatsvond, maar ja, beter laat dan nooit :p …

Ik kan vrij kort zijn over deze fuif. De omschrijving bevat niet meer dan 1 woord: slecht. Het begon allemaal rond 21.30u. Mijn moeder zou een aantal vrienden van me wegbrengen en halen. Niels was een beetje laat, maar dat maakte niet veel uit. Terwijl we naar Horendonk reden, waren we allemaal in feeststemming. Iets over 10 kwamen we aan.

Ik heb de meeste tijd bij m’n vriendin doorgebracht. Er was veel bekend volk, de meeste van hen zitten bij ons op school. Veel sfeer was er niet echt. Dat lag aan de DJ. De muziek was gewoonweg vreselijk. Na een hoop afgezaagde techno, was het de beurt aan de carnavalsliedjes, die op hun beurt gevolgd werden door nog meer electronisch gejank. Elk liedje heb ik minstens 2 keer gehoord, enkele nummers heb ik zelfs 5 keer gehoord. Niet moeilijk dat iedereen het slecht vindt. Maar ja, wat wil je als een goedkope DJ hebt met maar 2 cd’s? :p

Buiten was het te slecht weer om de idioot uit te hangen, dus moesten we wel in de tent rondhangen. Het enige positieve punt aan de fuif, was dat ik lange tijd heb kunnen doorbrengen met Saar. Zij moest naar huis rond 1.30u . Ik zat nog een uur in die tent de marginale sfeer op te snuiven. Toen Niels en ik het beu waren, besloten we om iedereen die we naar huis moesten brengen, te gaan halen. Omstreeks 2.30u stond mijn ma ons op te wachten, we reden als snel weer weg ( gelukkig maar :p ).

Ik was iets voor 3.00u thuis. Ik kroop snel in mijn bed, want rond 10.00u moest ik alweer naar Essen, dit keer naar mijn vader. Veel slaap heb ik dus niet gehad, maar dat heb ik ondertussen al ingehaald door 2 dagen te chillen en te slapen ( dat verklaart dus ineens de vertraging van deze log :p ).
Zo, dat was het dan.

De balle,

Yves

How to publish an InfoPath form

In a previous post, I already briefly touched on how to publish an InfoPath form to a SharePoint 2007 server.

However, there is much more to it. In this post, I dive into the details.

Here are the main steps one has to follow.

  1. Under the assumption you make a change to an existing form template: create a local copy of the InfoPath form you need to change. Right click the form template and say “Design”. Then make your changes. If there’s custom code in it, fire up Visual Studio for Applications.  Rebuild the code.
  2. Create a published version of the form. Click “File > Publish”.
  3. Follow the Publishing Wizard.  Select “To a SharePoint server without InfoPath Forms Services” ((You can also publish the form template to a SharePoint library. It will then be regarded as a new content type.  However, this will allow users to publish new version of the forms if they have access. If you publish the form template to an Infopath Forms  Service, you can approve it by an administrator and retain control)).
  4. Enter the location of your Sharepoint or InfoPath Forms Services site.
  5. Click “Enable this for, to be filled out by using a browser” if required.
  6. Also select the radio button “administrator-approved” to prepare this form template for an administrator approval.
  7. Publish the new form and place the form template in a shared location.
  8. SharePoint farm administrator has to go to “Central Admin” and then “Application management”.
  9. SharePoint farm administrator has to browse to InfoPath form services and upload the form template from the shared location.
  10. “upgrade the form template if already exists” needs to be unchecked if it is a new form.
  11. VERIFY button needs to be clicked and SharePoint farm administrator has to report error messages on the template.
  12. On the “manage form templates” page, the deployment engineer has to activate the new form template to a site collection in a web application.
  13. The new form can be found by going through “Site Actions” > “View all site content”. The form template is stored in the document library “Form Templates”. You can then enable the form on a Page by adding a PageViewer Web Part.

Errors

There are several errors one can encounter when trying to publish an InfoPath form template.

Uploading form

Two common errors you may encounter when trying to upload the form in the central administration: one is if you do not check “upgrade existing form template”. The other one is in the other scenario: when trying to upgrade an existing form template.

  1. Below error means that there is already a form deployed with the same schema. Renaming the InfoPath form does not help. The only solution is to copy paste the form in a new template. Or you can delete the form(s) with the same schema from the template server if that’s an option.
    Form with the same identity urn:schemas-microsoft-com:office:infopath:example:-myXSD-2011-09-06T12-36-26 is already deployed on this farm. at Microsoft.Office.InfoPath.Server.Administration.FormTemplateCollection.TryAdd(String path, Guid featureId, String featureName, ConverterLog& converterLog)
    at Microsoft.Office.InfoPath.Server.Administration.FormTemplateCollection.TryAdd(String path, ConverterLog& converterLog)
    at Microsoft.Office.InfoPath.Server.ApplicationPages.UploadFormTemplatePage.<>c__DisplayClass1.b__0(String sourceName)
    at Microsoft.Office.InfoPath.Server.ApplicationPages.UploadFormTemplatePage.HandleFiles(HandleFile fileHandler)
    at Microsoft.Office.InfoPath.Server.ApplicationPages.UploadFormTemplatePage.ButtonOkClick(Object sender, EventArgs e)
    at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
    at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
    at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  2. When you try to upgrade an existing form template, you cannot  rename the form template.  Otherwise you will run into the below error.
    The form template cannot be upgraded because the file name has changed since the previous version. Rename the file name to the following or change the form ID of the form template: form template.xsn   at Microsoft.Office.InfoPath.Server.Administration.FormTemplateCollection.TryUpgradeFormTemplate(String solutionPath, UpgradeType upgradeType, ConverterLog& converterLog)
    at Microsoft.Office.InfoPath.Server.Administration.FormTemplateCollection.UpgradeFormTemplate(String solutionPath, UpgradeType upgradeType)
    at Microsoft.Office.InfoPath.Server.ApplicationPages.UploadFormTemplatePage.<>c__DisplayClass1.<ButtonOkClick>b__0(String sourceName)
    at Microsoft.Office.InfoPath.Server.ApplicationPages.UploadFormTemplatePage.HandleFiles(HandleFile fileHandler)
    at Microsoft.Office.InfoPath.Server.ApplicationPages.UploadFormTemplatePage.ButtonOkClick(Object sender, EventArgs e)
    at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
    at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
    at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Data Connections

Another nasty error that I ran into is when working with data connections.

Data connections allow you to retrieve or push data to a location. There are different types of data connections.

  1. SharePoint lists: popdown lists to select values from a (custom) SharePoint list.
  2. Support XML file: can be used in a repeating table to find products based on a certain business unit, for example. You can run some XPath query against it.
  3. Data connections to e-mail
  4. SharePoint Library Submit: Data connection to submit to a SharePoint Library ((Possible constraint might be that only users that are member of a certain group are allowed to store the InfoPath forms in the libraries. ))

It is very important that you ensure that all data connections referring to a SharePoint list, are linked to the same SharePoint server as where the InfoPath form is published. There is no mismatch allowed! InfoPath form servers simply cannot recognize SharePoint lists in another domain/server. Thus, this really differs for testing, pre-production and production environments! Be careful, you might overlook this like I did. The error cannot be found in the server’s event viewer either.

More: an error occurred when accessing the data source.