SharePoint 2013 Website mit benutzerdefiniertem WebTemplate per Workflow erstellen

Artistic EndeavourMein Kollege Herr Weichert erklärte in seinem letzten Blogbeitrag, wie mit einfachen Bordmitteln ein WebTemplate im SharePoint 365 per Workflow zu deployen ist. Dabei setzte das Szenario jedoch voraus, dass der Workflow an einer bestimmten Liste hängt und bei jedem neu hinzugefügten Item ausgelöst wird. Das funktioniert mit Standard-Templates, wie der Teamwebsite, sehr gut. Im Workflow wird einfach „STS#0“ als WebTemplate angegeben. Nun haben selbst angelegte WebTemplates keinen solch einfach strukturierten Template-Namen. Was muss ich also angeben, sodass anstatt der Teamsite meine eigens erstellte Vorlage genutzt wird?

Im SharePoint Designer hat man in der entsprechenden Variable „WebTemplate“ verschiedene Typen zur Auswahl:

–          Boolesch

–          Datum/Uhrzeit

–          Ganze Zahl

–          GUID

–          Wörterbuch

–          Zahl

–          Zeichenfolge

Für die Teamseite nutzten wir den Typ „Zeichenfolge“. Für unsere eigene Vorlage schien der Typ GUID vorerst prädestiniert. Spontan fiel uns die SolutionID aus der Manifest.xml ein. Wenn man diese allerdings einträgt, wird man arg enttäuscht. Es wird keine Subsite angelegt.

Die Lösung ist relativ simpel. Wenn man sich die Zeichenfolge „STS#0“ anschaut, scheint diese Struktur nicht willkürlich. Das Gros der Leser erkennt natürlich, dass das der Standardwert von Microsoft für eine Teamseite ist. Die Werte sind auch relativ schnell mit den IE Developer Tools auffindbar: in der Selektionsbox beim Erstellen der Unterseite als „value“ des entsprechenden Eintrags. Weiterhin tauchen dann in den anderen Auswahlmöglichkeiten auch Dinge auf wie „BLOG#0“ oder „COMMUNITY#0“. Einige von euch werden wissen, worauf es hinausläuft.

Scrennshot1

Im Reiter „Benutzerdefiniert“ befindet sich unsere eigene Vorlage. Mit den IE Developer Tools markiere ich den Eintrag und es wird mir eine relativ kryptische Zeichenkette angezeigt, die im Wesentlichen folgendes Format hat:

–          {GUID}#[TEMPLATENAME]

Ein Beispiel sieht wie folgt aus:

–          {71F841A7-F471-4043-8DC7-FB26D64D0F25}#MyWebTemplate

Achtung: Diese Guid entspricht nicht der SolutionID! Das ist die FeatureID, mit der die Vorlage ausgerollt wurde. Diese ID ist also auch beim Ausrollen auf einer anderen SiteCollection in jedem Fall identisch.

Scrennshot2

Wenn wir diese Zeichenkette als Wert im SharePoint Designer eintragen und den Workflow erneut starten: Voilà. Unser eigenes Template bekommt seine Oberfläche per Workflow.

screenshot4Die FeatureID kann man schlussendlich auf zwei Wege herausfinden. Zum einen ist es möglich, diese einfach im Feature abzulesen, wenn es sich um eine selbsterstellte Lösung handelt. Sollte das nicht der Fall sein, kann man einen aus SharePoint 2010 bekannten Umweg gehen, indem man auf „Deaktivieren“ des jeweiligen Features klickt. In der Adressleiste des Browsers taucht eine URL auf, die die ID des Features enthält. Der Eintrag hinter dem Doppelkreuz definiert dann nur noch das eigentliche Template.

Autor: Henrik Krumbholz

PT_XING_HKrumbholz_jpg

 

Hinterlasse eine Antwort