This section has use cases which help you in understand the usage of Validators provided by JMWE.
...
This validator can be used to block the user from progressing to a destination status unless a field has been modified.
Sample use cases:
Validate the change in Resolution provided when closing an issue
Expand title Steps Panel - Add the
Field has been modified validator
to the Close transition. - Select
Resolution
fromField.
- Add the
...
This validator can be used to ensure that a field has a value during a transition.
Sample use cases:
Validate the Affects Version/s and Assignee fields for a non-empty value on creating a Bug.
Expand title Steps Panel - Add the
Field is required validator
to the Create transition. - Select
Affects Version/s
andAssignee
fromFields.
- Add the
...
This validator can be used to force the users to enter a comment while transitioning to a destination status.
Sample use cases:
Validate that a comment is entered when rejecting a Bug fix.
Expand title Steps Panel Add the
Comment required validator
to the Resolve transition of the Bug workflow.
...
This validator can be used to check that a multi-valued field does not have more than one value during a transition.
Sample use cases:
Validate the Fix Version/s for a single value on an issue when the issue is fixed.
Expand title Steps Panel - Add the
Field has single value validator
to the Close transition. - Select
Fix Version/s
fromField.
- Add the
...
This validator can be used to stop the user from transitioning to a status unless the issue has previously been in a specified status in the workflow.
Sample use cases:
Block the transition of an issue to Close status if it has not been Approved.
Expand title Steps Panel - Add the
Previous status validator
to the Close transition. - Select
Approved
fromPrevious Status
- Add the
...
This validator can be used to stop the user from transitioning to a status unless the issue's parent has been in a selected status in the workflow.
Sample use cases:
Block the trigger of "Start Progress" on subtasks until its parent is approved.
Expand title Steps Panel - Add the
Parent status validator
to the Start Progress transition. - Select
Approved
fromParent Status
- Add the
...
This validator can be used to perform a validation with a groovy expression. Based on the result of the expression, the user is either allowed or blocked to transition to the destination status.
Sample use cases:
Block the creation of a Bug if no Attachment is provided.
Expand title Steps Panel - Add the
Scripted (Groovy) validator
to the Create transition. Write the following in the
Groovy script
Code Block language groovy linenumbers true try { return issue.get("issuetype").name != "Bug" && issue.getModifiedFields()?.get("attachment")?.getNewValue()?.size() > 0 } catch (Exception e) { return false }
- Add the
Validate the Cascade select for values in parent and child select dropdowns
Expand title Steps Panel - Add the
Scripted (Groovy) validator
to the transition. Write the following in the
Groovy script
Code Block language groovy linenumbers true issue.get("Cascade")?.get(null) != null && issue.get("Cascade")?.get("1") != null
- Add the
Block the approving of the Change request if it has no confluence page linked
Expand title Steps - Add the
Scripted (Groovy) validator
to the Approve transition. Write this content in the
Groovy script.
Code Block issue.getRemoteLinks("confluence").size() > 0
- Type the error message in
Error message,
to display if the validation script returnsfalse
- Add the
Block the approval of an issue if there is no PDF attached either from before or added during the transition
Expand title Steps - Add the
Scripted (Groovy) validator
to the Approve transition. Write this content in the
Groovy script.
Code Block import com.atlassian.jira.issue.IssueFieldConstants import com.atlassian.jira.issue.attachment.Attachment import com.atlassian.jira.issue.attachment.TemporaryWebAttachment import com.atlassian.jira.issue.attachment.TemporaryWebAttachmentManager if (issue.get("attachment").any{it.filename.endsWith(".pdf")}) return true; TemporaryWebAttachmentManager attachmentManager = getComponent(TemporaryWebAttachmentManager) try { List<Long> ids = issue.getModifiedFields().get(IssueFieldConstants.ATTACHMENT).getNewValue(); if (ids) return ids.any { id -> def attachment = attachmentManager.getTemporaryWebAttachment(id).getOrNull() return attachment?.filename?.endsWith(".pdf") } } catch (Exception e) { } return false
- Type the error message in
Error message,
to display if the validation script returnsfalse
- Add the
...
This validator can be used to ensure that the current issue's linked issues are in one of the selected statuses.
Sample use cases:
Block the transition of the Epic to Closed status, if its stories aren't closed.
Expand title Steps Panel - Add the
Linked issues status validator
to the Close transition. - Select the issue link type
is Epic of
from theIssue Link Type
field. Select the statuses the linked issues must be in, from
Statuses
Add the error message, "
The Stories of the Epic are not yet resolved
"
- Add the
...
This validator can be used to ensure that a link to one (or more) issue(s) from the current issue is being created during the transition.
Sample use cases:
Block the creation of a Bug, if it is not linked to the corresponding functionality requirement.
Expand title Steps Panel - Add the
Linked issue validator
to the Create transition. Select the issue link type
relates to
from theIssue Link Type
field.Add the error message, "
Associate/Link the Bug to the respective requirement ticket
"
- Add the
...