Forums

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

Automate Fields value selection

manikanta ch September 3, 2020

Hi All,

Can we automate fields value selection depends on other field value using script runner?

Ex - We have custom fields 1, 2, & 3. all are single select list fields

When user selects a field value of 1, field value of 2 and 3 should automatically select depends on the field value of 1.

I am new to script runner.

Thanks in advance,

ch

1 answer

Suggest an answer

Log in or Sign up to answer
0 votes
Raziman Dom - Ricksoft
Community Champion
October 7, 2020

Hi Manikanta,

It is possible using behavior ScriptRunner. The below code should give you a rough idea:

/**
* List A has value 1,2
* List B has value ABC, DEF
* Purpose: Auto-populate List B from value List A
*/

import com.atlassian.jira.component.ComponentAccessor
import org.apache.log4j.Level
import org.apache.log4j.Logger

log.setLevel(Level.DEBUG)

final def listA = "List A"
final def listB = "List B"

def listFieldA = getFieldByName(listA)
def field = getFieldByName(listB)
def optionsManager = ComponentAccessor.getOptionsManager()

def listFieldB = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName(listB)
def listFieldBConfig = listFieldB.getRelevantConfig(getIssueContext())

def optListFieldB = optionsManager.getOptions(listFieldBConfig)
def optValueA = optListFieldB.find {it.value == "ABC"}
def optValueB = optListFieldB.find {it.value == "DEF"}

def listFieldAValue = listFieldA.getValue()

if(listFieldAValue == "1") {
log.debug("Condition passed! Update to value ABC")
field.setFormValue(optValueA.optionId)

} else if (listFieldAValue == "2") {
log.debug("Condition passed! Update to value DEF")
field.setFormValue(optValueB.optionId)

} else {
log.debug("Condition failed! Update to null")
field.setFormValue(null)
}
TAGS
AUG Leaders

Atlassian Community Events