(Die Seite wurde neu angelegt: „==Beschreibung== Die Aktivität ''GroupVote'' sammelt notwendige Daten über die Abstimmung einer Gruppe zu einem speziellen Thema. Anders als beim ''Handbuc…“) |
Keine Bearbeitungszusammenfassung |
||
Zeile 17: | Zeile 17: | ||
|<code>group_vote</code> | |<code>group_vote</code> | ||
|} | |} | ||
==Attribute== | ==Attribute== | ||
{| class="wikitable" style="width:100%;" | {| class="wikitable" style="width:100%;" | ||
!'''Name des Attributs''' | !'''Name des Attributs''' | ||
!'''Beschreibung''' | !'''Beschreibung''' | ||
!'''Typ''' | !'''Typ''' | ||
|- | |- | ||
|<code>due_date</code> | |<code>due_date</code> | ||
|Fälligkeitsdatum der Aufgabe | |Fälligkeitsdatum der Aufgabe | ||
|date/timestamp | |date/timestamp | ||
|- | |- | ||
|<code>assigned_group</code> | |<code>assigned_group</code> | ||
|Name der Benutzergruppe, die abstimmen soll; kann ein einfacher Gruppenname aus der DB sein (z.B. "sysop") | |Name der Benutzergruppe, die abstimmen soll; kann ein einfacher Gruppenname aus der DB sein (z.B. "sysop") | ||
|string | |string | ||
|- | |- | ||
|<code>instructions</code> | |<code>instructions</code> | ||
|Text, der der Benutzergruppe angezeigt wird (Abstimmungsanweisung) | |Text, der der Benutzergruppe angezeigt wird (Abstimmungsanweisung) | ||
|string | |string | ||
|- | |- | ||
|<code>users_voted</code> | |<code>users_voted</code> | ||
|Nicht in der Workflow-Definition einstellbar. Wird verwendet, um Daten während des Aktivitätslebenszyklus zu speichern., z.B.:<syntaxhighlight lang="json"> | |Nicht in der Workflow-Definition einstellbar. Wird verwendet, um Daten während des Aktivitätslebenszyklus zu speichern., z.B.:<syntaxhighlight lang="json"> | ||
[ | [ | ||
Zeile 111: | Zeile 45: | ||
<code><nowiki>{{<GroupVoteActivityID>.0.userName}}</nowiki></code> | <code><nowiki>{{<GroupVoteActivityID>.0.userName}}</nowiki></code> | ||
|string | |string | ||
|- | |||
|<code>threshold_yes_unit</code> | |||
|can be <code>user</code> or <code>percent</code> - absolute number of users required to a approve a page | |||
|user, percent | |||
|- | |||
|<code>threshold_yes_value</code> | |||
|number of users or percentage of users required to approve a page | |||
| | |||
|- | |||
|<code>threshold_no_unit</code> | |||
|can be <code>user</code> or <code>percent</code> - absolute number of users required to a reject a page | |||
|user, percent | |||
|- | |||
|<code>threshold_no_value</code> | |||
|number of users or percentage of users required to reject a page | |||
| | |||
|} | |} | ||
== Beispiel == | |||
Sobald der Schwellenwert erreicht wurde, wird die Aktivität abgeschlossen und <code><bpmn:exclusiveGateway></code> (referenziert von <code><bpmn:outgoing></code>) wird aufgerufen. Es wählt sein ausgehendes <code><bpmn:sequenceFlow></code> , indem es seinen <code>name</code> dem "Typ" des erreichten Schwellenwerts zuordnet. | |||
In diesem Beispiel erreicht der Workflow seinen Endpunkt, nachdem der erste zugewiesene Benutzer entweder mit ja oder nein gestimmt hat:<syntaxhighlight lang="xml"> | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wf="http://hallowelt.com/schema/bpmn/wf" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1vrglfw" targetNamespace="http://bpmn.io/schema/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="8.7.1"> | |||
<!-- Process part --> | |||
<bpmn:process id="Group_Vote" isExecutable="false"> | |||
<bpmn:extensionElements> | |||
<wf:context> | |||
<wf:contextItem name="pageId"/> | |||
<wf:contextItem name="revision"/> | |||
</wf:context> | |||
</bpmn:extensionElements> | |||
<!-- StartEvent --> | |||
<bpmn:startEvent id="TheStart"> | |||
<bpmn:outgoing>FromTheStartToGroupVote</bpmn:outgoing> | |||
</bpmn:startEvent> | |||
<bpmn:sequenceFlow id="FromTheStartToGroupVote" sourceRef="TheStart" targetRef="GroupVote"/> | |||
<!-- Collect group vote --> | |||
<bpmn:userTask id="GroupVote" name="GroupVote"> | |||
<bpmn:extensionElements> | |||
<wf:type>group_vote</wf:type> | |||
</bpmn:extensionElements> | |||
<bpmn:property name="assigned_group">QM-reviewer</bpmn:property> | |||
<bpmn:property name="instructions">Please vote</bpmn:property> | |||
<bpmn:property name="comment"/> | |||
<bpmn:property name="vote">vote</bpmn:property> | |||
<bpmn:property name="users_voted"/> | |||
<bpmn:property name="due_date">{{#time:YmdHis|now + 7days}}</bpmn:property> | |||
<bpmn:property name="threshold_yes_unit">user</bpmn:property> | |||
<bpmn:property name="threshold_yes_value">1</bpmn:property> | |||
<bpmn:property name="threshold_no_unit">user</bpmn:property> | |||
<bpmn:property name="threshold_no_value">1</bpmn:property> | |||
<bpmn:incoming>FromtheStartToGroupVote</bpmn:incoming> | |||
<bpmn:outgoing>FromGroupVoteToGatewayGroupVote</bpmn:outgoing> | |||
</bpmn:userTask> | |||
<bpmn:sequenceFlow id="FromGroupVoteToGatewayGroupVote" sourceRef="GroupVote" targetRef="GatewayGroupVote"/> | |||
<!-- Check on voting --> | |||
<bpmn:exclusiveGateway id="GatewayGroupVote" name="GroupVote.vote"> | |||
<bpmn:incoming>FromGroupVoteToGatewayGroupVote</bpmn:incoming> | |||
<bpmn:outgoing>FromGatewayGroupVoteToTheEndYes</bpmn:outgoing> | |||
<bpmn:outgoing>FromGatewayGroupVoteToTheEndNo</bpmn:outgoing> | |||
</bpmn:exclusiveGateway> | |||
<bpmn:sequenceFlow id="FromGatewayGroupVoteToTheEndYes" name="yes" sourceRef="GatewayGroupVote" targetRef="TheEnd"/> | |||
<bpmn:sequenceFlow id="FromGatewayGroupVoteToTheEndNo" name="no" sourceRef="GatewayGroupVote" targetRef="TheEnd"/> | |||
<!-- EndEvent --> | |||
<bpmn:endEvent id="TheEnd"> | |||
<bpmn:incoming>FromGatewayGroupVoteToTheEndYes</bpmn:incoming> | |||
<bpmn:incoming>FromGatewayGroupVoteToTheEndNo</bpmn:incoming> | |||
</bpmn:endEvent> | |||
</bpmn:process> | |||
</bpmn:definitions> | |||
</syntaxhighlight> |
Aktuelle Version vom 30. Oktober 2023, 13:06 Uhr
Beschreibung[Bearbeiten | Quelltext bearbeiten]
Die Aktivität GroupVote sammelt notwendige Daten über die Abstimmung einer Gruppe zu einem speziellen Thema. Anders als beim UserVote ist es nicht möglich, die Abstimmung zu delegieren. Ein Benutzer, der Teil einer Gruppe ist, kann eine Stimme annehmen oder ablehnen und auch einen Kommentar hinterlassen, der seine Entscheidung begründet. Das Abstimmungsergebnis hat mit dem zuvor erreichten Schwellenwert das Ende erreicht und beendet die Aktivität.
Kurzprofil | |
---|---|
Name | GroupVote |
Async | nein |
BPMN Typ | bpmn:userTask
|
BPMN Extension Element "wf:type" | group_vote
|
Attribute[Bearbeiten | Quelltext bearbeiten]
Name des Attributs | Beschreibung | Typ |
---|---|---|
due_date
|
Fälligkeitsdatum der Aufgabe | date/timestamp |
assigned_group
|
Name der Benutzergruppe, die abstimmen soll; kann ein einfacher Gruppenname aus der DB sein (z.B. "sysop") | string |
instructions
|
Text, der der Benutzergruppe angezeigt wird (Abstimmungsanweisung) | string |
users_voted
|
Nicht in der Workflow-Definition einstellbar. Wird verwendet, um Daten während des Aktivitätslebenszyklus zu speichern., z.B.:[
{ "userName": "UserA", "vote": "yes", "comment": "Good" },
{ "userName": "UserB", "vote": "no", "comment": "Not good" }
]
|
string |
threshold_yes_unit
|
can be user or percent - absolute number of users required to a approve a page
|
user, percent |
threshold_yes_value
|
number of users or percentage of users required to approve a page | |
threshold_no_unit
|
can be user or percent - absolute number of users required to a reject a page
|
user, percent |
threshold_no_value
|
number of users or percentage of users required to reject a page |
Beispiel[Bearbeiten | Quelltext bearbeiten]
Sobald der Schwellenwert erreicht wurde, wird die Aktivität abgeschlossen und <bpmn:exclusiveGateway>
(referenziert von <bpmn:outgoing>
) wird aufgerufen. Es wählt sein ausgehendes <bpmn:sequenceFlow>
, indem es seinen name
dem "Typ" des erreichten Schwellenwerts zuordnet.
In diesem Beispiel erreicht der Workflow seinen Endpunkt, nachdem der erste zugewiesene Benutzer entweder mit ja oder nein gestimmt hat:
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wf="http://hallowelt.com/schema/bpmn/wf" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1vrglfw" targetNamespace="http://bpmn.io/schema/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="8.7.1">
<!-- Process part -->
<bpmn:process id="Group_Vote" isExecutable="false">
<bpmn:extensionElements>
<wf:context>
<wf:contextItem name="pageId"/>
<wf:contextItem name="revision"/>
</wf:context>
</bpmn:extensionElements>
<!-- StartEvent -->
<bpmn:startEvent id="TheStart">
<bpmn:outgoing>FromTheStartToGroupVote</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="FromTheStartToGroupVote" sourceRef="TheStart" targetRef="GroupVote"/>
<!-- Collect group vote -->
<bpmn:userTask id="GroupVote" name="GroupVote">
<bpmn:extensionElements>
<wf:type>group_vote</wf:type>
</bpmn:extensionElements>
<bpmn:property name="assigned_group">QM-reviewer</bpmn:property>
<bpmn:property name="instructions">Please vote</bpmn:property>
<bpmn:property name="comment"/>
<bpmn:property name="vote">vote</bpmn:property>
<bpmn:property name="users_voted"/>
<bpmn:property name="due_date">{{#time:YmdHis|now + 7days}}</bpmn:property>
<bpmn:property name="threshold_yes_unit">user</bpmn:property>
<bpmn:property name="threshold_yes_value">1</bpmn:property>
<bpmn:property name="threshold_no_unit">user</bpmn:property>
<bpmn:property name="threshold_no_value">1</bpmn:property>
<bpmn:incoming>FromtheStartToGroupVote</bpmn:incoming>
<bpmn:outgoing>FromGroupVoteToGatewayGroupVote</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="FromGroupVoteToGatewayGroupVote" sourceRef="GroupVote" targetRef="GatewayGroupVote"/>
<!-- Check on voting -->
<bpmn:exclusiveGateway id="GatewayGroupVote" name="GroupVote.vote">
<bpmn:incoming>FromGroupVoteToGatewayGroupVote</bpmn:incoming>
<bpmn:outgoing>FromGatewayGroupVoteToTheEndYes</bpmn:outgoing>
<bpmn:outgoing>FromGatewayGroupVoteToTheEndNo</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow id="FromGatewayGroupVoteToTheEndYes" name="yes" sourceRef="GatewayGroupVote" targetRef="TheEnd"/>
<bpmn:sequenceFlow id="FromGatewayGroupVoteToTheEndNo" name="no" sourceRef="GatewayGroupVote" targetRef="TheEnd"/>
<!-- EndEvent -->
<bpmn:endEvent id="TheEnd">
<bpmn:incoming>FromGatewayGroupVoteToTheEndYes</bpmn:incoming>
<bpmn:incoming>FromGatewayGroupVoteToTheEndNo</bpmn:incoming>
</bpmn:endEvent>
</bpmn:process>
</bpmn:definitions>