Sharepoint 2010 | Infopath Listform von TEST auf PROD deployen

Hallo Leute,

mittlerweile habe ich auch mit den ersten Infopath-Sharepoint Formularen zu tun.

Vorweg: Geht man einfach im Sharepoint unter Listentools -> Liste -> Formular anpassen, so hat man einige Einschneidungen, z.B.:
* Entwicklertools im InfoPath stehen nicht zur Verfügung
* Deployment gestaltet sich schwierig

Ich möchte hier insbesondere auf den zweiten Punkt eingehen:
Denn Wenn man auf diese Art das Formular anpasst, kann man im InfoPath selbst die primäre Datenquelle nicht mehr verändern, ein Deployment für eine andere Liste bzw. auf einem anderen Server ist also nicht möglich …

2013-05-10 09_59_29-Datenverbindungen

Nach ein wenig Recherche habe ich „herausgefunden“, dass sich hinter der Extension „xsn“ eigentlich nur ein CAB-File versteckt, welches man einfach (umbenennen und) extrahieren kann. Man findet dann eine Datei Namens „manifest.xsn“, welche man am besten im Notepad (oder einem anderen Text-Editor) öffnet.

Nun sucht man nach „ListId“ und findet:
sharePointListID="{32D6310F-88CF-4C32-BAFC-B974A717D7BD}" contentTypeID="0x0100ABD98D05E8DE754086E57FD6330C5060"

Diese beiden Werte muss man durch jene des Zielsystems ersetzen.

Anschliessend sucht man nach „baseUrl“ und findet:

Auch hier ersetzt man die URL durch die neue/PROD-Sharepoint URL.

Wichtig: Die Liste muss bereits am Zielsystem existieren. 100%ig ident muss sie nicht sein – aber dazu später.

Nun muss man die Dateien wieder in ein XSN-Dokument verpacken. Ich habe hierfür folgendes gefunden:


;************************************************************

; MSDN Sample Source Code MakeCAB Directive file example

;************************************************************

.OPTION EXPLICIT

;*****************************************************************

; change the value of the caninet name for example myInfoPath.xsn

;******************************************************************

.Set CabinetNameTemplate=20131005_test.XSN

;**********************************************************************************************

; change the value of the Disk Directory Template value to the directory you want to store the xsn file into,,

;**********************************************************************************************

.set DiskDirectoryTemplate="C:UsersuserDesktop"

.Set Cabinet=on

.Set Compress=on

;*******************************************************

; Just List All the files to be added in the xsn file

;*******************************************************

"C:UsersuserDesktoptempChoices Data Connection39.xsd"
"C:UsersuserDesktoptempchoices.xml"
"C:UsersuserDesktoptempErgnzungen-E.xsl"
"C:UsersuserDesktoptempErgnzungenIT.xsl"
"C:UsersuserDesktoptempITPSE.xsl"
"C:UsersuserDesktoptempmanifest.xsf"
"C:UsersuserDesktoptempPlanung.xsl"
"C:UsersuserDesktoptempsampledata.xml"
"C:UsersuserDesktoptempschema.xsd"
"C:UsersuserDesktoptempschema1.xsd"
"C:UsersuserDesktoptempschema2.xsd"
"C:UsersuserDesktoptempschema3.xsd"
"C:UsersuserDesktoptempschema4.xsd"
"C:UsersuserDesktoptemptemplate.xml"
"C:UsersuserDesktoptempupgrade.xsl"
"C:UsersuserDesktoptempview1.xsl"
"C:UsersuserDesktoptempVorhaben.xsl"
"C:UsersuserDesktoptempWEintern.xsl"

;*********************

; End of the File

;*********************

Wichtig ist, dass alle Dateien in der Auflistung am Ende vorkommen. Das fertige XSN-File muss dann wieder in der Entwurfsansicht geöffnet werden.
InfoPath wirft dann sofort folgende Meldung auf:

2013-05-10 10_07_05-(Entwurf) Formular1 [Schreibgeschützt] - Microsoft InfoPath

Ich habe mit [JA] geantwortet, was die Felder korrekt aktualisiert hat. Was bei [Nein] genau passiert, kann ich nicht sagen.
Anschließend kann man die primäre Datenquelle überprüfen und wird die neue URL sehen. Auch das Deployment funktioniert dann gegen das Zielsystem.

Cheers,
Christian

Leave a reply