No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
==Description== | ==Description== | ||
The ''SetTemplateParams'' activity allows automatic setting | 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. | * 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. | * 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 | * 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. | |||
* Nested templates are currently not supported | |||
== | == Profile == | ||
{| class="wikitable" | {| class="wikitable" | ||
! colspan="2" |'''Short profile''' | ! colspan="2" |'''Short profile''' | ||
Line 57: | Line 33: | ||
|<code>title</code> | |<code>title</code> | ||
|UIActivity | |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 <code><nowiki>{{FULLPAGENAME}}</nowiki></code> | ||
|string | |string | ||
|- | |- | ||
| style="width:70px;" |<code>user</code> | | style="width:70px;" |<code>user</code> | ||
|UIActivity | |UIActivity | ||
| | |User that is shown in the revision history | ||
| | |user | ||
|- | |- | ||
|<code>template-index</code> | |<code>template-index</code> | ||
|''InstructedActivity?'' | |''InstructedActivity?'' | ||
| | |Index of the template on the page (starting at 0) | ||
| | |number | ||
|- | |- | ||
|<code>template- param</code> | |<code>template- param</code> | ||
| | | | ||
| | |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) | ||
| | |<nowiki>int|string</nowiki> | ||
|- | |- | ||
|<code>value</code> | |<code>value</code> | ||
| | | | ||
| | |New value of the parameter, set by the workflow | ||
| | |string | ||
|- | |- | ||
|<code>minor</code> | |<code>minor</code> | ||
| | | | ||
| | |Marks the revision as a minor edit if set to 1 | ||
| | |boolean | ||
|- | |- | ||
|<code>revisionId</code> | |<code>revisionId</code> | ||
| | | | ||
| | |Sets a new page revision ID | ||
| | |number | ||
|- | |- | ||
|<code>timestamp</code> | |<code>timestamp</code> | ||
| | | | ||
|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 <code><nowiki>{{{status|not set}}}</nowiki></code> to <code>Updated</code> on a page's first template.<syntaxhighlight lang="xml"> | |||
<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> | |||
</syntaxhighlight> | |||
=== Template === | |||
The template content has the parameter <code><nowiki>{{{status}}}</nowiki></code> At the time of writing this, the workflow produced an error tif the parameter was wrapped in a <code><nowiki><div></nowiki></code> tag. Therefore, in the example below, the parameter is defined in a variable first. If the parameter is not in a <code>div</code> tag, using a variable is not necessary.<syntaxhighlight lang="text"> | |||
{{#vardefine:status|{{{status|not set}}}}} | |||
<div style="background:#fbfaef;">Page status: {{#var:status}}</div> | |||
</syntaxhighlight> | |||
=== Full bpmn example === | |||
<syntaxhighlight lang="xml"> | |||
<?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> | |||
</syntaxhighlight> |
Revision as of 13:18, 16 October 2023
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>