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>




Feedback zur Dokumentation ist im Community-Forum möglich.