Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
Community Members
Community Events
Community Groups

ScriptRunner Post Function is inconsistent

Randy Rising Star Apr 19, 2018

Hi Folks,


This post function seems to be inconsistent for me with the value printed being either pre-screen or post-screen.


Any ideas on what could be happening and how i could fix?


def someFakeCustomFieldId = 'customfield_123456'

def issueWithScreenChanges = get("/rest/api/2/issue/${}")
.queryString("fields", someFakeCustomFieldId)

def newValue1 = issueWithScreenChanges.fields[someFakeCustomFieldId] as String

def newValue2 = issue.fields[someFakeCustomFieldId] as String

2 answers

1 accepted

0 votes
Answer accepted
Randy Rising Star Jul 18, 2018

Discovered that because saves from a transition are async, the values entered into the screen cannot be reliably retrieved during the post function.  I was able to work around this by converting to a listener.

Try this :

def issueBody = issueWithScreenChanges.body
return issueBody.fields[someFakeCustomFieldId] as String

Also, in post function you don't need to get the issue, you can do this:

def someFakeCustomFieldId = 'customfield_123456'

def newValue1 = issue.fields[someFakeCustomFieldId] as String

def newValue2 = issue.fields[someFakeCustomFieldId] as String

If you take the issueWithScreenChanges object you need to add "body", but if you run the script as post function you can just take the cf from the issue object like this- 



Randy Rising Star Jul 18, 2018

Thanks Neta.  You'll see that i'm already pulling body as part of issueWithScreenChanges (Line 6 of my example)


I went ahead an posted what I discovered and the solution below.

Suggest an answer

Log in or Sign up to answer

Atlassian Community Events