I have looked here and here and here. And many other places. I cannot for the life of me figure out why this cannot read EITHER inward OR outward for this condition.
Does not work:
--- if (! issueLinkManager.getOutwardLinks(issue.getId())*.issueLinkType.name.contains('Reopen') || ! issueLinkManager.getInwardLinks(issue.getId())*.issueLinkType.name.contains('Reopen'))
Implemented in lieu:
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.link.IssueLink;
import com.atlassian.jira.issue.link.IssueLinkManager;
import com.atlassian.jira.issue.IssueFieldConstants;
import com.atlassian.jira.issue.fields.IssueLinksSystemField;
import com.opensymphony.workflow.InvalidInputException;
import webwork.action.ActionContext;
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def fields = []
def fieldManager = ComponentAccessor.getFieldManager()
def linksSystemField = fieldManager.getField("issuelinks") as IssueLinksSystemField
def request = ActionContext.getRequest()
if (request) {
def params = request.getParameterMap()
def issueLinkingValue = linksSystemField.getRelevantParams(params) as IssueLinksSystemField.IssueLinkingValue
// If issue is not REOPENED LINK TYPE, make all sorts of validations
if (! issueLinkManager.getOutwardLinks(issue.getId())*.issueLinkType.name.contains('Reopen') )
{
fields.addAll(['BA Actual Hours', 'BA Analysis By', 'Bug Source', 'Complexity', 'Data Fix', 'Dev Estimate Hrs', 'QA Estimate Hrs', 'RCA Categories - BA', 'Release Notes', 'Stat Code Impact'])
fields.each
{
CustomField cf = customFieldManager.getCustomFieldObjectByName(it)
if (cf && !issue.getCustomFieldValue(cf))
{
if (invalidInputException)
invalidInputException.addError(cf.id, "Value missing!")
else
invalidInputException = new InvalidInputException(cf.id, "Value missing!")
}
}
if (invalidInputException)
invalidInputException.addError("The fields marked below must be filled before analysis is completed.")
}
else return true
}
And I am sure I have a lot of unnecessary stuff in here. I'm doing the best I can ![]()
WHat I need to know is how do I make this condition pass for EITHER inward OR outward links? If I tell it either/or, then (based on how I wrote the clause) either: everything fails, inward fails, or everything passes regardless of links.
!issueLinkManager.getOutwardLinks(issue.getId())*.issueLinkType.name.contains('Reopen') && !issueLinkManager.getInwardLinks(issue.getId())*.issueLinkType.name.contains('Reopen'))
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.