close

September 2017

FormularmanagementScripting, PowerShellSharePoint 2013SharePoint 2016

InfoPath Formulare automatisiert austauschen

beitragsbild-source-code-scripting-coding-terminal

Wie ja mittlerweile so gut wie alle wissen wurde InfoPath von Microsoft abgekündigt. Und auch wenn der Support noch für einige Jahre seitens Microsoft sichergestellt ist, machen sich unsere Kunden Gedanken zu alternativen Formularlösungen für SharePoint.

Eine Möglichkeit InfoPath Formulare und deren Logik abzulösen ist z.B. Nintex Forms. Nachdem man das Nintex Formular fertig erstellt und mit allen Funktionen des bisherigen InfoPath Formulars versehen hat, reichen ein paar Klicks um das neue Formular zu exportieren und auf eine Liste zu übertragen. Das geht über die GUI sehr schnell und komfortabel.

Was aber wenn man es mit einem Projektportal mit hunderten Projekten zu tun hat? Wobei jedes Projekt eine Site darstellt in der eine Liste mit einem InfoPath Formular existiert? Sicher, man kann die hunderten Formulare manuell umstellen, was aber sicher ein paar Tage dauern wird und fehleranfällig ist.

Eleganter ist es das Austauschen mittels PowerShell zu erledigen. Der erste Schritt dazu ist das alte InfoPath Formular zu deaktivieren und zu löschen. Ansonsten kann man gerne ein anderes Formular zuweisen, aber SharePoint wird noch immer versuchen InfoPath zu öffnen.

Wir haben dazu ein Script erstellt das grob beschrieben folgende Schritte erledigt:

  1. Es durchläuft alle Sub Sites einer Start Site die frei angegeben werden kann.
  2. In jeder Sub Site sucht es nach einer bestimmten Liste. In diesem Beispiel „Tasks“.
  3. Innerhalb der Liste wird ein bestimmter Content Type gesucht.
  4. Wurde dieser Content Type gefunden wird das zugehörige InfoPath Formular deaktiviert und auf das SharePoint Standard Formular zurückgestellt.
  5. WICHTIG: Danach müssen auch alle Formular URLs zurückgesetzt werden, sonst wird nach wie vor nach den .aspx Files für InfoPath gesucht (z.B. editifs.aspx)
  6. Im Anschluss werden alle nicht mehr benötigten Dateien aus dem Ordner des Content Types entfernt. Dieser Schritt ist nicht unbedingt nötig, aber man will ja keine Karteileichen herumliegen haben 😉 ?
  7. Zuletzt nicht vergessen den Content Type und die Liste zu aktualisieren.

Und hier das fertige Script:

Code downloaden

Danach kann man mit der automatisierten Verteilung der neuen Formulare (z.B. Nintex) starten. Hoffe dieser kurze PowerShell Ausflug konnte weiterhelfen. Wer Fragen zu dem Thema hat kann uns natürlich gerne kontaktieren 🙂 .

mehr lesen