JQLParseException:无法在 ScriptRunner 中执行 JQL 查询来打印摘要字段具有特定值的问题数

问题描述 投票:0回答:3

我试图在脚本运行程序中执行一些代码,以了解有多少问题具有一定的摘要价值。代码应该非常简单明了,但我遇到了

JQLParseException
。我正在寻找摘要字段值为“aa”的所有问题。我在日志文件中收到此异常:

2022-08-05 15:18:52,115+0200 https-openssl-nio-443-exec-22 WARN mouh 918x48846x1 19eejnp 10.248.75.214 /secure/CommentAssignIssue.jspa [atlassian-jira.log] myyy exception: com.atlassian.jira.jql.parser.JqlParseException: com.atlassian.jira.jql.parser.antlr.RuntimeRecognitionException: NoViableAltException(59@[])

我还在

Jira
中执行了查询,它返回 274 个结果,所以它应该可以工作 这是我的代码

   import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import org.apache.log4j.Logger
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
import com.opensymphony.workflow.InvalidInputException;
import com.softwareag.jira.insight.helper.Helper;
import java.sql.ResultSet;
import java.util.Map;
import com.atlassian.jira.project.version.Version;
import com.atlassian.jira.workflow.function.issue.AbstractJiraFunctionProvider;
import com.opensymphony.module.propertyset.PropertySet;
import com.opensymphony.workflow.WorkflowException;
import groovy.sql.GroovyRowResult
import groovy.sql.*
import groovy.sql.Sql
import java.sql.*; 
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.log4j.Logger;
import org.ofbiz.core.entity.ConnectionFactory;
import org.ofbiz.core.entity.GenericEntityException;
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.search.SearchProvider
import com.atlassian.jira.jql.parser.JqlQueryParser
import com.atlassian.jira.web.bean.PagerFilter


log.warn("HELLO 111")       

def log = Logger.getLogger("atlassian-jira.log")










def jqlQueryParser = ComponentAccessor.getComponent(JqlQueryParser)
log.warn("MOUNA 3 ")
def searchProvider = ComponentAccessor.getComponent(SearchProvider)
log.warn("MOUNA 4 ")

def issueManager = ComponentAccessor.getIssueManager()
log.warn("MOUNA 5")




// edit this query to suit
// I am looking for all issues with value "aa" for the summary field
def myquery = "summary ~ aa" 
log.warn("total issues  "+ myquery)

try{
def query = jqlQueryParser.parseQuery(myquery)

}catch (Exception e){
    log.warn("myyy exception: "+e)
}
groovy jira atlassian-sourcetree jql atlassian-plugin-sdk
3个回答
1
投票

将摘要字符串用单引号括起来

'
应该可以解决此问题。

def myquery = "summary ~ 'aa'" 


1
投票

我找到解决办法了,应该是这样的

def query = jqlQueryParser.parseQuery("summary ~ \'" + customDiagnoserId + "\'")


0
投票

伙计们。 我正在尝试使用查询的数字结果创建脚本字段。但它在我的情况下不起作用。 您是否知道如何调整该脚本以返回值? 提前谢谢你,帕斯

© www.soinside.com 2019 - 2024. All rights reserved.