Nintex: Website aus einer Liste heraus erstellen

Ich möchte in diesem Beitrag in kurzen Worten und Screenshots zeigen, wie man mit Nintex Workflow 2010 sehr schnell eine Lösung basteln kann, mit der man aus einer Benutzerdefinierten Liste kontrolliert Webseiten erstellen kann. Die Beschreibungen und Funktionsdarstellungen sind bewusst einfach gehalten.

 

Wichtig: Hierbei soll es sich nicht um eine perfekte und elegante Lösung handeln, vielmehr soll diese Anleitung ausdrücklich auch kleine Umwege gehen, um die Möglichkeiten von Nintex zu zeigen. Auch sind ein paar Logikbrüche festzustellen. Dies ist aber ausdrücklich beabsichtigt.

Der “Disclaimer” soll aber jetzt nicht bedeuten, dass Kritik oder Anregungen unerwünscht sind. Nur zu!

Neben der Beschreibung der einzelnen Workflowschritte und –aktionen findet ihr auch ein paar Tipps und Informationen über Besonderheiten in Nintex Workflow 2010.

Anwendungsszenario

Eine Firma möchte ihren Mitarbeitern einen Projektbereich anbieten, in dem die Mitarbeiter selber Projekte in eine Liste eintragen und – ohne eigentlich das Recht zum Anlegen von Websites zu haben – Websites mit einem festgelegten Design und definierten Berechtigungen anlegen können. Es soll ihnen aber auch möglich sein, erstmal eine Art Ideensammlung aufzubauen, ohne dass eine Website erstellt wird, oder andere den Listeneintrag sehen können.

 

Vorgestellte Funktionen

An dieser Stelle sollen kurz einige, in diesem Workflow benutzten, Aktionen vorgestellt werden. Genauere und sehr umfangreiche Beschreibungen findet ihr in dem Handbuch zu Nintex Workflow 2010.

Bedingung festlegen

Mit einer Bedingung kann man abhängig von einer Prüfung auf einen Status unterschiedliche Handlungszweige ansteuern:


Abbildung 2 Bedingung festlegen

Abbildung 2 Bedingung festlegen

Abbildung 3 Bedingungszweige

Abbildung 3 Bedingungszweige

Variablen definieren

Jeder Workflow kann Variablen beinhalten, in denen man Werte speichern und später abrufen bzw. verwenden kann:

Abbildung 4 Workflowvariablen

Abbildung 4 Workflowvariablen

Ihr könnt beim Erstellen einer Variablen festlegen, von welchem Typ sie ist, ob sie einen Standardwert haben soll und ob sie auf dem Startformular des Workflows angezeigt werden soll:

Abbildung 5 Variable erstellen

Abbildung 5 Variable erstellen

Website erstellen

Mit einem Nintex-Workflow könnt ihr aus dem Workflow heraus, eine Website anlegen. In der Aktion habt ihr umfangreiche Einstellungsmöglichkeiten, leider aber auch gewisse Grenzen, so lassen sich zum Beispiel nur sehr grobe Rechte auf eine Site setzen (Besitzer aber keine weiteren; diese muss man dann z.B. über einen Web-Service setzen).

 

Elementberechtigungen setzen

Mit dieser Aktion könnt ihr bei dem aktuellen aber auch bei anderen Elementen Rechte setzen:

Abbildung 6 Elementberechtigungen setzen

Abbildung 6 Elementberechtigungen setzen

 

Element aktualisieren

Um den Wert des aktuellen Elements oder weiterer Elemente zu aktualisieren – also zum Beispiel den Wert einer Spalte zu setzen – nehmt ihr die Aktion Element aktualisieren. Hier könnt ihr festlegen, bei welchem Element welches Feld mit welchem Wert aktualisiert werden soll. Die Werte können „hart“ hinterlegte Einträge aber auch Variablen oder Werte aus anderen Feldern sein:

Abbildung 7 Element aktualisieren

Abbildung 7 Element aktualisieren

 

 

Architektur:

Liste Projekte

Lege eine neue Benutzerdefinierte Liste mit folgenden Spalten an:

  • Titel (Standardspalte, Text)
  • Projektleiter (Personen oder Gruppe)
  • Weitere Projektteilnehmer (Personen oder Gruppe, Mehrfachauswahl)
  • Kurzbeschreibung (Mehrere Textzeilen)
  • Status (Auswahl, Werte: Idee, Projekt, Archiviert)
  • Website (Hyperlink oder Bild, URL formatieren als Hyperlink)

 

TIPP: Definiere die Spalten, die in Ihrem Workflow abgefragt werden und für weitere Aktionen verantwortlich sind, als „erforderlich“; ansonsten kann es zu Fehler oder im Leerlauf befindlichen Workflows kommen.

 

Rechte

Ihre Mitarbeiter benötigen nur mitwirkende Rechte; auch wenn sie im weiteren Verlauf theoretisch weitergehende Rechte bräuchten, um eine Website anzulegen, so sind diese konkret nicht nötig .

 

Der Workflow

Im Folgenden soll der Workflow beschrieben werden. Hierfür werden zuerst die allgemeinen Workfloweinstellungen vorgestellt, bevor es dann in die Beschreibung der Einzelschritte geht.

 

Allgemeine Einstellungen

Der Workflow soll automatisch starten, wenn ein neues Listenelement angelegt wurde; des Weiteren soll er auch laufen, wenn der Eintrag modifiziert wird (zum Beispiel um nachträglich eine Website für dieses Projekt anlegen zu lassen). Hierfür gehe im Workflowdesigner in der Ribbonbar auf den Menüpunkt Workflow-Einstellungen. Hier setze die beiden Startoptionen (neue Elemente und Elemente bearbeitet) auf „Wahr“:

Abbildung 8 Workflow-Einstellungen

Abbildung 8 Workflow-Einstellungen

 

TIPP: Trage in den Titel einen sprechenden und eindeutigen Workflowtitel ein. Der Titel eines Workflows darf auf einer Website nur einmal genutzt werden.

TIPP: Trage eine umfangreiche Beschreibung des Workflows ein. Diese Beschreibung wird dem Benutzer u.a. beim händischen Starten und im Workflowverlauf angezeigt. Er sollte dem Anwender verdeutlichen, was der Workflow genau macht. Auch ist eine genaue Beschreibung hilfreich, wenn du oder dein Nachfolger nach Jahren den Workflow mal wieder anpassen musst.

 

Workflowvariablen

Im Folgenden sollen die Variablen beschrieben werden, die für den Workflow benötigt werden.

Websiteberechtigte

In dieser Variablen werden im Workflowverlauf die Kennungen per Zeichenverkettung eingetragen, die auf die Website berechtigt sein sollen.

Typ: Eine Textzeile

Abbildung 9 Variable Websiteberechtigte

Abbildung 9 Variable Websiteberechtigte

Website-URL

In dieser Variablen wird im Workflowverlauf die URL der neuerstellten Website gespeichert und zu einem späteren Zeitpunkt in die Spalte Website eingetragen.

Typ: Eine Textzeile

Abbildung 10 Variable Website-URL

Abbildung 10 Variable Website-URL

 

Workflowstufen

Im Folgenden sollen die einzelnen Workflowabschnitte erläutert werden.

Abschnitt „Projektleiter“

Als erstes wird das Feld Projektleiter geprüft (Info: Der Benutzer kann beim Anlegen des Listeneintrags das Feld leer lassen, dies soll so interpretiert werden, dass er der Projektleiter ist. Nur wenn der seltene Fall eintritt, dass er den Eintrag für einen anderen vornimmt, muss er das Feld füllen.).

TIPP: Sinnvoll wäre hier eine Vorbelegung des Feldes mit Wert des angemeldeten Benutzers. Dies geht u.a. über die Anpassung des Formulars mit InfoPath (Stichwort UserProfileService)

Hierfür wird eine Bedingung eingefügt, die auf den Inhalt des Feldes Projektleiter geht. Ist das Feld leer, wird mit der Aktion Element aktualisieren der Initiator des Datensatzes eingetragen („Projektleiter“ Gleich Workflowkontext „Initiator“):

Abbildung 11 Bedingung Projektleiter

Abbildung 11 Bedingung Projektleiter

 

Ist das Feld gefüllt, die Bedingung also falsch, geschieht nichts (also im Bedingungszweig für „Falsch“).

Abbildung 12 Interpretation des Feldes Projektleiter

Abbildung 12 Interpretation des Feldes Projektleiter

 

Als nächsten Schritt setze den Wert der Variablen Websiteberechtigte mit dem Wert aus der Spalte Projektleiter:

Abbildung 13 Variable Websiteberechtige initial füllen

Abbildung 13 Variable Websiteberechtige initial füllen

TIPP: Dieser Schritt geschieht am besten außerhalb der Bedingung, da er sonst zweimal eingefügt werden müsste; einmal im Wahr-Zweig und einmal Falsch-Zweig.

Abbildung 14 Websiteberechtige nach Bedingung setzen

Abbildung 14 Websiteberechtige nach Bedingung setzen

 

Abschnitt „Website erstellen“

Im Folgenden soll der eigentlich Prozess zum Anlegen der Website beschrieben werden. Folgende Aktionen bzw. Einstellungen sollen hier geschehen:

– Grundsätzlich sollen die Mitarbeiter mittels eines Workflows in der Lage sein, eine Website anzulegen, obwohl sie im SharePoint keine Rechte haben.

– Die Website soll einer definierten Vorlage entsprechen.

– Initial sollen die Rechte auf die Website gesetzt werden.

– In der Projektliste soll es einen Link auf die Website geben.

– Sollte sich der Eintrag im Ideenstatus befinden, so soll es nur für den Ersteller und die von ihm angegebenen Benutzer sichtbar sein.

– Es muss gewährleistet sein, dass – wenn es schon eine Website zu diesem Projekt gibt – keine weitere angelegt wird.

– Auch muss sichergestellt werden, dass die URL der neuen Website eindeutig ist.

 

Als erstes muss überprüft werden, ob es schon eine Website für dieses Projekt gibt. Dies könnte man umgehen, wenn man den Workflow so einrichtet, dass er nur beim Erstellen eines Elements startet; aber dann müsste man einen weiteren Workflow einrichten, der alle Aktionen beinhaltet, die bei der Modifikation eines bestehenden Elements startet.

Hier nutzen wir eine Bedingung, die überprüft, ob die Spalte Website leer ist. Im weiteren Verlauf wird es eine Aktion geben, die die Spalte Website mit der URL der erstellten Website füllt, ist also das Feld leer, ist die Website bis jetzt noch nicht erstellt worden:

Abbildung 15 Bedingung Website

Abbildung 15 Bedingung “Website”

Da aber der Mitarbeiter ja auch einen Listeneintrag ohne Website erstellen können soll (also eine Art „Idee“ für ein Projekt), muss noch auf die Spalte Status geprüft werden. Ist diese auf „Projekt“ gesetzt, soll per Definition eine Website miterstellt werden.

 

Abbildung 16 Mehrfachbedingung mit UND

Abbildung 16 Mehrfachbedingung mit UND

 

TIPP: Wenn die Mitarbeiter keine Rechte haben, im SharePoint auf dieser Ebene eine Website anzulegen, müssen Sie die Bedingung so konfigurieren, dass sie im Kontext des Workflowersteller durchläuft. Hierfür gehen Sie in die Einstellung der Bedingung und setzen den Haken unter Als Workflowbesitzer ausführen.

 

Treffen also beide Bedingungen zu (es gibt noch keine Website UND es handelt sich bei dem Eintrag um ein Projekt), so geht es in den Wahr-Zweig.

Hier wird wieder eine Aktion vom Typ Variable setzen eingefügt, in der jetzt neben dem Projektleiter auch die weiteren Projektteilnehmer in die Variable Websiteberechtigte eingetragen werden.

Erst jetzt wird eine Aktion vom Typ Website erstellen eingefügt. Als Titel wird der Titel des Listeneintrags und als Beschreibung wird die Kurze Beschreibung aus dem Listenelement eingetragen. In das Feld Websitebesitzer wird die Variabel Websiteberechtigte eingetragen.

TIPP: Es ist leider nicht möglich, eine granularere Berechtigung an dieser Stelle festzulegen. Es bleibt nur die Möglichkeit, die Websitebesitzer zu definieren, oder die Rechte aus der Website darüber zu übernehmen. Weitere Rechte lassen sich dann im weiteren Verlauf z.B. über einen Webservice setzen.

Danach muss festgelegt werden, an welchem „Knoten“ die Webseiten zukünftig angelegt werden sollen; dies kann kann per Auswahldialog oder durch die Eingabe der URL geschehen. Um zu gewährleisten, dass die URL der neuen Webseite eindeutig also noch nicht in Verwendung ist, nehmen wir die ID des Listenelements. Diese kann nur einmal genutzt werden und wird vom System gesetzt. Jetzt haben wir die Möglichkeit, eine Vorlage auszuwählen, die bei der Erstellung der Website genutzt wird. Die nächsten drei Optionen betreffen das Erscheinungsbild der neuen Website in der Navigation.

In dem Menüpunkt URL speichern in tragen wir jetzt die Variable Website-URL ein; auf diese müssen wir in einem späteren Schritt zugreifen.

Abbildung 17 Konfiguration Website erstellen

Abbildung 17 Konfiguration Website erstellen

TIPP: Der Wert in URL speichern in ist nicht der absolute Pfad zu der neuen Website sondern die relative URL von der Start-Website.

Nachdem wir die Aktion konfiguriert und gespeichert haben, setzen wir noch mal explizit das Recht für den Listeneintrag. Da es sich ja jetzt um ein Projekt handelt, dass jeder Listenberechtigte sehen darf, soll das Element die Rechte der Liste erben. Hierfür wählen wir die Aktion Elementberechtigungen setzen aus und belassen die Standardeinstellungen (erbt die Rechte der Liste):

Abbildung 18 Listenelementberechtigung setzen

Abbildung 18 Listenelementberechtigung setzen

Jetzt muss in die Spalte Website die URL der neuen Website gespeichert werden. Dies hat zum einen natürlich informativen Charakter, zum anderen haben wir in der Bedingung ja definiert, dass eine Website angelegt werden soll, wenn 1. Status = Projekt und 2. die Spalte Website leer ist. Füllen wir die Spalte also mit der URL, weiß der Workflow, dass er nicht in den Wahr-Zweig sondern in den Falsch-Zweig gehen soll. Hierfür wählen wir die Aktion Element aktualisieren aus, die wir wie folgt konfigurieren:

Aktualsieren: Aktuelles Element; Feld: Website Gleich Wert

Wie oben beschriebenmuss vor der Variablen Website-URL der Pfad zu der Root-Website „hart“ hinterlegt werden: <URL zu der Wesite><Website-URL>

Abbildung 19 Setzen der WebsiteURL

Abbildung 19 Setzen der WebsiteURL

Ablaufdarstellung:

Abbildung 20 Ablauf Wahr-Zweig

Abbildung 20 Ablauf Wahr-Zweig

 

Abschnitt Website existiert schon bzw ist nicht gewünscht

Wenn die Bedingungen zum Erstellen der Website nicht gegeben sind, gibt es jetzt zwei neue Alternativen:

– Eine korrespondierende Website existiert bereits.

– Eine Website ist aktuell nicht gewünscht.

Um dies abzuprüfen, wird eine Bedingung in den Falsch-Zweig eingefügt, die prüft, ob „Website“ leer ist. Fällt die Prüfung negativ aus (also die Spalte ist gefüllt), so endet der Workflow an dieser Stelle. Um ein sauberes Ende zu definieren wird die Aktion Workflow beenden eingefügt.

TIPP: In den Nintex-Aktionen gibt es zwei Elemente mit der Bezeichnung Workflow beenden:

Abbildung 21 Workflow beenden

Abbildung 21 Workflow beenden

Die erste Aktion beendet den aktuellen Workflow, die zweite alle außer dem aktuellen Workflow.

TIPP: Man sollte die erste Aktion mit dem Namen “Workflow beenden” immer dann nutzen, wenn der Workflow an dieser Stelle zuende ist. Das hört sich zugegeben trivial an, kann aber bei komplexen Workflows dazu führen, dass man sich wundert, warum der Workflow weiterläuft, obwohl er eigentlich an einer bestimmten Stelle beendet worden sein müsste.

 

Fällt die Prüfung positiv aus, so handelt es sich um eine Idee. In diesem Fall sollen die Rechte auf das Element so gesetzt werden, dass nur der Initiator es sehen kann. Hierfür fügen wir eine Aktion Elementberechtigungen setzen ein.

In den Einstellungen definieren wir als erstes, dass das Element die Rechte nicht erben und der Workflow die bestehenden Rechte entfernen soll. Unter dem Punkt Benutzerberechtigungen geben wir dem Initiator Vollzugriff.

Abbildung 22 Elementberechtigungen setzen auf Vollzugriff für Initiator

Abbildung 22 Elementberechtigungen setzen auf Vollzugriff für Initiator

Ablaufdarstellung:

Abbildung 23 Ablauf Falsch-Zweig

Abbildung 23 Ablauf Falsch-Zweig

Alternativ ließe sich hier auch eine Prüfung auf das Feld Status machen.

 

 

Workflow-Schema

 

Abbildung 24 Schematischer Ablauf I

Abbildung 24 Schematischer Ablauf I

Abbildung 25 Schematischer Ablauf II

Abbildung 25 Schematischer Ablauf II

 

Abbildung 26 Schematischer Ablauf III

Abbildung 26 Schematischer Ablauf III

 

 

  1 comment for “Nintex: Website aus einer Liste heraus erstellen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.