Retrieve custom field for ScriptRunner when sending notification

Matthew Davis June 7, 2021

ScriptRunner gives an email template for getting the value of custom fields in the 'Send Notification' post function, but it does not seem to work.  I can't find any documentation on how this is achieved.

 

def fields = get('/rest/api/2/field')
.asObject(List)
.body as List<Map>

def customFieldId = fields.find { it.name == 'TextFieldB' }.id as String
def customFieldValue = (issue.fields[customFieldId] as Map)?.value

"""Dear ${issue.fields.assignee?.displayName},

The ${issue.fields.issuetype.name} ${issue.key} with priority ${issue.fields.priority?.name} has been assigned to you.

Description: ${issue.fields.description}

Custom field value: ${customFieldValue}

Regards,
${issue.fields.reporter?.displayName}"""

2 answers

2 accepted

2 votes
Answer accepted
Max Lim _Adaptavist_
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 8, 2021

You can just replace:

def customFieldValue = (issue.fields[customFieldId] as Map)?.value

with:

def customFieldValue = issue.fields[customFieldId]

It might due to old API. I am not sure. I have tested my snippet, it works.

The reason for defining those variables so that user don't have to look for the custom field id, you just need to use the custom field name "TextFieldB".

Matthew Davis June 8, 2021

That's great, thank you!

1 vote
Answer accepted
Matthew Davis June 7, 2021

I figured it out, you can access the value by just going 

Custom field value: ${issue.fields.customfield_ID} where ID is the id of your custom field.  Not sure why you would define those variables up top, it doesn't work and is confusing :)

Suggest an answer

Log in or Sign up to answer