(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+"中")
}
}




