groovy - 如果自定义字段值小于 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),但可能是错误的类型?
有谁能够帮助我?
谢谢你,卢卡
解决方案
您的变量内容是 "{"keys":["47"]}" ,而不是 "47"。你可以在这里看到:java.lang.NumberFormatException: For input string: "{"keys":["47"]}"
这就是你得到这个异常的原因,因为 "{"keys":["47"]}" 不能转换为数字,所以请仔细检查要转换为数字的变量的值
推荐阅读
- javascript - 如何为 Table 控件中的不同实体使用绑定?
- python - 使用 SQL Alchemy 和 pandas read_sql 避免内存问题
- typescript - 理解带有回调类型的 React Native
- python - 具有修复资源的多处理
- java - (已解决)使用 Files.copy API 复制的文件在库中不可见
- r - 在 R 中可视化几列的正确方法是什么?
- react-native - React Native Navigation 导航未从 useEffect 触发
- python - 根据前两个字母删除分类变量
- mysql - 使用多语言站点(polylang)搜索和替换查询
- linux - Flutter linux build error A required package was not found