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.