Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Scriptrunner behavior - Get insight object value (String) from custom field via groovy

Marcel Kroner
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
May 5, 2021 edited

How can i get the value of a insight custom field using Scriptrunner behavior, and write this fields value into the summary field?

Environment: Datacenter

 

This is my custom field inside service portal:

Screenshot 2021-05-05 144247.png

And i want to get the value of the "Use old Project to pre-fill fields" field. This value should be written inside the "Summary" field. 

However, every approach which I have found online and tested, unfortunately does not want to work.

This is my code: 

1. Attempt

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.fields.CustomField


def summary = getFieldById("summary")
def useProjectToFill = getFieldById("Use old Project to pre-fill fields")
String selectedProj = useProjectToFill.getFormValue().toString()

if (summary.getFormValue() == null || summary.getFormValue().toString().length() < 1) {
summary.setFormValue("nothing selected")
} else {
summary.setFormValue(selectedProj)
}

Result:

Nothing selected so far so okay ->

Screenshot 2021-05-05 155322.png

Project select ... Not so okay... ->

Screenshot 2021-05-05 155405.png

2. Attempt

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.fields.CustomField

def field = ComponentAccessor.getCustomFieldManager().getCustomFieldObject("Use old Project to pre-fill fields")
def value = underlyingIssue.getCustomFieldValue(field)


def summary = getFieldById("summary")
String useProjectToFill = getFieldById("Use old Project to pre-fill fields").getFormValue().toString();

if (summary.getFormValue() == null) {
summary.setFormValue("nothing selected")
} else {
summary.setFormValue(useProjectToFill)
}

This attempt breaks the behavior and summary is empty all time.

Pls help

1 answer

1 accepted

0 votes
Answer accepted
Dirk Ronsmans
Community Champion
May 5, 2021

Hey @Marcel Kroner and welcome to the community!

I'm wondering if this is causing you issues:

getFieldById("Use old Project to pre-fill fields")

you use the getFieldById but then use the name of the field.

Could you try with either getFieldByname("") or input the customfield_xxxx ?

Marcel Kroner
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
May 11, 2021

Hello Dirk,

thank you very much! I never thought I would get such a quick response as I got from you :)! Thank you very much! 


Your answer is partially correct.

getFieldByName("") returned me the insight object, but not the string inside the field.

I can work with it, but people looking for the string value would not be helped by it, I think.

Suggest an answer

Log in or Sign up to answer
TAGS
atlassian, likes for trees, atlassian community, social impact, tree planting campaign, community kudos, atlassian giving, environmental impact, sustainability, likes for good, atlassian social responsibility, community challenge

Make every click count—help us plant 50,000 trees! 🌳

Want to make your everyday Community actions directly contribute to reforestation? The Atlassian Community can achieve this goal by liking a post, attending an ACE, sending your peers kudos, and so much more!

Help us plant more trees
AUG Leaders

Atlassian Community Events