...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
// This script checks that Grid custom field named "API Sample" contains at least one row. // Can be used only as scripted validator of issue transition. Cannot be run from the Script Console. import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.fields.CustomField import com.atlassian.jira.user.ApplicationUser import com.onresolve.scriptrunner.runner.customisers.WithPlugin import com.opensymphony.workflow.InvalidInputException @WithPlugin("tge.cloud") import com.idalko.tgng.jira.server.api.GridFieldData import com.idalko.tgng.jira.server.api.GridService // Get TGNG custom field id String tgngCustomFieldName = "API Sample" CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() CustomField tgngCustomField = customFieldManager.getCustomFieldObjectsByName(tgngCustomFieldName).iterator().next() Long tgngCustomFieldId = tgngCustomField.getIdAsLong() // Get user ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() // Get GridService GridService gridService = ComponentAccessor.getOSGiComponentInstanceOfType(GridService) // Read field data GridFieldData fieldData = gridService.readFieldDataInEditMode(issue, tgngCustomFieldId, user) // Check if the grid is empty if (fieldData.rows.size() == 0) { // Throw an exception with the field id and an error message for TGNG field // it will prevent transition with the noted error, user will stay on the transition screen. throw new InvalidInputException(tgngCustomField.id, "Add at least one record to grid to proceed") } |
...