Hello All,
How to auto-populate Multiselect custom field values based on a single select list field value?
For Example -
We have a single select custom field Region with values EU, EAEU, and Mutliselect field with values Austria, Bulgaria, Spain, Poland.
If the user selects values called EU from the Region field it has to auto-select the following values Spain, Poland from Mutliselect field same way if user select value EAEU from Region field multi-select list field auto select to Austra and Bulgaria.
We have a script runner installed in our instance.
Thanks in advance,
Manikanta
Hi @manikanta ch ,
Below Behaviour snippet may give you some idea
import com.atlassian.jira.component.ComponentAccessor
import com.onresolve.jira.groovy.user.FieldBehaviours
import groovy.transform.BaseScript
@BaseScript FieldBehaviours fieldBehaviours
def multiSelectListName = 'MultiSelectList'
def region = getFieldByName("Region") as String
def selectField = getFieldByName(multiSelectListName)
def selectCustomField = customFieldManager.customFieldObjects.findByName(multiSelectListName)
def selectConfig = selectCustomField.getRelevantConfig(issueContext)
def selectOptions = ComponentAccessor.optionsManager.getOptions(selectConfig)
if (region == "EU") {
def defaultValue = selectAvailableOptions.findAll { it.value in ['Spain', 'Poland'] }
multiSelectListName.setFormValue(defaultValues*.optionId)
} else if (region == "EAEU") {
def defaultValues = selectAvailableOptions.findAll { it.value in ['Austra', 'Bulgaria'] }
multiSelectListName.setFormValue(defaultValues*.optionId)
}
Regards,
Leo
Thanks @Leo
It worked with the below script
import com.atlassian.jira.component.ComponentAccessor
import com.onresolve.jira.groovy.user.FieldBehaviours
import groovy.transform.BaseScript
@BaseScript FieldBehaviours fieldBehaviours
def optionsManager = ComponentAccessor.getOptionsManager()
def customFieldManager = ComponentAccessor.getCustomFieldManager()
final singleSelectListName = 'Region'
final multiSelectListName = 'Countries'
def subRegField = getFieldByName(singleSelectListName)
def subRegion = subRegField.getValue()
def countriesField = getFieldByName(multiSelectListName)
def customField = customFieldManager.getCustomFieldObject(countriesField.getFieldId())
def config = customField.getRelevantConfig(getIssueContext())
def options = optionsManager.getOptions(config)
def EUList = ['AUSTRIA', 'BULGARIA']
def gulfList = ['UNITED ARAB EMIRATES']
def EAList = ['REPUBLIC']
def optionsToSelect = []
if(subRegion == 'EU'){
optionsToSelect = options.findAll { it.value in EUList }
} else if(subRegion == 'GCC') {
optionsToSelect = options.findAll { it.value in gulfList }
} else if(subRegion == 'EAEU') {
optionsToSelect = options.findAll { it.value in EAEUList }
}
countriesField.setFormValue(optionsToSelect*.optionId)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Leo,
I have the similar requirement and I used the above script but its troughing the error in the line "countriesField.setFormValue(optionsToSelect*.optionId)"
static type errors:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.