如果自定义字段值小于1,则使用Groovy阻止Jira打开票据
如果自定义字段值小于1,我需要阻止在Jira上创建问题 我尝试使用此代码,但没有成功,自定义字段ID为:13200如果自定义字段值小于1,则使用Groovy阻止Jira打开票据,groovy,jira,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.I
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;
}
该自定义字段取自另一个DB(通过元素链接),它是特定项目的数量,如果数量小于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),但可能是错误的类型
有人能帮我吗
谢谢,,
Luca您的变量内容是“{”键“:[“47”]}”,而不是“47”。您可以在这里看到:java.lang.NumberFormatException:对于输入字符串:“{”keys:[“47”]}”
这就是为什么会出现此异常,因为“{”键“:[“47”]}”无法转换为数字,因此请仔细检查要转换为数字的变量的值import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.component.ComponentAccessor
import com.opensymphony.workflow.InvalidInputException
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def Scorte = customFieldManager.getCustomFieldObject("customfield_13200")
def ValoreScorte = issueObject.getCustomFieldValue(Scorte)
def QuantitaRichiesta = customFieldManager.getCustomFieldObject("customfield_13201")
def ValoreQuantitaRichiesta = issueObject.getCustomFieldValue(QuantitaRichiesta)
def casting_ValoreScorte = ValoreScorte.toString().replaceAll("[^\\d.]", "")
def Scorte_Intero = casting_ValoreScorte as int
def QuantitaRichiesta_Intero = ValoreQuantitaRichiesta as int
if (Scorte_Intero <= 0 || QuantitaRichiesta_Intero > Scorte_Intero){
log.debug("ERRORE, QUANTITA' NON DISPONIBILI")
throw new InvalidInputException("","QUANTITA' NON DISPONIBILI")
}
导入com.atlassian.jira.component.component访问器
导入com.opensymphony.workflow.InvalidInputException
def customFieldManager=ComponentAccessor.getCustomFieldManager()
def Scorte=customFieldManager.getCustomFieldObject(“customfield_13200”)
def ValoreScorte=issueObject.getCustomFieldValue(Scorte)
def QuantitaRichiesta=customFieldManager.getCustomFieldObject(“customfield_13201”)
def ValoreQuantitaRichiesta=issueObject.getCustomFieldValue(QuantitaRichiesta)
def casting_ValoreScorte=ValoreScorte.toString().replaceAll(“[^\\d.]”,“”)
def Scorte_Intero=按整数计算从价计分
def QuantitaRichiesta_Intero=从价QuantitaRichiesta as int
if(Scorte_Intero Scorte_Intero){
log.debug(“ERRORE,QUANTITA'NON DISPONIBILI”)
抛出新的InvalidInputException(“,“QUANTITA'NON DISPONIBILI”)
}
这是最后的代码:)谢谢你的帮助 谢谢你的意见!你是对的,它选择了整个东西,所以我尝试了以下方法:
def cFieldValue=issue.getCustomFieldValue(cField)def casting\u cFieldValue=cFieldValue.toString().replaceAll(“[^\\d.]”,“”)def valore\u intero=casting\u cFieldValue.toInteger()
但我收到这样的消息:java.lang.String不能转换为java.lang.Throwable java.lang.ClassCastException:java.lang.String不能转换为java.lang.Throwable有什么想法吗?顺便说一句,我也在谷歌搜索。。再次感谢您,println casting\u cFieldvalue
和println casting\u cFieldvalue.getClass()
的输出是什么?