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 Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
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