Als Beispiel erstellen wir einen Workflow, der nach einer Klassifizierung einer Wikiseite fragt. Basierend auf der Klassifizierung des Dokuments sendet der Workflow entweder eine E-Mail an die Rechtsabteilung oder es fügt zuerst einen kurzen Eintrag in einer Wiki-Seite ein und sendet dann die E-Mail an die Rechtsabteilung.
== Anleitung zum Erstellen eines benutzerdefinierten Workflows ==
Zusätzlich zu den eingebauten Workflows können Benutzer ihre eigenen Workflows im Wiki erstellen. Die Funktionalität der Workflows basiert auf den derzeit implementierten Workflow-Elementen. Beachten Sie, dass derzeit nicht alle Elemente des [[wikipedia:Business_Process_Model_and_Notation|BPMN-Standards]] von der Workflows-Erweiterung unterstützt werden.
Der beschriebene Workflow besteht aus vier Aktivitäten und einem Gateway. Sie können im Wiki ein BPMN-Diagramm erstellen, um den Prozess zu visualisieren:
=== Schritte zum Erstellen eines benutzerdefinierten Workflows ===
# '''Definieren''' des erforderlichen Workflows mit den notwendigen Schritten und Aktivitäten
Um den Workflow zu erstellen, sind folgende Schritte notwendig:
# '''Erstellen''' einer Seite mit der Erweiterung <code>.bpmn</code>. Idealerweise wird diese Seite im MediaWiki-Namensraum erstellt, um die Bearbeitungsrechte auf Wiki-Administratoren zu beschränken.
# '''Bearbeiten''' Sie die Seite im Modus Diagramm bearbeiten oder klicken Sie auf das Stiftsymbol.[[File:WF_edit_diagram.png|verweis=https://en.wiki5.bluespice.com/wiki/File:WF_edit_diagram.png|alternativtext=Edit menu with selected option "Edit diagram"|zentriert|mini|200x200px|Bearbeiten Menü ]]
# '''Fügen''' Sie ein ''Startereignis'', Aktivitäten, Gateways (optional) und ein ''Endereignis'' hinzu. Die folgenden BPMN-Elemente werden unterstützt:
#* '''Ereignisse''': Start- und Endereignis
#* '''Gateways''': derzeit sind nur parallele Gateways möglich
#* '''Aktivitäten''': BlueSpice hat einen eigenen Satz von Aktivitäten. [[Handbuch:Erweiterung/Workflows/Activities|Siehe die vollständige Liste]].
#* Darüber hinaus können Sie den Workflow an eine bestimmte Seitenrevision binden. (Dies ist z. B. für Genehmigungsworkflows erforderlich).
# '''Speichern''' Sie das BPMN-Diagramm.
# Sollen beim Starten eines Workflows Daten gesammelt werden, die in der Workflow-Ausführung berücksicht werden müssen, dann wird zusätzlich eine Formularseite mit der Erweiterung <code>.form</code> angelegt.
# '''Fügen''' Sie einen [[Handbuch:Erweiterung/Workflows/Triggers|Workflow-Auslöser]] hinzu.
# '''Testen''' Sie den Workflow: Der Workflow ist nun im Wiki verfügbar. Sie sollten testen, ob die folgenden Funktionen verfügbar sind:
#* Der Workflow kann in den im Workflow-Auslöser definierten Namensräumen gestartet werden (falls es hier Einschränkungen gibt).
#* Der Workflow wird ausgelöst.
#* Der Workflow ist in der Übersichtsseite der Workflows aufgelistet.
#* Der zugeordnete Benutzer hat eine Aufgabe erhalten.
#* Der Workflow wird in allen möglichen Szenarien korrekt abgeschlossen (im Falle von Gateways).
== Beispiel 1 (einfach): Unterschrift auf einer Seite einholen ==
# '''Initiierungsformular''' erstellen und mit dem Workflow verbinden. Das Formular fügt einige Informationen zum Workflow hinzu, bevor die Workflow-Aufgabe erstellt wird: <code>MediaWiki:ContentClassificationInit.form</code>
Zur Einführung sehen wir uns einen einfachen Worfklow an:
# '''Klassifizierungsformular''' erstellen und mit dem Workflow verbinden. Das Formular ermöglicht es dem zugewiesenen Benutzer, das Dokument zu klassifizieren: <code>MediaWiki:ContentClassificationRequest.form</code>
# Hinzufügen eines Auslösers, der definiert, wo und wie der Workflow gestartet werden soll.
==Anleitung==
Nach Fertigstellung einer Seite (z.B. eines Protokolls) wird die Unterschrift des Abteilungsleiters John Doe eingefordert.
===Workflow-Definition erstellen===
[[Datei:WfE BPMN Unterschrift.png|zentriert|mini|500x500px|alternativtext=BPMN-Diagramm mit zwei Schritten|erforderliche Workflow-Schritte]]Wir benötigen eine Workflow-Definition mit zwei Workflow-Aktivitäten:
Zuerst erstellen wir die Seite <code>MediaWiki:Classification-workflow.bpmn</code> mit einfachem Stub-XML. Jeder Workflow benötigt diese Elemente:
* Zeile 1: Der XML-Prolog
# '''User feeback (request signature):''' John Doe erhält eine Feedback-Aufgabe. Eine Feedback-Aufgabe fügt der Seite einen Banner hinzu. Um die Aufgabe abzuschließen, gibt John Doe sein Feedback ab (zum Beispiel: "zur Kenntnis genommen").[[Datei:WF User feedback Banner.png|alternativtext=Banner with action link |zentriert|mini|750x750px|Workflow Banner]]
* Zeile 2: Das "definitions"-Element, das die xml-Namespaces bezeichnet, in denen die Workflow-Elemente definiert sind.
# '''Edit wiki page (add signature):''' Nach Abschluss der Feedback-Aufgabe fügt der Workflow der Seite automatisch die Wiki-Unterschrift von J. Doe hinzu.[[Datei:Unterschrift John Doe.png|alternativtext=Wiki Unterschrift mit Name und Zeitstempel|zentriert|mini|Eingefügte Unterschrift|280x280px]]
* Zeile3: Das "process"-Element, das alle anderen Elemente enthält.
* Zeile 5: Der Workflow läuft im Kontext einer bestimmten Überarbeitung einer Wiki-Seite.
* Zeile 11: Der Workflow benötigt ein startEvent und
#'''Klicken''' Sie auf die Neu-Schaltfläche des Wikis und geben Sie den Seitennamen mit der Erweiterung <code>.bpmn</code> ein, z.B. <code>Unterschrift.bpmn</code>. [[Datei:WfE Seite erstellen.png|alternativtext=Textfeld zur Erstellung der Seite Unterschrift.bpmn|zentriert|mini|350x350px|Seite über die "Neu"-Schaltfläche erstellen]]
# '''Klicken''' Sie auf ''Fertig''.
# '''Öffnen''' Sie die Seite im Bearbeitungs-Modus. Das Diagramm zeigt bereits die Start-Aktivität an.
# '''Fügen''' Sie die Aktivität ''User feedback'' hinzu.[[Datei:WfE select User feedback .png|alternativtext=Ausschnitt der Editorleiste|zentriert|mini|192x192px|Aktivität "User feedback" ]]
## '''Öffnen''' Sie das Dialogfeld für die Aktivität (über Doppel-Klick) und geben Sie den Namen der Aktivität ein (z.B. "request signature" oder "Signatur anfordern"),
## '''Fügen''' Sie den Benutzernamen sowie eine Anweisung hinzu (z.B. "Sign this page" oder "Seite unterschreiben")[[Datei:WfE Dialogfeld User feedback.png|alternativtext=Dialogfenster mit Beispielwerten aus den beschriebenen Schritten|zentriert|mini|450x450px|Dialogfenster für Aktivität "User feedback"]]
## '''Klicken''' Sie auf ''Speichern''.
## '''Verbinden''' Sie das ''StartEvent'' mit der Aktivität ''User feedback''.
# '''Fügen''' Sie die Aktivität ''Edit wiki page'' hinzu und verbinden Sie es mit der vorhergehenden Aktivität.[[Datei:WfE select Edit wiki page.png|alternativtext=Ausschnitt der Editorleiste|zentriert|mini|Aktivität "Edit wiki page" ]]
## '''Öffnen''' Sie das Dialogfeld für die Aktivität (über Doppel-Klick) und geben Sie den Namen der Aktivität ein (z.B. "add signature" oder "Seite unterschreiben"),
## '''Geben''' Sie die Seite an, auf der die Unterschrift hinzugefügt werden soll. Im Normalfall ist das die Seite, auf der der Workflow ausgelöst wird. Hierfür verwenden Sie als Platzhalter das [[mediawikiwiki:Help:Magic_words/de#Seitennamen|Magische Wort]] <code><nowiki>{{FULLPAGENAME}}</nowiki></code>.
## '''Geben''' Sie den Benutzernamen für die Unterschrift an. (Hinweis: Im nächsten Beispiel sehen wir, wie der Benutzername beim Auslösen des Workflows über ein Formular eingegeben werden kann, aber in diesem Beispiel geben wir der Einfachheit halber den Namen direkt im Workflow ein, da immer dieselbe Person unterschreibt).
## '''Geben''' Sie als Inhalt (Content) vier Tilden ein. Diese erzeugen [[mediawikiwiki:Help:Signatures/de|im Wiki automatisch die Unterschrift]] des angegebenen Benutzers.
## '''Markieren''' Sie die Änderung (also das Einfügen der Unterschrift auf der Seite) als kleine Änderung ([[mediawikiwiki:Help:Minor_edit|Minor revision]]), wenn sie keine Benachrichtigung oder Anzeige als letzte Änderung auf Übersichtsseiten im Wiki auslösen soll.
## '''Wählen''' Sie als Bearbeitungsmodus (Edit mode) ''Append''. Dies fügt die Unterschrift am Ende der Seite ein. [[Datei:WfE dialog for "Edit wiki page".png|alternativtext=Dialogfenster mit Beispielwerten aus den beschriebenen Schritten|zentriert|mini|450x450px|Dialogfenster für Aktivität "Edit wiki page"]]
## '''Klicken''' Sie auf ''Speichern''.
## '''Verbinden''' Sie die Aktivität ''User feedback'' mit der Aktivität ''Edit wiki page''.
# '''Fügen''' Sie ein ''EndEvent'' hinzu und verbinden Sie es mit der vorhergehenden Aktivität.[[Datei:WfE End event.png|alternativtext=Ausschnitt aus der Workflow-Editorleiste mit dem Menüpunkt EndEvent|zentriert|mini|EndEvent ]]
# '''Speichern''' Sie die Seite.
<bpmn:endEvent id="TheEnd">
Der Workflow sollte nun so aussehen:[[Datei:WfE BPMN Unterschrift.png|zentriert|mini|500x500px|alternativtext=BPMN-Diagramm mit zwei Schritten|Fertiger Workflow]]Der Workflow kann nun im Wiki genutzt werden.
Als nächsten Schritt aktivieren wir den Workflow im Wiki.
</bpmn:definitions>
=== Workflow-Auslöser erstellen ===
</syntaxhighlight>Dieses Stub-XML enthält nur die Ereignisse "Start" und "Ende", einschließlich - noch zu definierender - "ausgehender" und "eingehender" Flussreferenzen.
Damit der Workflow nun auf einer Seite genutzt werden kann, müssen wir noch einen Auslöser anlegen:
====Erstellen und verbinden des Initiierungs-Formulars====
Das Initiierungsformular ermöglicht die Interaktion mit dem Benutzer, der den Workflow startet. Es erklärt, was passiert, wenn der Workflow gestartet wird, und ermöglicht das Hinzufügen eines Kommentars, um einen Kontext für die Benutzeraufgabe bereitzustellen.
Wir erstellen es hier im MediaWiki-Namensraum, um sicherzustellen, dass nicht jeder Benutzer das Formular später bearbeiten kann. Aber generell können solche Formulare überall im Wiki erstellt werden.
So erstellen Sie das Initiierungsformular:
# '''Klicken''' Sie auf ''Globale Aktionen > Workflow-Triggers''.
# '''Klicken''' Sie auf ''Neuen Auslöser hinzufügen''.
# '''Wählen''' Sie ''Manuell'' als Typ aus.[[Datei:wFe Trigger hinzufügen.png|alternativtext=Dialogfenster zur Auswahl des Trigger-Typs|zentriert|mini|550x550px|Manuellen Workflow-Auslöser erstellen]]
# '''Richten''' Sie den Workflow-Auslöser ein:
## '''Geben''' Sie den Namen ein, so wie im Workflow-Menü auf der Seite angezeigt werden soll.
## '''Geben''' Sie eine kurze Beschreibung ein, so wie sie im Workflow-Menü auf der Seite angezeigt werden soll (optional).
## '''Wählen''' Sie den Workflow ''Unterschrift'' als zu startenden Workflow aus.
## '''Geben''' Sie als Bedingung an, in welchen Namensräumen der Workflow zur Verfügung stehen soll (optional). Wenn keine Bedingung angegeben wird, steht der Workflow automatisch in allen Inhaltsnamensräumen zur Verfügung. [[Datei:WfE Trigger einrichten.png|alternativtext=Dialogfenster mit den Parametern für den Workflow "Unterschrift"|zentriert|mini|550x550px|Auslöser einrichten]]
# '''Erstellen''' Sie die Seite <code>MediaWiki:ContentClassificationInit.form</code>
=== Workflow anwenden ===
# '''Fügen''' Sie die folgende Formulardefinition im Quellbearbeitungsmodus '''ein''':<syntaxhighlight lang="json">
Der Workflow durchläuft folgende Schritte:
{
"lang": "json",
"form_name": "ContentClassificationInit",
"items": [
{
"name": "intro",
"widget_label": "Klicken Sie \"Fertig\", um die Klassifizierung des Dokuments anzufordern. Sie können hier einen Kommentar an die zuständige Person mitgeben",
"type": "label"
},
{
"name": "comment",
"label": "Comment",
"noLayout": true,
"showOn": [
"create",
"edit",
"view"
],
"editableOn": [
"create",
"edit"
],
"type": "textarea"
}
]
}
</syntaxhighlight>
# '''Workflow starten:''' Benutzer mit Bearbeitungsrechten im Wiki können nun den Workflow starten, um eine Unterschrift von J. Doe einzufordern. Hierzu wird der Workflow zum Beispiel auf einer Protokollseite über den entsprechenden Menüpunkt ausgelöst. [[Datei:Wf starten.png|alternativtext=Dialogfenster zum Starten des Workflows "Unterschrift einholen"|zentriert|mini|500x500px|Workflow starten]]Es erscheint ein Startdialog. Da es in unserem hier kein hinterlegtes Formular zur Dateneingabe gibt, kann der Dialog mit ''Fertig'' abgeschlossen werden.[[Datei:Wf starten ohne Formular.png|alternativtext=automatischer Startdialog|zentriert|mini|450x450px|Workflow starten]]Der zugewiesene Benutzer J. Doe erhält eine Email und es erscheint eine Aufgabe in seinem Benutzermenü im Wiki.
#'''Save''' the page.
# '''Workflow-Aufgabe ausführen''': J. Doe überprüft die Seite und führt über den blauen Banner seine zugewiesene Feedback-Aufgabe aus. [[Datei:WF User feedback Banner.png|alternativtext=Banner with action link |zentriert|mini|750x750px|Workflow Banner]]
# '''Unterschrift wird zur Seite hinzugefügt:''' Die Wiki-Unterschrift wird automatisch an das Ende des Seiteninhalts angehängt.[[Datei:Unterschrift John Doe.png|alternativtext=Wiki Unterschrift mit Name und Zeitstempel|zentriert|mini|Eingefügte Unterschrift|280x280px]]
Als nächstes geben wir im BPMN mit der folgenden '''userTask''' mit, das Formular anzuzeigen:<syntaxhighlight lang="xml">
== Beispiel 2 (fortgeschritten): Klassifizierung einer Wikiseite ==
</syntaxhighlight>Schauen wir uns an, was das bewirkt:
=== Workflow definieren ===
Angenommen, wir möchten einen Workflow erstellen, der die Klassifizierung einer Wikiseite abfragt.
* <code>Id</code> und <code>name</code> dieser Aktivität sind auf „InitializeWorkflow“ und „Start Content Classification Workflow“ festgelegt. Beide Werte müssen nicht übereinstimmen, tun dies aber normalerweise.
Basierend auf der Klassifizierung des Dokuments sendet er entweder eine E-Mail an ein Mitglied der Rechtsabteilung oder fügt zunächst einen Klassifizierungseintrag auf einer Wikiseite hinzu nd sendet die E-Mail anschließend an die Rechtsabteilung.
* <wf:type> ist ''custom_form'' und teilt dem Workflow mit, dass ein Formular direkt im Wiki (im Gegensatz zu einem im Code befindlichen Formular) verfügbar ist.
* <wf:form> zeigt auf die eigentliche Formularseite im Wiki
* <wf:initializer> ist auf ''true'' gesetzt, da es verwendet wird, um einige Informationen anzuzeigen oder zu sammeln, bevor der eigentliche Workflow beginnt.
Am Ende haben wir die eingehenden und ausgehenden Ströme referenziert. (Hinweis: Die Reihenfolge der Elemente spielt normalerweise keine Rolle; nur die Verschachtelung ist wichtig).
Der beschriebene Workflow besteht aus vier Aktivitäten und einem Gateway.
Wir fügen diese '''userTask''' in Zeile 16 nach der Zeile ''<bpmn:sequenceFlow id="FromTheStartToInitializeWorkflow" sourceRef="TheStart" targetRef="InitializeWorkflow" />'' hinzu:<syntaxhighlight lang="xml" line="1">
=== Erforderliche Workflow-Komponenten ===
<?xml version="1.0" encoding="UTF-8"?>
Um den Workflow zu erstellen, sind folgende Schritte erforderlich:
#Erstellen Sie ein '''Initiierungsformular''', das vor dem Senden der Aufgabe einige Informationen zum Workflow hinzufügt: <br /><code>MediaWiki:InhaltsklassifizierungInit.form</code>
<bpmn:extensionElements>
#Erstellen Sie ein '''Klassifizierungsformular''', mit dem der zugewiesene Benutzer das Dokument klassifizieren kann: <br /> <code>MediaWiki:Inhaltsklassifizierung.form</code>
<wf:context>
#Erstellen Sie die '''Wiki-Seite''' <code>Meldungen Klasse B</code>, die Vorfälle der Klasse B erfasst.
<wf:contextItem name="pageId"/>
#Fügen Sie dem Wiki einen '''Workflow'''-'''Trigger''' hinzu, der definiert, wo und wie der Workflow gestartet werden soll.
* '''Fügen Sie''' Ihrem Diagramm die folgenden Formen hinzu (fahren Sie mit der Maus über die Symbole in der Werkzeugleiste, um die Namen der einzelnen BPMN-Elemente anzuzeigen).
* '''Verbinden''' Sie jedes Element mit einem Pfeil.
* '''Klicken Sie''' auf jede Form, um die erforderlichen Informationen einzugeben:
# Ein ''Benutzerdefiniertes Formular'' zum Starten des Workflows.
## ''Name:'' <code>Initiierungsformular</code>
## ''Formulartyp:'' <code>On-wiki-Form</code>
## ''Titel des Formulars:'' <code>MediaWiki:InhaltsklassifizierungInit.form</code>
## ''Verwendung als Initialisierer:'' <code>Ja</code>
# Ein weiteres ''Benutzerdefiniertes Formular'' zur Klassifizierung der Seite, auf der der Workflow ausgeführt wird.
### ''Laufzeit:'' <code><nowiki>{{#time:YmdHis|jetzt + 7 Tage}}</nowiki></code>[[Datei:wfe klassifizierungsformular.png|alternativtext=Element-Inspektor mit Beispieleinstellungen|zentriert|mini|450x450px|Klassifizierungsformular]]''Klassifizierung''Sehen wir diese Aktivität genauer an. Sie verfügt neben der Formularreferenz über einige zusätzliche Eigenschaften:
###*'''zugewiesener Benutzer:''' Die Eigenschaft <code>zugewiesener_Benutzer</code> ist obligatorisch, da die Workflow-Engine wissen muss, welcher Benutzer abgefragt werden soll. In diesem Fall verwenden wir Wikitext-Magie, um den zugewiesenen Benutzer aus dem Kontext zu berechnen. Der Wert besteht aus einer Kombination aus einer Wikitext-Variablen und einer Parserfunktion (diese Parserfunktion wird von der Semantic MediaWiki-Erweiterung definiert, die hier als Abhängigkeit betrachtet werden kann). Die Parserfunktion <code><nowiki>{{#show}}</nowiki></code> versucht, einen Benutzernamen aus einer semantischen Eigenschaft abzurufen, die auf der Seite, auf der der Workflow gestartet wird, gesetzt sein kann oder nicht. Falls keine passenden Informationen gefunden werden, wird auf <code>WikiSysop</code> zurückgegriffen (vorausgesetzt, ein solcher Benutzer ist im Wiki vorhanden). Die Variable <code><nowiki>{{ROOTPAGENAME}}</nowiki></code> ermöglicht es, den Namespace „Benutzer“ zu entfernen, wenn der gesuchte Wert beispielsweise <code>Benutzer:JaneDoe</code> statt nur <code>JaneDoe</code> lautet.
###*'''Laufzeit:''' Die Eigenschaft <code>Laufzeit</code> ist ebenfalls obligatorisch. Alle benutzerbezogenen Aktivitäten benötigen ein Fälligkeitsdatum. Ist die laufende Aktivität überfällig, beendet die Workflow-Engine den Workflow. In diesem Fall implementieren wir das Konzept von „Liegetagen“, da wir kein absolutes Fälligkeitsdatum haben, sondern dieses ab dem Zeitpunkt des Aktivitätsstarts mithilfe der Parserfunktion <code><nowiki>{{#time}}</nowiki></code> berechnen.
###*'''Klassifizierung:''' Die Eigenschaft <code>Klassifizierung</code> ist zufällig. Sie muss angegeben werden, damit das Formular sie festlegen und der Workflow-Kontext darauf zugreifen kann. Wir hätten einen Standardwert angeben können, möchten ihn aber leer lassen.
# Ein Gateway, das die Klassifizierungsauswahl des Benutzers verarbeitet.
## Name: <code>Inhaltsklassifizierung.Klassifizierung</code> (Hinweis: Der Name muss mit dem Namen des Formulars und seiner Eigenschaft übereinstimmen, die im vorherigen Schritt ausgewertet wurde.)
## Name des Konnektors zur Aktivität „E-Mail senden“: <code>Klasse_A</code>
## Name des Konnektors zur Aktivität „Klasse B erfassen“: Klasse_<code>B</code>
# Eine Aktivität „E-Mail senden“ nach der Klassifizierungsauswahl „Klasse_A“.
## Name: <code>E-Mail senden</code>
## Eigenschaften:
### Empfänger: <code>legal@mycompany.com</code> (ersetzen Sie die E-Mail-Adresse, die benachrichtigt werden soll)
### Text: <code><nowiki>{{{Inhaltsklassifizierung.Zugewiesener_Benutzer}}}</nowiki> hat die Seite <nowiki>[[{{FULLPAGENAME}}]]</nowiki> als "<nowiki>{{{Inhaltsklassifizierung.Klassifizierung}}}</nowiki>" klassifiziert.</code>[[Datei:wfe email senden DE.png|alternativtext=Element-Inspektor E-Mail senden mit Beispielwerten|zentriert|mini|450x450px|Aktivität "E-mail senden"]]
# Eine Aktivität „Wiki-Seite bearbeiten“ nach der Klassifizierung „Klasse B“ Auswahl. Verknüpfen Sie es mit der Aktivität „E-Mail senden“ aus Schritt 5.
## ''Name'': <code>Datensatz Klasse B</code>
## ''Zu bearbeitende Wiki-Seite'': <code>Datensätze der Klasse B</code> (Titel der Wiki-Seite, der der Inhalt vorangestellt wird)
## ''Benutzer'': <code><nowiki>{{ROOTPAGENAME:{{#show:{{FULLPAGENAME}}|?Verantwortlich|link=none|default=WikiSysop}}}}</nowiki></code> (Benutzer, der im Versionsverlauf der angehängten Wiki-Seite angezeigt wird)
## ''Inhalt'': <code>*<nowiki>[[{{FULLPAGENAME}}]]</nowiki> wurde von <nowiki>[[Benutzer:{{{Inhaltsklassifizierung.Zugewiesener_Benutzer}}}}]]</nowiki> als <nowiki>{{{Inhaltsklassifizierung.Klassifizierung}}}</nowiki> klassifziert.</code> (Text, der der Wiki-Seite hinzugefügt wird)
## ''Kleine Änderung'': Sie können die Standardeinstellung beibehalten oder diese Einstellung deaktivieren. Kleine Änderungen lösen in der Regel keine Benachrichtigungen aus, wenn Wiki-Benutzer „Bearbeitungsereignisse“ abonniert haben (allgemeine Informationen zu kleineren Änderungen finden Sie unter [[mediawikiwiki:Help:Minor_edit|mediawiki.org]]).
## ''Bearbeitungsmodus'': <code>Voranstellen</code> (im Gegensatz zur Optioin ''Anhängen'' werden die Einträge auf der Seite ''Datensätze der Klasse B'' in absteigender Reihenfolge angezeigt).
# '''Fügen''' Sie das Endereignis nach der Aktivität ''E-Mail senden'' '''hinzu'''.
Das Startformular ermöglicht die Interaktion mit dem Benutzer, der den Workflow startet. Es erklärt, was beim Start des Workflows passiert, und ermöglicht das Hinzufügen eines Kommentars, um Kontext zur Benutzeraufgabe zu liefern.
#'''Erstellen''' Sie die Seite <code>MediaWiki:InhaltsklassifizierungInit.form</code>. Der Formulareditor öffnet sich.
#'''Klicken''' Sie auf ''Formularelemente > ...Anderes'' und ziehen Sie ein Element ''Label'' in den Bearbeitungsbereich.[[Datei:wfe InhaltsklassifizierungsInit form.png|alternativtext=Formulareditor mit neuem Label-Element|zentriert|mini|550x550px|Formular "InhaltsklassifizierungInit" ]]
#'''Klicken''' Sie auf eine beliebige Stelle auf das Label-Element im Bearbeitungsbereich, um den Element-Inspektor zu öffnen. Fügen Sie Folgendes hinzu:
##''Name:'' intro
##''Beschriftung:'' Klicken Sie auf "Start", um eine Person mit Fachkenntnissen um eine Einstufung zu bitten. Sie können unten eine Anweisung hinterlassen.
#'''Wechseln''' Sie von ''... Anderes'' zu ''Eingaben'' und fügen Sie ein ''Textbereich''-Element hinzu. Ziehen Sie es unter das Intro-Feld. Fügen Sie Folgendes hinzu:
##''Name:'' kommentar
##''Beschriftung:'' Kommentar
#'''Speichern''' Sie das Formular.
</bpmn:definitions>
=== Klassifizierungsformular erstellen ===
</syntaxhighlight>
Nun benötigen wir ein Formular, mit dem der zugewiesene Benutzer während der Workflow-Ausführung eine Klassifizierung auswählen kann.
====Erstellen und Verbinden des Klassifizierungsformulars====
Der Workflow zeigt einem Benutzer ein Klassifizierungsformular an. Dieser Benutzer wird in einem späteren Schritt im Workflow definiert.
So erstellen Sie das Klassifizierungsformular:
'''So erstellen Sie das Klassifizierungsformular:'''
#'''Erstellen''' Sie die Seite <code>MediaWiki:Inhaltsklassifizierung.form</code> .
#'''Wählen''' Sie den Eingabetyp ''Dropdown'' aus und ziehen Sie ihn in den Bearbeitungsbereich.
#'''Klicken''' Sie irgendwo in die Zeile des hinzugefügten Elements, um den Element-Inspektor zu öffnen. Fügen Sie Folgendes hinzu:
##''Name:'' Klassifizierung
##''Beschriftung:'' Klassifizierung[[Datei:wfe klassifizierungsformular DE.png|alternativtext=Formulareditor mit Klassifzierungs-Feld|zentriert|mini|650x650px|Klassifizierungsformular]]
#'''Wechseln''' Sie im Element-Inspektor zu den Optionen. Fügen Sie Folgendes hinzu:
##''Daten:'' Klasse_A (der Datenname muss mit der Konnektorbezeichnung des Gateways in der BPMN-Workflow-Definition übereinstimmen).
##''Beschriftung (Label):'' Klasse A
#'''Klicken''' Sie im Reiter Optionen auf ''Option hinzufügen'':
##''Daten:'' Klasse B (der Datenname muss mit der Konnektorbezeichnung des Gateways in der BPMN-Workflowdefinition übereinstimmen).
##''Beschriftung (Label):'' Klasse B
#'''Speichern''' Sie das Formular.
[[Datei:wfe klassifzierungsform optionen.png|alternativtext=Element-Inspektor mit den definierten Optionen|zentriert|mini|650x650px|Klassifizierungsoptionen]]
# '''Erstellen''' Sie die Seite <code>MediaWiki:ContentClassificationRequest.form</code>
=== Wiki-Seite „Meldungen Klasse B“ erstellen ===
# '''Fügen''' Sie die folgende Formulardefinition im Quellbearbeitungsmodus ein:
Da wir den Workflow anweisen, alle als Klasse B klassifizierten Seiten aufzuzeichnen, müssen wir sicherstellen, dass diese Seite im Wiki vorhanden ist. Daher erstellen wir einfach die Seite ''Klasse B-Datensätze'' und speichern sie leer. Da wir in der Workflow-Definition festgelegt haben, dass alle Vorfälle der Klasse B dieser Seite vorangestellt hinzugefügt werden, ist es nicht sinnvoll, dieser Seite weitere Inhalte hinzuzufügen.
<syntaxhighlight lang="json">
{
"lang": "json",
"form_name": "ContentClassificationRequest",
"items": [
{
"name": "intro",
"widget_label": "Überprüfen Sie das Dokument und wählen Sie die passende Klassifizierung für dieses Dokument aus",
"type": "label"
},
{
"name": "classification",
"label": "Classification",
"required": true,
"options": [
{
"data": "CLSA",
"label": "Class A"
},
{
"data": "CLSB",
"label": "Class B"
}
],
"type": "dropdown",
"widget_$overlay": true
}
]
}
</syntaxhighlight>Als Nächstes weisen wir im BPMN an, das Formular dem Benutzer anzuzeigen, der die Workflow-Aufgabe erhält. Dafür fügen wir eine '''userTask'''-Aktivität hinzu:<syntaxhighlight lang="xml">
</syntaxhighlight>Sehen wir uns diesen Abschnitt genau an. Diese ''userTask'' hat neben der Formularreferenz zum Klassifizierungsformular (vergleiche hierzu das Initiierungsformular) einige zusätzliche Eigenschaften:
* '''assigned user''': Das Attribut <code>assigned user</code> ist obligatorisch, da die Workflow-Engine wissen muss, welcher Benutzer abgefragt werden soll. In diesem Fall verwenden wir etwas Wikitext-Funktionalität, um den zugewiesenen Benutzer aus dem Kontext zu berechnen. Der Wert besteht aus einer Kombination aus einer Wikitext-Variablen und einer Parserfunktion (diese spezielle Parserfunktion wird von der Semantic MediaWiki-Erweiterung definiert, die hier als Abhängigkeit angesehen werden kann). Die Parserfunktion <code><nowiki>{{#show}}</nowiki></code> versucht, einen Benutzernamen aus einer semantischen Eigenschaft zu erhalten, die auf der Seite, auf der der Workflow gestartet wird, festgelegt sein kann oder nicht. Wenn die Funktion keine richtigen Informationen findet, greift sie auf <code>TheBoss</code> zurück (vorausgesetzt, dass ein solcher Benutzer im Wiki existiert). Die <code><nowiki>{{ROOTPAGENAME}}</nowiki></code>-Variable ist nur eine einfache Möglichkeit, den "Benutzer"-Namensraum zu entfernen, wenn der gesuchte Wert so etwas wie <code>Benutzer:JaneDoe</code> statt nur <code>JaneDoe</code> war.
Wir haben nun alle Elemente, um den Workflow zu starten. Wir können nun hierfür auch den benötigten Workflow-Trigger definieren.
* '''due date:''' Das Attribut <code>due_date</code> ist ebenfalls obligatorisch. Alle benutzerseitigen Aktivitäten benötigen ein Fälligkeitsdatum. Wenn die laufende Aktivität überfällig ist, beendet die Workflow-Engine den Workflow. In diesem Fall implementieren wir ein Konzept von "Ruhetagen", da wir kein absolutes Fälligkeitsdatum haben, sondern es ab dem Zeitpunkt berechnen, an dem die Aktivität mit der Parserfunktion <code><nowiki>{{#time}}</nowiki></code> beginnt.
* '''classification''': Das Klassifizierungsattribut ist zufällig. Es muss angegeben werden, damit das Formular es festlegen und der Workflow-Kontext darauf zugreifen kann. Wir hätten einen Standardwert angeben können, aber wir möchten ihn leer lassen.
Am Ende haben wir die eingehenden und ausgehenden Flüsse referenziert. (Hinweis: Die Reihenfolge der Elemente spielt normalerweise keine Rolle; nur die Verschachtelung ist wichtig).
=== Workflow-Auslöser erstellen ===
====Der Gateway====
Damit der Workflow im Wiki angezeigt wird, müssen wir einen Trigger definieren:
Jetzt können wir mit dem Hinzufügen des Gateways fortfahren. Der Gateway stellt die beiden erforderlichen Pfade bereit:
#'''Klicken''' Sie im Menü ''Globale Aktionen'' auf ''Workflow-Trigger''.
#'''Klicken''' Sie auf ''Neuen Auslöser hinzufügen''.
#'''Wählen''' Sie im Dropdown-Menü die Option „Manuell“.
#'''Klicken''' Sie auf ''Fortfahren''.
#'''Definieren''' Sie die Einstellungen für den Workflow-Trigger:
#*''Name:'' <code>Klassifizierung</code> (Name, der im Workflow-Auswahlmenü angezeigt wird)
#*''Beschreibung:'' <code>Klassifiziert ein Dokument als Klasse A oder Klasse B</code> (Erläuterung der Funktion dieses Workflows)
#* ''Anfangsdaten für den Workflow'' (optional): Standardkommentarvorschlag. Sie können dieses Feld leer lassen.
#*''Bedingungen'' (optional)'':'' Sie können auswählen, in welchen Namensräumen der Workflow zur Auswahl angezeigt wird. Wenn kein Namensraum angegeben ist, kann der Workflow in allen Namenesräumen ausgelöst werden.
#'''Klicken Sie auf''' ''Speichern''.
<span><br /></span>Ihr Workflow ist nun bereit zum Testen.
=== Workflow testen ===
Sie sollten testen, ob die folgenden Funktionen verfügbar sind:
*Der Workflow kann in den im Workflow-Trigger definierten Namensräumen gestartet werden (sofern hier Einschränkungen bestehen).
*Der Workflow wird ausgelöst.
*Der Workflow wird in der Workflows-Übersicht (Spezial:Workflows_overview) angezeigt.
*Der zugewiesene Benutzer hat eine Aufgabe erhalten.
*Der Workflow wird in Fall A und B korrekt abgeschlossen.
# Wenn der zugewiesene Benutzer das Dokument als Klasse A (CLSA) klassifiziert hat, wird eine E-Mail an die Rechtsabteilung gesendet.
# Wenn der zugewiesene Benutzer das Dokument als Klasse B (CLSB) klassifiziert hat, wird vor dem Senden der E-Mail zusäthlich eine Wiki-Seite mit dem in der Aufgabe „AppendWikipage“ definierten Inhalt angehängt.
Für Fall 2 möchten wir, dass der Workflow zuerst die vorhandene Seite ''Classification_incidents'' mit dem in der ''content''-Eigenschaft angezeigten Text anhängt.
Diese Anforderung kann mit dem Aktivitätstyp ''edit_page'' erfüllt werden:<syntaxhighlight lang="xml">
Damit der Workflow im Wiki erscheint, müssen wir einen Trigger definieren:
# '''Klicken''' Sie im Menü ''Globale Aktionen'' '''auf''' ''Workflow-Triggers''.
# '''Klicken''' Sie '''auf''' ''Neuen Trigger hinzufügen''.
# '''Wählen''' Sie die Option ''Manuell'' aus dem ''Dropdown-Menü''.
# '''Klicken''' Sie '''auf''' ''Weiter''.
# '''Definieren''' Sie die Einstellungen für den Workflow-Trigger:
#* ''Name:'' Name, der im Workflow-Auswahlmenü angezeigt wird.
#* ''Beschreibung'': Erläuterung der Funktion und Besonderheiten dieses Triggers.
#* ''Zu startender Workflow'': Durch diesen Trigger ausgelöster Workflow. In unserem Fall <span style="color: rgb(37, 37, 37)">''Classificiation-workflow.''</span>
#* ''Anfangsdaten für den Workflow (optional)'': - Standard-Kommentarvorschlag.
#* '''Bedingungen''' (optional): In welchen Namensräumen der Workflow zur Auswahl angezeigt wird.
# '''Klicken''' Sie '''auf''' Speichern.
Ihr Workflow kann jetzt getestet werden.
==Workflow testen==
Der Workflow ist jetzt im Wiki verfügbar. Wir können nun testen, ob die folgende Funktionalität verfügbar ist:
* Der Workflow steht in den im Workflow-Trigger definierten Namensräumens zum Starten zur Verfügung (sofern hier Einschränkungen bestehen).
* Der Worklfow wird ausgelöst.
* Der Workflow wird auf der Seite „Workflows Übersicht“ aufgelistet.
* Der zugewiesene Benutzer hat eine Aufgabe erhalten.
* Der Workflow wird in Fall A und B korrekt abgeschlossen.
==Bpmn.io nutzen, um Workflows zu definieren==
Ein solches Diagramm kann mit dem kostenlosen Dienst [https://bpmn.io/ bpmn.io] erstellt werden. Die [[Medium:Handbuch:Workflows-tutorial-raw-de.bpmn.xml|resultierende BPMN-Datei]] muss allerdings modifiziert werden, bevor sie tatsächlich importiert und im Wiki verwendet werden kann.
Zusätzlich zu den eingebauten Workflows können Benutzer ihre eigenen Workflows im Wiki erstellen. Die Funktionalität der Workflows basiert auf den derzeit implementierten Workflow-Elementen. Beachten Sie, dass derzeit nicht alle Elemente des BPMN-Standards von der Workflows-Erweiterung unterstützt werden.
Definieren des erforderlichen Workflows mit den notwendigen Schritten und Aktivitäten
Erstellen einer Seite mit der Erweiterung .bpmn. Idealerweise wird diese Seite im MediaWiki-Namensraum erstellt, um die Bearbeitungsrechte auf Wiki-Administratoren zu beschränken.
Bearbeiten Sie die Seite im Modus Diagramm bearbeiten oder klicken Sie auf das Stiftsymbol.Bearbeiten Menü
Fügen Sie ein Startereignis, Aktivitäten, Gateways (optional) und ein Endereignis hinzu. Die folgenden BPMN-Elemente werden unterstützt:
Ereignisse: Start- und Endereignis
Gateways: derzeit sind nur parallele Gateways möglich
Darüber hinaus können Sie den Workflow an eine bestimmte Seitenrevision binden. (Dies ist z. B. für Genehmigungsworkflows erforderlich).
Speichern Sie das BPMN-Diagramm.
Sollen beim Starten eines Workflows Daten gesammelt werden, die in der Workflow-Ausführung berücksicht werden müssen, dann wird zusätzlich eine Formularseite mit der Erweiterung .form angelegt.
Zur Einführung sehen wir uns einen einfachen Worfklow an:
Nach Fertigstellung einer Seite (z.B. eines Protokolls) wird die Unterschrift des Abteilungsleiters John Doe eingefordert.
erforderliche Workflow-Schritte
Wir benötigen eine Workflow-Definition mit zwei Workflow-Aktivitäten:
User feeback (request signature): John Doe erhält eine Feedback-Aufgabe. Eine Feedback-Aufgabe fügt der Seite einen Banner hinzu. Um die Aufgabe abzuschließen, gibt John Doe sein Feedback ab (zum Beispiel: "zur Kenntnis genommen").Workflow Banner
Edit wiki page (add signature): Nach Abschluss der Feedback-Aufgabe fügt der Workflow der Seite automatisch die Wiki-Unterschrift von J. Doe hinzu.Eingefügte Unterschrift
Hierzu erstellen wir eine Seite mit der Erweiterung .bpmn:
Klicken Sie auf die Neu-Schaltfläche des Wikis und geben Sie den Seitennamen mit der Erweiterung .bpmn ein, z.B. Unterschrift.bpmn. Seite über die "Neu"-Schaltfläche erstellen
Klicken Sie auf Fertig.
Öffnen Sie die Seite im Bearbeitungs-Modus. Das Diagramm zeigt bereits die Start-Aktivität an.
Fügen Sie die Aktivität User feedback hinzu.Aktivität "User feedback"
Öffnen Sie das Dialogfeld für die Aktivität (über Doppel-Klick) und geben Sie den Namen der Aktivität ein (z.B. "request signature" oder "Signatur anfordern"),
Fügen Sie den Benutzernamen sowie eine Anweisung hinzu (z.B. "Sign this page" oder "Seite unterschreiben")Dialogfenster für Aktivität "User feedback"
Klicken Sie auf Speichern.
Verbinden Sie das StartEvent mit der Aktivität User feedback.
Fügen Sie die Aktivität Edit wiki page hinzu und verbinden Sie es mit der vorhergehenden Aktivität.Aktivität "Edit wiki page"
Öffnen Sie das Dialogfeld für die Aktivität (über Doppel-Klick) und geben Sie den Namen der Aktivität ein (z.B. "add signature" oder "Seite unterschreiben"),
Geben Sie die Seite an, auf der die Unterschrift hinzugefügt werden soll. Im Normalfall ist das die Seite, auf der der Workflow ausgelöst wird. Hierfür verwenden Sie als Platzhalter das Magische Wort{{FULLPAGENAME}}.
Geben Sie den Benutzernamen für die Unterschrift an. (Hinweis: Im nächsten Beispiel sehen wir, wie der Benutzername beim Auslösen des Workflows über ein Formular eingegeben werden kann, aber in diesem Beispiel geben wir der Einfachheit halber den Namen direkt im Workflow ein, da immer dieselbe Person unterschreibt).
Markieren Sie die Änderung (also das Einfügen der Unterschrift auf der Seite) als kleine Änderung (Minor revision), wenn sie keine Benachrichtigung oder Anzeige als letzte Änderung auf Übersichtsseiten im Wiki auslösen soll.
Wählen Sie als Bearbeitungsmodus (Edit mode) Append. Dies fügt die Unterschrift am Ende der Seite ein. Dialogfenster für Aktivität "Edit wiki page"
Klicken Sie auf Speichern.
Verbinden Sie die Aktivität User feedback mit der Aktivität Edit wiki page.
Fügen Sie ein EndEvent hinzu und verbinden Sie es mit der vorhergehenden Aktivität.EndEvent
Speichern Sie die Seite.
Der Workflow sollte nun so aussehen:
Fertiger Workflow
Der Workflow kann nun im Wiki genutzt werden.
Als nächsten Schritt aktivieren wir den Workflow im Wiki.
Damit der Workflow nun auf einer Seite genutzt werden kann, müssen wir noch einen Auslöser anlegen:
Klicken Sie auf Globale Aktionen > Workflow-Triggers.
Klicken Sie auf Neuen Auslöser hinzufügen.
Wählen Sie Manuell als Typ aus.Manuellen Workflow-Auslöser erstellen
Richten Sie den Workflow-Auslöser ein:
Geben Sie den Namen ein, so wie im Workflow-Menü auf der Seite angezeigt werden soll.
Geben Sie eine kurze Beschreibung ein, so wie sie im Workflow-Menü auf der Seite angezeigt werden soll (optional).
Wählen Sie den Workflow Unterschrift als zu startenden Workflow aus.
Geben Sie als Bedingung an, in welchen Namensräumen der Workflow zur Verfügung stehen soll (optional). Wenn keine Bedingung angegeben wird, steht der Workflow automatisch in allen Inhaltsnamensräumen zur Verfügung. Auslöser einrichten
Workflow starten: Benutzer mit Bearbeitungsrechten im Wiki können nun den Workflow starten, um eine Unterschrift von J. Doe einzufordern. Hierzu wird der Workflow zum Beispiel auf einer Protokollseite über den entsprechenden Menüpunkt ausgelöst. Workflow startenEs erscheint ein Startdialog. Da es in unserem hier kein hinterlegtes Formular zur Dateneingabe gibt, kann der Dialog mit Fertig abgeschlossen werden.Workflow startenDer zugewiesene Benutzer J. Doe erhält eine Email und es erscheint eine Aufgabe in seinem Benutzermenü im Wiki.
Workflow-Aufgabe ausführen: J. Doe überprüft die Seite und führt über den blauen Banner seine zugewiesene Feedback-Aufgabe aus. Workflow Banner
Unterschrift wird zur Seite hinzugefügt: Die Wiki-Unterschrift wird automatisch an das Ende des Seiteninhalts angehängt.Eingefügte Unterschrift
Angenommen, wir möchten einen Workflow erstellen, der die Klassifizierung einer Wikiseite abfragt.
Basierend auf der Klassifizierung des Dokuments sendet er entweder eine E-Mail an ein Mitglied der Rechtsabteilung oder fügt zunächst einen Klassifizierungseintrag auf einer Wikiseite hinzu nd sendet die E-Mail anschließend an die Rechtsabteilung.
Der beschriebene Workflow besteht aus vier Aktivitäten und einem Gateway.
Um den Workflow zu erstellen, sind folgende Schritte erforderlich:
Erstellen Sie die benutzerdefinierte Workflow-Definition: MediaWiki:Klassifizierungsworkflow.bpmn
Erstellen Sie ein Initiierungsformular, das vor dem Senden der Aufgabe einige Informationen zum Workflow hinzufügt: MediaWiki:InhaltsklassifizierungInit.form
Erstellen Sie ein Klassifizierungsformular, mit dem der zugewiesene Benutzer das Dokument klassifizieren kann: MediaWiki:Inhaltsklassifizierung.form
Erstellen Sie die Wiki-SeiteMeldungen Klasse B, die Vorfälle der Klasse B erfasst.
Fügen Sie dem Wiki einen Workflow-Trigger hinzu, der definiert, wo und wie der Workflow gestartet werden soll.
Erstellen wir zunächst eine Seite mit dem Namen MediaWiki:Klassifizierungsworkflow.bpmn. Sie öffnet den Workflow-Editor.
Workflow-Editor
Fügen Sie Ihrem Diagramm die folgenden Formen hinzu (fahren Sie mit der Maus über die Symbole in der Werkzeugleiste, um die Namen der einzelnen BPMN-Elemente anzuzeigen).
Verbinden Sie jedes Element mit einem Pfeil.
Klicken Sie auf jede Form, um die erforderlichen Informationen einzugeben:
Ein Benutzerdefiniertes Formular zum Starten des Workflows.
Name:Initiierungsformular
Formulartyp:On-wiki-Form
Titel des Formulars:MediaWiki:InhaltsklassifizierungInit.form
Verwendung als Initialisierer:Ja
Ein weiteres Benutzerdefiniertes Formular zur Klassifizierung der Seite, auf der der Workflow ausgeführt wird.
Name:Klassifizierungsformular
Formulartyp:On-wiki-Form
Titel des Formulars:MediaWiki:Inhaltsklassifizierung.form
Laufzeit:{{#time:YmdHis|jetzt + 7 Tage}}KlassifizierungsformularKlassifizierungSehen wir diese Aktivität genauer an. Sie verfügt neben der Formularreferenz über einige zusätzliche Eigenschaften:
zugewiesener Benutzer: Die Eigenschaft zugewiesener_Benutzer ist obligatorisch, da die Workflow-Engine wissen muss, welcher Benutzer abgefragt werden soll. In diesem Fall verwenden wir Wikitext-Magie, um den zugewiesenen Benutzer aus dem Kontext zu berechnen. Der Wert besteht aus einer Kombination aus einer Wikitext-Variablen und einer Parserfunktion (diese Parserfunktion wird von der Semantic MediaWiki-Erweiterung definiert, die hier als Abhängigkeit betrachtet werden kann). Die Parserfunktion {{#show}} versucht, einen Benutzernamen aus einer semantischen Eigenschaft abzurufen, die auf der Seite, auf der der Workflow gestartet wird, gesetzt sein kann oder nicht. Falls keine passenden Informationen gefunden werden, wird auf WikiSysop zurückgegriffen (vorausgesetzt, ein solcher Benutzer ist im Wiki vorhanden). Die Variable {{ROOTPAGENAME}} ermöglicht es, den Namespace „Benutzer“ zu entfernen, wenn der gesuchte Wert beispielsweise Benutzer:JaneDoe statt nur JaneDoe lautet.
Laufzeit: Die Eigenschaft Laufzeit ist ebenfalls obligatorisch. Alle benutzerbezogenen Aktivitäten benötigen ein Fälligkeitsdatum. Ist die laufende Aktivität überfällig, beendet die Workflow-Engine den Workflow. In diesem Fall implementieren wir das Konzept von „Liegetagen“, da wir kein absolutes Fälligkeitsdatum haben, sondern dieses ab dem Zeitpunkt des Aktivitätsstarts mithilfe der Parserfunktion {{#time}} berechnen.
Klassifizierung: Die Eigenschaft Klassifizierung ist zufällig. Sie muss angegeben werden, damit das Formular sie festlegen und der Workflow-Kontext darauf zugreifen kann. Wir hätten einen Standardwert angeben können, möchten ihn aber leer lassen.
Ein Gateway, das die Klassifizierungsauswahl des Benutzers verarbeitet.
Name: Inhaltsklassifizierung.Klassifizierung (Hinweis: Der Name muss mit dem Namen des Formulars und seiner Eigenschaft übereinstimmen, die im vorherigen Schritt ausgewertet wurde.)
Name des Konnektors zur Aktivität „E-Mail senden“: Klasse_A
Name des Konnektors zur Aktivität „Klasse B erfassen“: Klasse_B
Eine Aktivität „E-Mail senden“ nach der Klassifizierungsauswahl „Klasse_A“.
Name: E-Mail senden
Eigenschaften:
Empfänger: legal@mycompany.com (ersetzen Sie die E-Mail-Adresse, die benachrichtigt werden soll)
Text: {{{Inhaltsklassifizierung.Zugewiesener_Benutzer}}} hat die Seite [[{{FULLPAGENAME}}]] als "{{{Inhaltsklassifizierung.Klassifizierung}}}" klassifiziert.Aktivität "E-mail senden"
Eine Aktivität „Wiki-Seite bearbeiten“ nach der Klassifizierung „Klasse B“ Auswahl. Verknüpfen Sie es mit der Aktivität „E-Mail senden“ aus Schritt 5.
Name: Datensatz Klasse B
Zu bearbeitende Wiki-Seite: Datensätze der Klasse B (Titel der Wiki-Seite, der der Inhalt vorangestellt wird)
Benutzer: {{ROOTPAGENAME:{{#show:{{FULLPAGENAME}}|?Verantwortlich|link=none|default=WikiSysop}}}} (Benutzer, der im Versionsverlauf der angehängten Wiki-Seite angezeigt wird)
Inhalt: *[[{{FULLPAGENAME}}]] wurde von [[Benutzer:{{{Inhaltsklassifizierung.Zugewiesener_Benutzer}}}}]] als {{{Inhaltsklassifizierung.Klassifizierung}}} klassifziert. (Text, der der Wiki-Seite hinzugefügt wird)
Kleine Änderung: Sie können die Standardeinstellung beibehalten oder diese Einstellung deaktivieren. Kleine Änderungen lösen in der Regel keine Benachrichtigungen aus, wenn Wiki-Benutzer „Bearbeitungsereignisse“ abonniert haben (allgemeine Informationen zu kleineren Änderungen finden Sie unter mediawiki.org).
Bearbeitungsmodus: Voranstellen (im Gegensatz zur Optioin Anhängen werden die Einträge auf der Seite Datensätze der Klasse B in absteigender Reihenfolge angezeigt).
Fügen Sie das Endereignis nach der Aktivität E-Mail sendenhinzu.
Das Startformular ermöglicht die Interaktion mit dem Benutzer, der den Workflow startet. Es erklärt, was beim Start des Workflows passiert, und ermöglicht das Hinzufügen eines Kommentars, um Kontext zur Benutzeraufgabe zu liefern.
Genau wie die BPMN-Workflow-Definition erstellen wir auch dieses Formular im Namensraum MediaWiki.
So erstellen Sie das Startformular:
Erstellen Sie die Seite MediaWiki:InhaltsklassifizierungInit.form. Der Formulareditor öffnet sich.
Klicken Sie auf Formularelemente > ...Anderes und ziehen Sie ein Element Label in den Bearbeitungsbereich.Formular "InhaltsklassifizierungInit"
Klicken Sie auf eine beliebige Stelle auf das Label-Element im Bearbeitungsbereich, um den Element-Inspektor zu öffnen. Fügen Sie Folgendes hinzu:
Name: intro
Beschriftung: Klicken Sie auf "Start", um eine Person mit Fachkenntnissen um eine Einstufung zu bitten. Sie können unten eine Anweisung hinterlassen.
Wechseln Sie von ... Anderes zu Eingaben und fügen Sie ein Textbereich-Element hinzu. Ziehen Sie es unter das Intro-Feld. Fügen Sie Folgendes hinzu:
Da wir den Workflow anweisen, alle als Klasse B klassifizierten Seiten aufzuzeichnen, müssen wir sicherstellen, dass diese Seite im Wiki vorhanden ist. Daher erstellen wir einfach die Seite Klasse B-Datensätze und speichern sie leer. Da wir in der Workflow-Definition festgelegt haben, dass alle Vorfälle der Klasse B dieser Seite vorangestellt hinzugefügt werden, ist es nicht sinnvoll, dieser Seite weitere Inhalte hinzuzufügen.
Wir haben nun alle Elemente, um den Workflow zu starten. Wir können nun hierfür auch den benötigten Workflow-Trigger definieren.
Damit der Workflow im Wiki angezeigt wird, müssen wir einen Trigger definieren:
Klicken Sie im Menü Globale Aktionen auf Workflow-Trigger.
Klicken Sie auf Neuen Auslöser hinzufügen.
Wählen Sie im Dropdown-Menü die Option „Manuell“.
Klicken Sie auf Fortfahren.
Definieren Sie die Einstellungen für den Workflow-Trigger:
Name:Klassifizierung (Name, der im Workflow-Auswahlmenü angezeigt wird)
Beschreibung:Klassifiziert ein Dokument als Klasse A oder Klasse B (Erläuterung der Funktion dieses Workflows)
Zu startender Workflow:Klassifizierungsworkflow
Anfangsdaten für den Workflow (optional): Standardkommentarvorschlag. Sie können dieses Feld leer lassen.
Bedingungen (optional): Sie können auswählen, in welchen Namensräumen der Workflow zur Auswahl angezeigt wird. Wenn kein Namensraum angegeben ist, kann der Workflow in allen Namenesräumen ausgelöst werden.
Sie sollten testen, ob die folgenden Funktionen verfügbar sind:
Der Workflow kann in den im Workflow-Trigger definierten Namensräumen gestartet werden (sofern hier Einschränkungen bestehen).
Der Workflow wird ausgelöst.
Der Workflow wird in der Workflows-Übersicht (Spezial:Workflows_overview) angezeigt.
Der zugewiesene Benutzer hat eine Aufgabe erhalten.
Der Workflow wird in Fall A und B korrekt abgeschlossen.
Im Wiki abgetrennter Bereich, dessen Inhalte über spezielle Berechtigungen gelesen und bearbeitet werden können. Einen Namensraum erkennt man an einem Präfix vor dem Artikeltitel.
Formatierungssprache für Wikiseiten. Der Wikitext kann im Quelltextmodus angesehen und bearbeitet werden.
Set von Wiki-Erweiterungen, mit dem strukturierte Daten erstellt und abgefragt werden können.