I need to make a transition on a linked issue after pass the conditions.
import org.apache.log4j.Category
import com.atlassian.jira.issue.link.IssueLink
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.link.IssueLinkManager
import com.atlassian.jira.workflow.WorkflowTransitionUtil
import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl
import com.atlassian.jira.util.JiraUtils
import com.onresolve.scriptrunner.runner.util.UserMessageUtil
import com.atlassian.jira.issue.MutableIssue
//
def Category log = Category.getInstance("com.onresolve.jira.groovy")
log.setLevel(org.apache.log4j.Level.DEBUG)
IssueLinkManager linkMgr = ComponentAccessor.getIssueLinkManager()
WorkflowTransitionUtil tx = (WorkflowTransitionUtil) JiraUtils.loadComponent(WorkflowTransitionUtilImpl.class)
for (IssueLink link in linkMgr.getInwardLinks(issue.id)) {
def linkedIssue = link.getDestinationObject();
if (link.issueLinkType.name != "is blocked by") {
if (link.getSourceObject().getProjectObject().getKey().contains("OR")){
if (link.getSourceObject().getStatus().getName().contains("Blocked")){
try{
tx.setIssue((MutableIssue) linkedIssue);
tx.setAction(921)
tx.validate()
tx.progress()
}
catch (Exception e) {
UserMessageUtil.error('ERROR: ')
}
}
}
}
}
Always the code pass to the catch. I don't know what is the problem. the action id is the correct. the execution log is empty.
Also I want to put in the code which user who performs the action. I don't know how to do it.
thanks in advance.
Hi,
Some things that got into my head when I saw your code:
1- Check that you (or the user who will trigger this) are able to transition from Blocked making the transition which has the 921 id.
2- Normally the UserMessageUtil.error('ERROR: ') gives me issues getting traces... You could try replacing it for return e.printStackTrace() to see some traces of the exception.
3- Maybe the problem is that your script doesn't passes the tx.validate() step, you should have more information about this if point 2 works for you.
To get which user performs the action, use this:
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
Regards,
Marcos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.