Manual:Extension/Workflows/Activity/GroupVote: Difference between revisions

No edit summary
No edit summary
Line 80: Line 80:
{| class="wikitable" style="width:100%;"
{| class="wikitable" style="width:100%;"
!'''Name of property'''
!'''Name of property'''
!'''Source'''
!'''Description'''
!'''Description'''
!'''Type'''
!'''Type'''
|-
|-
|<code>due_date</code>
|<code>due_date</code>
|<code>UIActivity</code>
|Due date for task completion
|Due date for task completion
|date/timestamp
|date/timestamp
|-
|-
|<code>assigned_group</code>
|<code>assigned_group</code>
| -
|Name of the user group that should vote; can be plain grouname as used in the DB (e.g. "sysop")
|Name of the user group that should vote; can be plain grouname as used in the DB (e.g. "sysop")
|string
|string
|-
|-
|<code>instructions</code>
|<code>instructions</code>
| -
|Text that is shown to the group of user, so they know what to vote about
|Text that is shown to the group of user, so they know what to vote about
|string
|string
|-
|-
|<code>users_voted</code>
|<code>users_voted</code>
| -
|Not to be set in the workflow definition. Used to store data during the activities life cycle. E.g.<syntaxhighlight lang="json">
|Not to be set in the workflow definition. Used to store data during the activities life cycle. E.g.<syntaxhighlight lang="json">
[
[

Revision as of 11:43, 25 October 2023

Description

The activity GroupVote is responsible for collecting necessary data about the voting of a group on a special topic. Unlike the UserVote, it is not possbile to delegate the task. A user that is part of a group can accept or decline a vote and also leave a comment that justifies their decision. The voting result is determined by whatever threshold has been reached first and ends the activity.

Short profile
Name GroupVote
Async No
BPMN type bpmn:userTask
BPMN Extension Element "wf:type" group_vote

Extension elements

Name of extension element Description Type
threshold Multiple thresholds can be defined element
threshold/type Arbitraty identifier, to be used in the connected gateway string
threshold/value Either absolute or relative number of users. Depends on unit. int
threshold/unit Either user or percent. string

Example

<bpmn:extensionElements>
   <wf:type>group_vote</wf:type>
   <wf:threshold>
   		<wf:type>yes</wf:type>
<wf:value>3</wf:value>
<wf:unit>user</wf:unit>
    </wf:threshold>
    <wf:threshold>
   		<wf:type>no</wf:type>
<wf:value>10</wf:value>
<wf:unit>percent</wf:unit>
    </wf:threshold>
</bpmn:extensionElements>

<bpmn:outgoing>FromGroupVoteToGatewayGroupVote</bpmn:outgoing>

Once one of the thresholds is reached, the activity will be completed and a <bpmn:exclusiveGateway> (referenced by <bpmn:outgoing>) will be called. It will choose its outgoing <bpmn:sequenceFlow> by mapping its name to the "type" of the threshold that has been reached.

<bpmn:exclusiveGateway id="GatewayGroupVote">
  <bpmn:incoming>FromGroupVoteToGatewayGroupVote</bpmn:incoming>
  <bpmn:outgoing>FromGatewayUserVoteToApproveRevision</bpmn:outgoing>
  <bpmn:outgoing>FromGatewayUserVoteToSendMail</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sequenceFlow
    name="yes"
    id="FromGatewayGroupVoteToApproveRevision"
    sourceRef="GatewayGroupVote" 
    targetRef="ApproveRevision"
/>
<bpmn:sequenceFlow
    name="no"
    id="FromGatewayGroupVoteToSendMail"
    sourceRef="GatewayGroupVote"
    targetRef="SendMail"
/>

Properties

Name of property Description Type
due_date Due date for task completion date/timestamp
assigned_group Name of the user group that should vote; can be plain grouname as used in the DB (e.g. "sysop") string
instructions Text that is shown to the group of user, so they know what to vote about string
users_voted Not to be set in the workflow definition. Used to store data during the activities life cycle. E.g.
[
    { "userName": "UserA", "vote": "yes", "comment": "Good" },
    { "userName": "UserB", "vote": "no",  "comment": "Not good" }
]
Can be accessed by follow up activitites by e.g.

{{<GroupVoteActivityID>.0.userName}}

string




To submit feedback about this documentation, visit our community forum.