How to set values to a Multi Select field programatically?

Javier Portillo
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.
March 14, 2012

I need to set values to a multi select field from a jira postfunction. I dont know which method/s is necessary.

Somebody help me?

Thanks!!

2 answers

1 accepted

2 votes
Answer accepted
Mizan
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.
March 14, 2012
CustomField customField = customFieldManager.getCustomFieldObjectByName( "name_of_cf" );

IssueChangeHolder changeHolder = new DefaultIssueChangeHolder();

//Update the custom field value
customField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customField), newValue),changeHolder);

I am not sure but multiselect customfield values are in the form of List so in the above code the newValue will be a List or array example :[1,3,4] will set the value of the mulitiselect list to first third and fourth values.

JamieA
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.
March 14, 2012

IIRC it will be a list of Option objects. You can get the Options from com.atlassian.jira.issue.customfields.manager.OptionsManager.

Javier Portillo
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.
March 14, 2012

Could you please extend the explanation of how to get the OptionsManager and set values?

Im not able to do it.

Thanks

JamieA
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.
March 14, 2012

OptionsManager optionsManager = ComponentManager.getComponentInstanceOfType(OptionsManager.class)

srcFieldValue = optionsManager.getOptions(fieldConfig)?.find{it.toString() == srcFieldValue?.toString()}
cfTarget.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(cfTarget), srcFieldValue), changeHolder)
Hopefully that will give you a pointer. Don't have a java example.
0 votes
Javier Portillo
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.
March 15, 2012

I have combined both responses and I am able to do it.

Thanks!!

JamieA
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.
March 15, 2012

Great, can you vote up my comments then if you found them helpful, thanks.

Seema April 11, 2012

If you were abel to find the solution and if possible would please share it ?

I am also trying to figure out same problem. I have opened ticket here: https://answers.atlassian.com/questions/47240/how-to-set-multi-select-custom-field-value-from-a-soap-client-application

Thanks,Seema

JamieA
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.
April 11, 2012

You're asking a completely different question... SOAP vs java API.

Javier Portillo
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.
April 12, 2012

Exactly, Jamie is wright. My solution is valid if you are using Jira Java API, but you are asking for SOAP client application.

Anyway, by using

customField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customField), newValue),changeHolder);

where "new value" is a Collection of Option objects yo can set the value of the multi-select.


Seema April 16, 2012

Thank you for responding. I have not been able to find solution for my problem yet and have not heard from any other developers too. Thanks for the info.

JamieA
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.
April 16, 2012

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events