Beschreibung[Bearbeiten | Quelltext bearbeiten]
Die SetTemplateParams-Activity ermöglicht das automatische Festlegen eines Vorlagenparameters auf einer Wiki-Seite.
- Auf Vorlagen wird in der Reihenfolge zugegriffen, in der sie auf der Seite erscheinen, beginnend bei 0. Nicht-existierende Vorlagen werden als Links gezählt und werden daher beim Zählen ignoriert.
- Parameter innerhalb der Vorlage können über ihren Namen oder im Falle von nicht benannten Parametern über den Index angegeben werden.
- Der Index für nicht benannte Parameter beginnt bei 1 (nicht 0!).
- Verschachtelte Vorlagen werden derzeit nicht unterstützt.
Profil[Bearbeiten | Quelltext bearbeiten]
Kurzprofil | |
---|---|
Name | SetTemplateParams |
Async | ja |
BPMN type | bpmn:task
|
BPMN Extension Element "wf:type" | set_template_param
|
Attribute[Bearbeiten | Quelltext bearbeiten]
Name des Attributs | Beschreibung | Typ |
---|---|---|
title
|
Name der Seite, auf der der Vorlagenparameter geändert wird. Wenn der Wert auf der Seite geändert wird, auf der der Workflow ausgeführt wird, ist der Wert {{FULLPAGENAME}}
|
string |
user
|
Benutzer der in die Revisionsgeschichte geschrieben wird | user |
template-index
|
Index der Vorlage auf der Wikiseite (beginnend bei 0) | number |
template- param
|
Vorlagen-Parameter, der geändert wird. Dies kann eine Zeichenfolge (im Fall eines benannten Parameters) oder eine Zahl (im Fall eines nicht benannten Parameters; beginnend bei 1, Zugriffsmethode für den Parameter) sein. | int|string |
value
|
Neuer Wert des Parameters, der durch den Workflow gesetzt wurde. | string |
minor
|
Markiert die Version als kleine Änderung, falls der Wert auf "1" gesetzt ist. | boolean |
revisionId
|
Neue Seitenrevisions-ID | number |
timestamp
|
Datumsstempel der Revision | timestamp |
comment
|
Kommentar in der Revisionsgeschichte. | string |
Beispiel[Bearbeiten | Quelltext bearbeiten]
Workflow-Aufgabe[Bearbeiten | Quelltext bearbeiten]
Diese Workflow-Aufgabe setzt den Wert des Parameters {{{status}}}
auf der ersten Vorlage einer Seite auf „Aktualisiert“.
<bpmn:task id="EditTemplate" name="Edit template">
<bpmn:extensionElements>
<wf:type>set_template_param</wf:type>
</bpmn:extensionElements>
<bpmn:property name="title" default="Testpage" validation="required,existing-title"/>
<bpmn:property name="user" default="WikiSysop" validation="existing-user"/>
<!-- Index of the template on page (starting from 0) -->
<bpmn:property name="template-index" default="0"/>
<!-- Param to modify. Can be a string in case of named params, or a number, in case of non-named params (starting from 1, accessor for the param) -->
<bpmn:property name="template-param" default="status"/>
<!-- New value to set -->
<bpmn:property name="value" default="Aktualisiert"/>
<bpmn:property name="minor" default="0"/>
<!-- Output properties -->
<bpmn:property name="revisionId"/>
<bpmn:property name="timestamp"/>
<bpmn:incoming>Flow_1qh6vpl</bpmn:incoming>
<bpmn:outgoing>Flow_0if1kyp</bpmn:outgoing>
</bpmn:task>
Vorlage[Bearbeiten | Quelltext bearbeiten]
The template content has the parameter {{{status}}}
At the time of writing this, the workflow produced an error tif the parameter was wrapped in a <div>
tag. Therefore, in the example below, the parameter is defined in a variable first. If the parameter is not in a div
tag, using a variable is not necessary.
Der Vorlageninhalt hat den Parameter {{{status}}}
. Zum jetzigen Zeitpunkt erzeugt der Workflow einen Fehler, wenn der Parameter in ein
div
-Tag eingeschlossen sit. Daher wird im folgenden Beispiel der Parameter zunächst in einer Variablen definiert. Wenn sich der Parameter nicht in einem div-Tag befindet, ist die Verwendung einer Variablen nicht erforderlich. Es kann sein, dass dieses Verhalten zwischenzeitlich korriegiert wurde.{{#vardefine:status|{{{status|not set}}}}}
<div style="background:#fbfaef;">Page status: {{#var:status}}</div>
Komplettes BPMN-Beispiel[Bearbeiten | Quelltext bearbeiten]
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:wf="http://hallowelt.com/schema/bpmn/wf">
<bpmn:process id="SetTemplateParams-Process" isExecutable="false">
<bpmn:extensionElements>
<wf:context>
<wf:contextItem name="pageId"/>
</wf:context>
</bpmn:extensionElements>
<bpmn:startEvent id="TheStart">
<bpmn:outgoing>FromTheStartToEditTemplate</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="FromTheStartToEditTemplate" sourceRef="TheStart" targetRef="EditTemplate" />
<bpmn:task id="EditTemplate" name="Edit template">
<bpmn:extensionElements>
<wf:type>set_template_param</wf:type>
</bpmn:extensionElements>
<bpmn:property name="title" default="" validation="required,existing-title">{{FULLPAGENAME}}</bpmn:property>
<bpmn:property name="user" default="WikiSysop" validation="existing-user">WikiSysop</bpmn:property>
<!-- Index of the template on page (starting from 0) -->
<bpmn:property name="template-index" default="0"/>
<!-- Param to modify. Can be a string in case of named params, or a number, in case of non-named params (starting from 1, accessor for the param) -->
<bpmn:property name="template-param" default="status"/>
<!-- New value to set -->
<bpmn:property name="value" default="Super edited param"/>
<bpmn:property name="comment" default="Edited template param"/>
<bpmn:property name="minor" default="1"/>
<!-- Output properties -->
<bpmn:property name="revisionId"/>
<bpmn:property name="timestamp"/>
<bpmn:incoming>FromTheStartToEditTemplate</bpmn:incoming>
<bpmn:outgoing>FromEditTemplateToTheEnd</bpmn:outgoing>
</bpmn:task>
<bpmn:sequenceFlow id="FromEditTemplateToTheEnd" sourceRef="EditTemplate" targetRef="TheEnd" />
<bpmn:endEvent id="TheEnd">
<bpmn:incoming>FromEditTemplateToTheEnd</bpmn:incoming>
</bpmn:endEvent>
</bpmn:process>
</bpmn:definitions>