Serie: Workflows mit SharePoint Designer (Teil 4): Subwebs anlegen mit Webservices und Designer Workflows

SharePoint DesignerIm 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.

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:

VariablenBedeutungTyp
RequestURLDie 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
TitleDer Titel des neuen SubwebsZeichenfolge
DescriptionDie Beschreibung des neuen Subwebs.Zeichenfolge
SiteURLDie URL des neuen SubwebsZeichenfolge
SiteTemplateDie Vorlage des neuen Subwebs. Eine Teamsite ist STS#0.Zeichenfolge
LanguageDie Sprache des neuen Subwebs. Für Ihre Sprach-ID siehe hier: https://msdn.microsoft.com/en-us/library/ms912047(v=winembedded.10).aspxZahl
UseUniquePermissionsSoll das Subweb eigene Berechtigung haben? In unserem Fall ist der Wert Nein/NoBool

Fügen Sie die Aktion Workflowvariable festlegen mehrmals hinzu und konfigurieren Sie diese entsprechend.

clip_image002

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.

clip_image004

Klicken Sie auf dieses und konfigurieren Sie die Aktion wie unten gezeigt.

clip_image005

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.

clip_image006

Im Feld RequestHeaders wählen Sie Variable:requestHeaders und bestätigen das mit OK.

clip_image007

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.

clip_image008

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.

clip_image010
(Dieser Beitrag ist auch auf nicothiemer.de erschienen.)