Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

How Returns False from a collection - Script Runner Jira

Ignacio Flores September 30, 2020

Hello community, I am having the following problem. I have the following code, which executes a jql that returns the issues of a specific version, which I will validate in an "IF" if it meets certain conditions. The problem I'm having is that it always returns TRUE, regardless of whether the if is true or not. It only returns FALSE when the JQL finds nothing. I leave my code:

pd: 

I already tried returning false with a condition but it didn't work, all this are doing in script console.



import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.jql.parser.JqlQueryParser;
import com.atlassian.jira.issue.search.SearchProvider;
import com.atlassian.jira.web.bean.PagerFilter;
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.fields.config.FieldConfig
import com.atlassian.jira.issue.context.IssueContextImpl
import com.atlassian.jira.issue.customfields.manager.OptionsManager
import com.atlassian.jira.issue.customfields.option.Options
import com.atlassian.jira.issue.customfields.option.Option
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import org.apache.log4j.Level
import com.atlassian.jira.issue.Issue
import org.apache.log4j.Logger

def log = Logger.getLogger("com.acme.workflows")
log.setLevel(Level.DEBUG)

boolean findIssues(String jqlQuery) {
def issueManager = ComponentAccessor.issueManager
def user = ComponentAccessor.jiraAuthenticationContext.getLoggedInUser()
def jqlQueryParser = ComponentAccessor.getComponent(JqlQueryParser.class)
def searchProvider = ComponentAccessor.getComponent(SearchProvider.class)
def query = jqlQueryParser.parseQuery(jqlQuery)
def results = searchProvider.search(query, user, PagerFilter.unlimitedFilter)
results.issues.collect {
issue -> issueManager.getIssueObject(issue.id)
def issueType = issue.getIssueType().getName()
int trueCount = 0;
if (issue.getIssueType().getName().equals("Modelo de Datos") || issue.getIssueType().getName().equals("Hacking etico"))
{
trueCount++;
log.warn(trueCount)
}
}
}def jqlQuery = "fixVersion =11827"
def issues = findIssues(jqlQuery)
log.warn(issues)

1 answer

1 accepted

0 votes
Answer accepted
Ignacio Flores September 30, 2020

this is the answer

import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.jql.parser.JqlQueryParser;
import com.atlassian.jira.issue.search.SearchProvider;
import com.atlassian.jira.web.bean.PagerFilter;
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.fields.config.FieldConfig
import com.atlassian.jira.issue.context.IssueContextImpl
import com.atlassian.jira.issue.customfields.manager.OptionsManager
import com.atlassian.jira.issue.customfields.option.Options
import com.atlassian.jira.issue.customfields.option.Option
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import org.apache.log4j.Level
import com.atlassian.jira.issue.Issue
import org.apache.log4j.Logger

def log = Logger.getLogger("com.acme.workflows")
log.setLevel(Level.DEBUG)

boolean findIssues(String jqlQuery) {
def issueManager = ComponentAccessor.issueManager
def user = ComponentAccessor.jiraAuthenticationContext.getLoggedInUser()
def jqlQueryParser = ComponentAccessor.getComponent(JqlQueryParser.class)
def searchProvider = ComponentAccessor.getComponent(SearchProvider.class)
def query = jqlQueryParser.parseQuery(jqlQuery)
def results = searchProvider.search(query, user, PagerFilter.unlimitedFilter)
int trueCount = 0;
results.issues.collect {
issue -> issueManager.getIssueObject(issue.id)
def issueType = issue.getIssueType().getName()
log.warn(issueType)
if (issue.getIssueType().getName().equals("Modelo de Datos") || issue.getIssueType().getName().equals("Hacking etico"))
{
trueCount++;
}
}
log.warn(trueCount)
if (trueCount >=2)
{
return true;
}
else
{
return false
}
}
CustomField cf1 = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Proyecto/Releases")
def jqlQuery = "fixVersion =${issue.getCustomFieldValue(cf1)}"
def issues = findIssues(jqlQuery)
log.warn(issues)

Suggest an answer

Log in or Sign up to answer