Example: Make different fields mandatory depending on the value of a Select List custom field
We have 3 custom fields
- "Development Type" with values "Core" and "Custom"
- "Story Points"
- "Hours"
So the requirement is, if Development Type = "Core", the Story Points field would be displayed and if Development Type = "Custom", the Hours field would be displayed.
It is possible to set 2 validations in your transition, in order to ensure that:
- When "Development Type = Core" then field "Story Points" will be set and given a value higher than 0, and field "Hours" is not set or zero
- When "Development Type = Custom" then field "Hours" will be set and given a value higher than 0, and field "Story Points" is not set or zero
To do it, you just need to use Boolean validator with math, date-time or text-string terms with the following configurations:
When "Development Type = Core" then field "Story Points" will be set and entered a value higher than 0, and field "Hours" is not set or zero:
Expression used is: %{12500} = "Core" IMPLIES ({12501} != null AND {12501} > 0 AND ({12502} = null OR {12502} = 0))
Other variation of the usage example
When "Development Type = Custom" then field "Hours" will be set and given a value higher than 0, and field "Story Points" is not set or zero:
Expression used is: %{12500} = "Custom" IMPLIES ({12502} != null AND {12502} > 0 AND ({12501} = null OR {12501} = 0))
Note that in the particular JIRA instance I used to build this example:
- %{12500} is field code for string value of field "Development Type"
- {12501} is field code for numeric value of field "Story Points"
- {12502} is field code for numeric value of field "Hours"
Once configured, your transition will look like this:
Other examples of that function
- Block a transition until all sub-tasks have certains fields populated
- Block an epic's transition depending on linked issues status and due date
- Block or hide a transition for an issue depending on its issue links
- Block or unblock a transition after an issue rested a specific time in a status
- Block transition until all sub-tasks are in a specific status category
- Close parent issue when all sub-tasks are closed
- Enforce a field (Select List) to be set when another field (Radio Button) has a certain value (works with any kind of field type)
- Ensure that all issues linked with a certain issue link type have "Due Date" field set
- If field A is populated then, field B must also be populated
- Limit issue creation per role and issue type
- Limit the number of hours a user can log per day
- Limit valid dates for work logs
- Make "Time Spent" field required when there is no time logged in the issue
- Make a custom field mandatory when priority is "Critical" or "Blocker" and issue type is "Incident"
- Make attachment mandatory depending on the value of certain custom field
- Make different fields mandatory depending on the value of a Select List custom field
- Make linked issues, sub-tasks and JQL selected issues progress through its workflows
- Make parent issue progress through its workflow
- Prevent issue creation if another issue with same field value already exists
- Reject duplicated file names in attachments
- Require at least one sub-task in status "Resolved" or "Closed" when "Testing required" is selected in Check-Box custom field
- Require issue link when resolving as duplicate
- Restrict parent issue from closing if it has sub-tasks that were created during a given parent issue status
- Restrict sub-task type creation depending on parent issue status
- Restrict sub-task type creation depending on parent issue type
- Set a condition in a global transition which only applies in a certain status
- Validate a custom field "Story Points" has been given a value in Fibonacci sequence
- Validate compatible values selection among dependent custom fields
- Validate only issue links created in transition screen
- Validate that multi-user picker custom field A does not contain any user in multi-user picker custom field B
- Validation and condition based on time expressions
- Validation based on the value of a date type project property
- Validation on issue attachments
- Validation on MIME types of issue attachments
- Validation on sibling sub-tasks depending on issue type and status
- Validation on the value of a Cascading Select field