Serie: Workflows mit SharePoint Designer (Teil 4): Subwebs anlegen mit Webservices und Designer Workflows
Im vierten Teil unserer Serie „Workflows im SharePoint Designer“ zeigen wir, wie man mit einem Webservice in SharePoint Designer 2013 ein neues Subweb erstellt. Wenn man das Prinzip erst einmal verstanden hat, kann man so auch andere Webservices nutzen für Aktionen, die mit SharePoint Designer eigentlich nicht möglich sind.
Grundlagen Webservices mit dem SharePoint Designer
Um einen Webservice in SharePoint Designer verwenden zu können, müssen folgende Voraussetzungen erfüllt sein:
- Die Dienstanwendung Benutzerprofildienst (User Profil Service) muss installiert, korrekt konfiguriert und die Person, die den Workflow ausführt, muss in diesen synchronisiert sein. Ist dies nicht der Fall, erhalten Sie beim Ausführen des Workflows den Fehler, dass der Zugriff verweigert wurde. Natürlich muss auch der Service als solcher laufen.
- Der App Management Service muss laufen und die dazugehörige Dienstanwendung muss erstellt sein.
- Der Benutzer, der den Workflow veröffentlicht, muss mindestens Full Control für die Website besitzen, auf die der Workflow veröffentlicht wird. Natürlich kann er auch Site Collection Administrator sein.
Übersicht Workflow-Serie:
- Workflows erstellen mit dem SharePoint Designer – die Grundlagen (1)
- Workflows mit dem SharePoint Designer: – Beispiel Genehmigungs-Workflow (2)
- Workflows mit dem SharePoint Designer: So ermittelt man den höchsten Wert aus einer Spalte (3)
- Workflows mit SharePoint Designer (4): Subweb anlegen mit Webservices und Designer Workflows
In diesem Workflow verwenden wir eine Aktion, die Sie bisher vermutlich nicht so oft verwendet haben: Die Aktion Wörterbuch erstellen (Create Dictionary). Ein Wörterbuch ist im Wesentlichen eine Tabelle, die Variablen speichert. Benötigt wird dies, da ein Webservice beim Aufrufen verschiedene Parameter benötigt. In unserem Fall zum Beispiel, welche Vorlage das neue Subweb haben soll, wo es sich befinden soll, wie es heißen soll und so weiter. Außerdem benötigt ein HTTP(S)-Aufruf auch noch Parameter. Diese Werte/Parameter werden in einem Wörterbuch gesammelt und dann dem Aufruf mit übergeben.
Es ist auch durchaus üblich, dass ein Wörterbuch in ein weiters Wörterbuch verschachtelt ist. Ein Webservice liefert seine Ergebnisse auch in der Regel in Form eines Wörterbuchs zurück. Mit der entsprechenden SharePoint-Designer-Aktion können Sie es auslesen. Interessant für etwas versiertere Nutzer wäre noch, dass man Werte in JSON übergeben und Werte als solche zurückerhalten kann.
Workflow entwickeln: Start mit Variablen
Zunächst erstellen Sie einen neuen 2013er Workflow im SharePoint Designer. Dafür benötigen Sie als erstes ein paar Variablen, die man per Klick auf Lokale Variablen oben rechts erstellt. Das können folgende Variablen mit folgender Bedeutung sein:
Variablen | Bedeutung | Typ |
---|---|---|
RequestURL | Die URL, die den Webservice aufruft. Die ist typischerweise das aktuelle Web zzgl. der URL des Webservices. In unserem Fall ist die URL des Webservice /_api/web/webinfos/add. Beispiel: httpS://mandant.sharepoint.com/sites/Team1/_api/web/webinfos/add | Zeichenfolge |
Title | Der Titel des neuen Subwebs | Zeichenfolge |
Description | Die Beschreibung des neuen Subwebs. | Zeichenfolge |
SiteURL | Die URL des neuen Subwebs | Zeichenfolge |
SiteTemplate | Die Vorlage des neuen Subwebs. Eine Teamsite ist STS#0. | Zeichenfolge |
Language | Die Sprache des neuen Subwebs. Für Ihre Sprach-ID siehe hier: https://msdn.microsoft.com/en-us/library/ms912047(v=winembedded.10).aspx | Zahl |
UseUniquePermissions | Soll das Subweb eigene Berechtigung haben? In unserem Fall ist der Wert Nein/No | Bool |
Fügen Sie die Aktion Workflowvariable festlegen mehrmals hinzu und konfigurieren Sie diese entsprechend.
Fügen Sie anschließend vier Mal die Aktion Wörterbuch erstellen ein. Konfigurieren Sie die Aktionen wie unten gezeigt. Die Tabellen enthalten dabei die Variablen innerhalb der Wörterbücher. Sie müssen dafür noch vier Variablen mit dem Typ Wörterbuch erstellen. Die Namen der Variablen innerhalb der Wörterbücher müssen mit den unten gezeigten identisch sein. Wie Sie auf die schon vorhandenen Variablen zugreifen können, wurde in den vorherigen Artikeln erläutert.
Wörterbuch requestHeaders
Name | Typ | Wert |
Accept | Zeichenfolge | application/json;odata=verbose |
Content-Type | Zeichenfolge | application/json;odata=verbose |
Wörterbuch metadata
Name | Typ | Wert |
Type | Zeichenfolge | SP.WebInfoCreationInformation |
Wörterbuch parameters
Name | Typ | Wert |
__metadata | Wörterbuch | Variable: metadata |
Url | Zeichenfolge | Variable: SiteURL |
Title | Zeichenfolge | Variable: Title |
Description | Zeichenfolge | Variable: Description |
Language | Zeichenfolge | Variable:Language |
WebTemplate | Zeichenfolge | Variable: SiteTemplate |
UseUniquePermissions | Bool | Variable :UseUniquePermissions |
Wörterbuch requestDictionary
Name | Typ | Wert |
parameters | Wörterbuch | Variable:parameters |
Fügen Sie jetzt die Aktion HTTP Webdienst aufrufen hinzu.
Klicken Sie auf dieses und konfigurieren Sie die Aktion wie unten gezeigt.
Klicken Sie auf Anforderung und wählen Sie Variable:requestDictionary aus. Zeigen Sie anschließend auf die Aktion, klicken auf das DropDown und wählen Eigenschaften.
Im Feld RequestHeaders wählen Sie Variable:requestHeaders und bestätigen das mit OK.
Fertigstellen: Den Workflow berechtigen
Der Workflow ist damit im Prinzip fertig, wenn Sie diesen aber ausführen werden Sie eine Zugriff verweigert Meldung erhalten. Der Grund dafür ist, dass Sie den Workflow erst noch entsprechend berechtigen müssen. Dazu muss die Aktion HTTP Webdienst aufrufen in einem App Schritt ausgeführt werden. Sie finden diesen App Schritt in der Gruppe Einfügen im Menüband. Diese Aktion ist allerdings mit einiger Wahrscheinlichkeit ausgegraut.
Ein letzter Umweg: Den App-Schritt erst aktivieren
Damit Sie dies nutzen können, sind weitere Schritt notwendig, nachdem der Workflow mind. einmal veröffentlicht wurde. Der folgende Artikel beschreibt das Vorgehen sehr anschaulich: https://docs.microsoft.com/de-de/sharepoint/dev/general-development/create-a-workflow-with-elevated-permissions-by-using-the-sharepoint-workflo
Starten Sie danach den SharePoint Designer neu und öffnen Sie erneut den Workflow. Nachdem Sie die Aktion in den App-Schritt eingefügt und neu veröffentlicht haben, sollte dieser auch ohne Probleme funktionieren.
(Dieser Beitrag ist auch auf nicothiemer.de erschienen.)
- Serie Workflows mit SharePoint Designer (Teil 5): Genehmigungen mit mehr als zwei Auswahlmöglichkeiten erstellen - 10. Oktober 2018
- Serie: Workflows mit SharePoint Designer (Teil 4): Subwebs anlegen mit Webservices und Designer Workflows - 31. Juli 2018
- Serie: Workflows mit dem SharePoint Designer (Teil 3): So ermittelt man den höchsten Wert aus einer Spalte - 28. Mai 2018