验证器-自定义groovy脚本,即您可以在工作流中添加一个自定义groovy脚本的验证器,在groovy编辑器中使用groovy脚本实现您的自定义需求。

如何添加groovy脚本?

(1)点击添加验证器

目录

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




  • No labels