版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。


提示

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

如何添加groovy脚本?

(1)点击添加验证器

Image Modified


面板
title目录

目录


(2)选中自定义groovy脚本,点击添加

Image Modified

(3)输入名称和运行的脚本

Image Modified

(4)点击添加,并发布工作流

Image Modified

(5)在issue界面执行此转换时,如果指定字段的值为空,会在页面上进行提示

Image Modified


代码示例

① 验证字段必填

代码块
languagegroovy
linenumberstrue
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 + "必选项不能为空!");
    }
}


② 验证仅自定义字段中的用户才可进行转换

代码块
languagegroovy
linenumberstrue
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+"中")
    }
}