cool IT Team-Blog

Attachment-Links in SharePoint 2013 Workflow - E-Mail anzeigen

Die Ausgangsbasis für diese Anforderung ist also eine Liste, deren Elemente per E-Mail an eine bestimmte Benutzergruppe geschickt werden sollen, um eine Aufgabe zu erfüllen. Damit diese Benutzer sich bequem alle notwendigen Infos holen können, sollen die den Listenelementen angehängten Attachments als Links ins E-Mail eingefügt werden.

SharePoint Workflow initiieren

Es muss also zuerst der SharePoint Designer für die Liste geöffnet werden. Als nächsten Schritt wählen Sie den Menüpunkt Workflows (links in der Navigation) und dann im Menüband Listenworkflow. Wählen Sie im Dropdown Menü die gewünschte Liste aus.

Sie erhalten folgenden Dialog:

CreateListWorkflow.JPG

Wählen Sie hier bitte SharePoint 2013 Workflow aus. Es kann sein, dass der beschriebene Prozess auch mit SharePoint 2010 Workflows funktioniert, ich habe es aber nicht ausprobiert.

Wie schon eingangs erwähnt erfolgt das Einfügen der Attachment-Links über einen Aufruf an ein REST-Service. Zu diesem Zweck müssen der Request-Header und der Service-URL vorbereitet werden. Danach wird das Service aufgerufen und das Ergebnis (wieder ein Wörterbuch) wird analysiert und per Schleife ins Mail eingefügt.

Request Header erzeugen


Wählen Sie aus dem Aktionsmenü den Eintrag Wörterbuch erstellen. Definieren Sie zwei Variablen für dieses Wörterbuch:




Speichern Sie das Wörterbuch in die Variable getHeader.

Service URL festlegen

Als nächsten Schritt fügen Sie eine Aktion Workflowvariable festlegen ein. Benennen Sie diese Variable mit WebserviceURL. Legen Sie den Wert wie folgt fest:

WebserviceURL.JPG
Ersetzen Sie die Werte in eckigen Klammern durch entsprechende Lookups.

Aufrufen des Webservice


Nun können Sie das Webservice aufrufen, indem Sie eine Aktion vom Typ HTTP-Webdienst Aufrufen einfügen.

Konfigurieren Sie den Aufruf wie folgt (Dialog erreichbar über rechte Maustaste / Properties):
  • Address: Variable WebserviceURL
  • RequestHeaders: getHeaders
  • ResponseContent: getResponseBody (neue Variable)
  • ResponseCode: responseCode (neue Variable, optional)

Ergebnis abholen

Die nächsten Schritte sind an sich nicht kompliziert, sind aber einige. Deshalb hier ein Screenshot über die Sammlung der für das Ergebnis-Holen notwendigen Steps. Die dahinter stehende Logik ist folgende:

Das Resultat des Webservice-Calls ist ein XML-File, das hierarchisch aufgebaut ist. Abgebildet auf SharePoint-Designer ergeben sich daraus ineinander verschachtelte Wörterbücher. In einer Schleife werden die Attachment-Links abgeholt und in a-Tags geschrieben. Natürlich muss auch darauf geachtet werden, dass das Dictionary nicht leer ist - es kann ja auch Listenelemente ohne Attachments geben.

Der eigentliche Hyperlink sieht so aus:
Attachments-URL.JPG
Ersetzen Sie wieder die eckigen Klammern durch entsprechende Lookups.

Und der gesamte Step besteht aus folgenden Aktionen:

ErgebnisAbholen.JPG

In E-Mail einsetzen


Der letzte Schritt besteht nun aus dem eigentlichen E-Mail. Logischerweise benötigen wir nun die Aktion E-Mail senden. Klicken Sie auf diese Benutzer, um auf die Detailmaske zu gelangen.

Im E-Mail-Text können Sie nun folgende Passage einfügen (eckige Klammern sind wiederum zu ersetzen):

Zu dieser Information verfügbare Anlagen ([%Variable: Anzahl%])
[%Variable: Attachments%]


Fertig ist die Chose.

Conclusio

Zugegebenermaßen ist das nicht das einfachste Szenario und leicht verwunderlich, dass das der SharePoint nicht kann. Dritt-Komponenten setzen ihre Pferde natürlich auf solche Lücken in den OnBoard-Szenarien. Aber mit ein bisschen Klicken kann man hier sehr viel machen, ganz ohne Code.

Wenn man ein bisschen weiter recherchiert, kann man durch Webservice-Calls eine Menge erreichen. Man kann ja nicht nur die Attachments, sondern auch alle anderen Eigenschaften abfragen und beliebig verarbeiten ...


Ist doch cool, oder?

LG,
Sabine.
Verfasst: 13.12.2014 23:33:16 von Sabine Stiller

1


Kommentare
Für diesen Blogbeitrag liegen zurzeit keine Kommentare vor.
Einen Kommentar schreiben



 Security code