...
Using a STAGIL table or checklist as a validator can be easily achieved through a Scriptrunner Validator script utilizing a Jira Expression as a condition.
Table value validation
Let's take a look at an example where we create a validation that restricts users from transitioning an issue if the STAGIL table has no values.
Here are the steps to follow:
Install Scriptrunner by Adaptavist.
Access the workflow editor.
Choose the relevant transition and click on Validators, then Add Validator.
Opt for the ScriptrunnerScript option with the description "Add a ScriptRunner Script Validator that evaluates a Jira Expression to determine whether data input to the transition is valid".
Assign a name to the validator.
Compose a custom message that users will see when they attempt to transition the table, but the table has no values and does not fulfil the Jira Expression requirement.
The Script Validator field is where you can input the Jira Expression or validation condition.
Jira expression:
Code Block |
---|
issue.properties['stjc-field-22'] != null |
...
where
22
is the Table ID.
Column value validation
Example 1. Validation is passed if all column has values in every row of the table
Code Block |
---|
(issue.properties['stjc-field-22']?.values ? issue.properties['stjc-field-22']?.values?.filter(v => !v.get("2974")).length : 1) == 0 |
where
22
is the Table ID;
2974
is a Table column ID.
Example 2. In the example below, the Jira Expression validates if the transition’s sum of field values is 50 or more.
Code Block |
---|
(issue.properties['stjc-field-22']?.values ? issue.properties['stjc-field-22']?.values?.reduce((a, b) => a + Number(b.get("2974")) ,0) : 0 ) >= 50 |
Example 3. Validation is passed is there is a column value at least in one row in the table
Code Block |
---|
(issue.properties['stjc-field-22']?.values ? issue.properties['stjc-field-22']?.values?.filter(v => v.get("2974")).length : 0) > 0 |