Preliminary global settings
In order to setup the Auto populate user picker field based on expression on your Approval Configurations, you must first select the Approval Expression Superuser in the /wiki/spaces/HAP/pages/12002038 screen.
The Approval Expression Superuser will be used by the app to edit any user picker custom field associated to an Auto populate user picker field based on expression configuration.
Auto populate user picker field based on expression screen
The Approval Configuration screen displays the available properties to setup an Approval :
When selecting an user picker All or an user picker Any , you are able (Optionally) to specify expressions that identify
- users that will be filled on the user picker custom field in order to enable them to approve and
- users that will be removed by the user picker in order to exclude them.
just clicking on the icon showing on the right side of the select list:
Insert expressions identifying the users to insert in the user picker custom field
The Auto populate user picker field based on expression dialog requires an expression, respecting the expected syntax, that specify the users to insert in the user picker field (Can Approve or Reject) and, optionally, the users to erase from the list (Excluded).
You cannot specify the users to exclude (Excluded) without specify the users to add to the user picker field (Can Approve or Reject).
You are able to insert the allowed tags on the text areas simply performing a drag and drop of a tag inside the text area on the point you want add it.
You are able to select the values to insert inside the property tags.
Test the expression
You are able to test an expression in order to check if the list of users returned for an issue, on evaluating the Can Approve or Reject and Excluded, matches the expectations.
In order to test your expressions, you can specify an issue key, click on Run Test and review the list of users that are returned below.
Expected syntax
Graphic Syntax Diagram
A valid expression requires that you respect the expected syntax.
The following diagram illustrates the expected syntax for valid expressions that you can specify in the Can Approve or Reject and the Excluded text areas:
Property tags
The syntax that allows to specify the property's values expects a start end tag identifying the property:
- <users>...</users>
- <groups>....</groups>
- <roles>....</roles>
- <group-pickers>...</group-pickers>
- <user-pickers>...</user-pickers>
- <component-leads>..</component-leads>.
Property Values
The admissible property's values depends by the selected Property:
- <users>
- Username, any username
- Reporter, key word to include in the list the issues's reporter
- Assignee, key word to include in the list the issues's assignee
- ProjectLead, key word to include in the list the concerned project lead
- Component Leads, key word to include in the list all the concerned Component Leads
- <groups>
- Group, any Jira Group name
- <roles>
- Project Role, any Project Role Name
- <user-pickers>
- User Picker custom-field, any user picker custom field identifier (Example: customfield_10125)
- <group-pickers>
- Group Picker custom-field, any group picker custom field identifier (Example: customfield_10188)
- <component-leads>
- Project Component, any Component Name
This setting maintain the Component Name and not the Component Id in order to allow reusing the Approval across Approval mapping for different Projects.
You are able to specify one or more Property's values.
Property's values are concatenated via the ','.
Example: <users>Tom Black , Nancy Green , Jack Red , Katy White</users>
Condition Tags
The syntax that allows to specify a condition enabling a set of properties expect one of the following start end tag:
- <conditional-rule name="Conditional Rule Name">...</conditional-rule>
- <conditional-rule name="Conditional Rule Name " is-false>...</conditional-rule>
The admissible names include all Conditional Rule names that you have created via the Conditional Rules administration screen.
An expression can include zero, ore, more conditions enabling one or more properties.
Example: <conditional-rule name="Priority High"><groups>Managers</groups> </conditional-rule> <conditional-rule name="Priority High" is-false><users>Tom Black</users></conditional-rule>
How it works
Requirement
It is necessary to require the distinct approbation users that meet the following conditions:
- Case of issue priority is High
- All users that belong to the Project Rules Tempo Project Managers and Service Desk Team;
- Case issue priority is not High
- All users that belong to the group jira-administrators
- Case of the Issue has been categorised against the Billing Services component
- The Billing Services Component lead
- Case of the Issue has been categorised against the Data Center Services component
- The Data Center Services Component lead
- Case of the issue require supervisor approval (Require Supervisor use picker is not empty)
- The users dynamically selected on the Require Supervisor use picker field
- Reporter and Assignee cannot approve