首页 > 解决方案 > 如果自定义字段值小于 1,则使用 Groovy 阻止 Jira 开票

问题描述

如果自定义字段值小于 1,我需要阻止在 Jira 上创建问题。

我尝试使用此代码没有成功,自定义字段 ID 为:13200。

import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.Issue;
import com.opensymphony.workflow.InvalidInputException;
import org.apache.log4j.Category;


import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.Issue;
import groovy.xml.MarkupBuilder;
import com.atlassian.jira.config.properties.APKeys;

def issueManager = ComponentAccessor.getIssueManager()
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def cField = customFieldManager.getCustomFieldObject("customfield_13200")
def cFieldValue = issue.getCustomFieldValue(cField) as Integer


if (cFieldValue > 0){
log.debug("ERRORE, QUANTITA' NON DISPONIBILI");
throw "ERRORE";
throw new InvalidInputException("QUANTITA' NON DISPONIBILI");
return cFieldValue;
return false;
}

该自定义字段取自另一个数据库(通过元素链接),它是特定项目的数量,如果数量小于 0,票证应该抛出异常,但它不能像我一样工作,在日志中给我这个错误:

For input string: "{"keys":["47"]}"
java.lang.NumberFormatException: For input string: "{"keys":["47"]}"
 at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
 at java.lang.Integer.parseInt(Integer.java:580)
 at java.lang.Integer.valueOf(Integer.java:766)

取值是正确的(47),但可能是错误的类型?

有谁能够帮助我?

谢谢你,卢卡

标签: groovyjira

解决方案


您的变量内容是 "{"keys":["47"]}" ,而不是 "47"。你可以在这里看到:java.lang.NumberFormatException: For input string: "{"keys":["47"]}"

这就是你得到这个异常的原因,因为 "{"keys":["47"]}" 不能转换为数字,所以请仔细检查要转换为数字的变量的值


推荐阅读