(2)选中自定义groovy脚本,点击添加
(3)输入名称和运行的脚本
(4)点击添加,并发布工作流
(5)在issue界面执行此转换时,如果指定字段的值为空,会在页面上进行提示
代码示例
① 验证字段必填
import com.atlassian.jira.component.ComponentAccessor import com.opensymphony.workflow.InvalidInputException /** * 验证器 * 扩展审批人字段的值不能为空 */ def customFieldName = "扩展审批人"; def textField = new ArrayList<>(ComponentAccessor.getCustomFieldManager().getCustomFieldObjectsByName(customFieldName)); if (Objects.nonNull(textField) && textField.size() > 0){ def value = issue.getCustomFieldValue(textField.get(0)) if (Objects.isNull(value)){ throw new InvalidInputException(customFieldName + "必选项不能为空!"); } }
② 验证仅自定义字段中的用户才可进行转换
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.fields.CustomField import com.atlassian.jira.user.ApplicationUser import com.opensymphony.workflow.InvalidInputException /** * 仅自定义字段中的用户可以进行转换 */ // Issue issue; def customFieldName = "扩展审批人"; // 获取当前登录人 def currentUser = ComponentAccessor.jiraAuthenticationContext.loggedInUser as ApplicationUser; def customFieldList = new ArrayList<CustomField>(ComponentAccessor.customFieldManager.getCustomFieldObjectsByName(customFieldName)); if (customFieldList.size() > 0){ def customField = customFieldList.get(0) as CustomField; def userList = issue.getCustomFieldValue(customField) as List<ApplicationUser>; if (Objects.isNull(userList) || !userList.contains(currentUser)){ throw new InvalidInputException(currentUser.username +"不在自定义字段"+customField.name+"中") } }