When I am using '$' sign in groovy script for behaviour in jira, I am getting compliation error.
Objective: Trying to validate summary field. Not allowing duplicate summaries. Searching the exact text in summary and making it case-insensitive search.
JQL query which is working fine in Issue Navigator:
issueFunction in issueFieldMatch("project = "ABC and key !=AB-1", "Summary", "^(?i)Test$")
Script I tried:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.searchSearchProvider
import com.atlassian.jira.jql.parser.JqlQueryParser
import com.atlassian.jira.web.bean.PagerFilter
import com.atlassian.jira.issue.Issue
def summaryObj = getFieldById(getFieldChanged())
def summary = summaryObj.getValue()
def jqlQueryParser = ComponentAccessor.getComponent(JqlQueryParser)
def searchProvider = ComponentAccessor.getComponent(SearchProvider)
def issue = underlyingIssue
if(issue == null)
{
return
}
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def query = jqlQueryParser.parseQuery("issueFunction in issueFieldMatch('project = Cluster and key!= "+issue.key+"', 'Summary', '^(?i)"+summary+"$')")
if(results.getTotal()>0)
{
summaryObj.setError("Issue Summary already exists.")
}
else
{
summaryObj.clearError()
}
I am getting error in the line I have made bold as Illegal String Body character after $ sign. I think it is because groovy performs String Interpolation also using $ sign. How to get the JQL accepted in this script?
Kindly help.
Thanks and Regards,
Swapnil Srivastav