Hi,
I am using the script below to do the transition to "Open" when all linked issues are closed.
After execution, main ticket remains to escalated to supplier instead to Open.
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.component.ComponentAccessor
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
import org.apache.log4j.Category
import com.opensymphony.workflow.WorkflowContext
import com.atlassian.jira.workflow.WorkflowTransitionUtil;
import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl;
import com.atlassian.jira.util.JiraUtils;
import com.atlassian.jira.issue.comments.CommentManager;
import com.atlassian.jira.issue.link.IssueLink;
import com.atlassian.jira.issue.MutableIssue
log.setLevel(org.apache.log4j.Level.DEBUG)
String currentUser = ((WorkflowContext) transientVars.get("context")).getCaller();
WorkflowTransitionUtil workflowTransitionUtil = ( WorkflowTransitionUtil ) JiraUtils.loadComponent( WorkflowTransitionUtilImpl.class );
log.debug "Original: ${issue.getId()}, ${issue.getKey()}. DETECTED " + issue.getStatus().name
List<IssueLink> allInIssueLink = issueLinkManager.getInwardLinks(issue.getId());
for (Iterator<IssueLink> inIterator = allInIssueLink.iterator(); inIterator.hasNext();) {
IssueLink issueLink = (IssueLink) inIterator.next();
def linkedIssue = issueLink.getDestinationObject();
log.debug "linked: ${linkedIssue.getId()}, ${linkedIssue.getKey()}. DETECTED " + linkedIssue.getStatus().name
if (linkedIssue.getStatus().name.equals("Open")) { // STATO della issue collegata
log.debug "linked Content: ${linkedIssue.getId()}, ${linkedIssue.getKey()}."
//We can transition the parent ticket
log.debug "start transition"
workflowTransitionUtil.setIssue((MutableIssue) linkedIssue);
workflowTransitionUtil.setUserkey(currentUser);
workflowTransitionUtil.setAction (221); //Transition ID
workflowTransitionUtil.validate();
workflowTransitionUtil.progress();
log.debug "end transition"
}
}
Kindly advice.
Thanks,
Swarna