Script to edit summary field in transition in workflow - problem

Lotus Support July 4, 2017

I am using custom code - on workflow transition - when creating sub-task, code is updating text in summary field.

 The code i am using with scriptrunner

import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.Issue
def issueManager = ComponentAccessor.getIssueManager()

def customFieldManager = ComponentAccessor.getCustomFieldManager()
def cField = customFieldManager.getCustomFieldObject("customfield_11201")
def cFieldValue = issue.getCustomFieldValue(cField)
def a = cFieldValue.toString()
def x = a.indexOf('[')
def y = a.indexOf(']')
if (cFieldValue != null )
{def newSummary = a[x..y+1] + issue.summary
issue.summary = newSummary}

It should update summary field with text from another custom field. If in custom filed is text [ACC] - Accounting, then when user creates sub-task, field summary should be updated like this [ACC] + summary

The problem i noticed that in filter for an issues, ie. Open issues i am getting this:

(this text [nul] - is dynamic, when i scroll issues it dissapears, or when i click on an issue, but then it show back again.

Any help would be appreciated?

New Bitmap Image.jpg

1 answer

0 votes
Joshua Yamdogo @ 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.
July 5, 2017

Hi hreich, 

It looks like you have a relatively simple error here. You wrote issue.summary = newSummary. However, this will not allow you to actually  set the summary. You just need to use the setSummary method, e.g. issue.setSummary(newSummary). 

import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.Issue
def issueManager = ComponentAccessor.getIssueManager()
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def cField = customFieldManager.getCustomFieldObjectByName("textField")
def cFieldValue = issue.getCustomFieldValue(cField)
def a = cFieldValue.toString()
def x = a.indexOf('[')
def y = a.indexOf(']')
if (cFieldValue != null )
{def newSummary = a[x..y] + " " + issue.summary
issue.setSummary(newSummary)}

I also think you just need a[x..y]. a[x..y+1] doesn't seem nescessary and throws errors. I added an extra space between the array values and the issue summary, otherwise it will display as [ACC]texthere.

Screen Shot 2017-07-05 at 9.52.47 AM.png

Suggest an answer

Log in or Sign up to answer