Description
The SetTemplateParams activity allows automatic setting a template parameter on a wiki page.
- Templates are accessed by the order of appearance on the page, starting at 0. Non-existing templates are counted as links, so they do not count in this list.
- Parameters inside the template can be specified by their name or the index in case of non-named parameters.
- Index for non-named params starts at 1 (not 0!), as to be consistent with how template params are accessed in the template itself.
- Nested templates are currently not supported.
Profile
Short profile | |
---|---|
Name | SetTemplateParams |
Async | Yes |
BPMN type | bpmn:task
|
BPMN Extension Element "wf:type" | set_template_param
|
Properties
Name of property | Source | Description | Type |
---|---|---|---|
title
|
UIActivity | Name of the page where the template parameter is changed. If it will be changed on the page where the workflow runs, the value is {{FULLPAGENAME}}
|
string |
user
|
UIActivity | User that is shown in the revision history | user |
template-index
|
InstructedActivity? | Index of the template on the page (starting at 0) | number |
template- param
|
Parameter to modify. This can be a string (in the case of a named parameter) or a number (in case of a non-named param; starting from 1, accessor for the parameter) | int|string | |
value
|
New value of the parameter, set by the workflow | string | |
minor
|
Marks the revision as a minor edit if set to 1 | boolean | |
revisionId
|
Sets a new page revision ID | number | |
timestamp
|
Sets the page revision timestamp | datetime | |
comment | Comment that is shown in the revision history | string |
Example
Workflow task
This workflow task will set the value of the parameter {{{status|not set}}}
to Updated
on a page's first template.
<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="Updated"/>
<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>
Template
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.
{{#vardefine:status|{{{status|not set}}}}}
<div style="background:#fbfaef;">Page status: {{#var:status}}</div>
Full bpmn example
<?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="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>