How do you change the assignee during a workflow transition using Script Runner?

Jeff Ward October 12, 2015

I have a workflow transition that looks up the last person in a praticular group (in this case the developer) that worked on an issue.  It then should assign this to the developer as part of the workflow transition.

However, while it looks like the update takes, it isn't reflected in the actual workflow status.

I've tried both this:

def issueService = ComponentAccessor.issueService;

def issueParams = new IssueInputParametersImpl()
issueParams.assigneeId = lastDeveloper;

def updateResult = issueService.validateUpdate(user, issue.id, issueParams)
log.debug updateResult.errorCollection
if(!updateResult.errorCollection.hasAnyErrors()) {
    issueService.update(user, updateResult)
}

And using the assign version:

def issueService = ComponentAccessor.issueService;

def issueParams = new IssueInputParametersImpl()
issueParams.assigneeId = lastDeveloper;

def assignResult = issueService.validateAssign(user, issue.id, lastDeveloper)
log.debug assignResult.errorCollection
if(!assignResult.errorCollection.hasAnyErrors()) {
    issueService.assign(user, assignResult)
}

 

The history shows the change but the bug doesn't actually reflect it.

1 answer

1 accepted

1 vote
Answer accepted
Jamie Echlin _ScriptRunner - The Adaptavist Group_
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
October 12, 2015

If you do it like this you need to make sure it's the last post-function. Is it? 

It's easier just to use:

issue.setAssigneeId("jbloggs")

as the first post-function.

Jeff Ward October 12, 2015

Apparently the key is to use the passed in issue as a MutableIssue, and just don't call store.

Jamie Echlin _ScriptRunner - The Adaptavist Group_
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
October 12, 2015

Yes. Store is redundant, because the same issue is saved in a later function. The problem with your method, is that I'm guessing you had your function first, and it although it did the job, the later function saved the original assignee again.

Suggest an answer

Log in or Sign up to answer