I have two custom field
1--- MLCS field with Options
A ---> i
B ---> ii
2--- Multiselect Field with options
a, b, c, d, e, f
***********************************
While creating issue if I select
B for field 1 & [a,b,c] for field 2
Though a scripted field I want to add [e] as a selected option along with [a,b,c]
so that final options selected in field 2 will be [a,b,c,e]
While in other case where A is selected values should remain as it is
*********************************
Thanks in advance,
Sumit
import com.atlassian.jira.component.ComponentAccessor; import com.atlassian.jira.issue.IssueManager; import com.atlassian.jira.event.type.EventDispatchOption; import com.atlassian.jira.security.JiraAuthenticationContext; import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.fields.CustomField import com.atlassian.jira.ComponentManager import com.atlassian.jira.issue.MutableIssue import org.apache.log4j.Level import org.apache.log4j.Logger import com.atlassian.jira.issue.util.DefaultIssueChangeHolder import com.atlassian.jira.issue.ModifiedValue import com.atlassian.jira.issue.customfields.manager.OptionsManager import com.atlassian.jira.issue.customfields.option.Option import com.atlassian.jira.issue.fields.config.FieldConfig Logger log = Logger.getLogger("<Some Value>") log.setLevel(Level.DEBUG) ComponentAccessor comAcc=new ComponentAccessor() CustomFieldManager cfm = comAcc.getCustomFieldManager() optionsProgManager = componentManager.getComponentInstanceOfType(OptionsManager.class) CustomField A= cfm.getCustomFieldObject('customfield_XXXX') // id to be changed CustomField B= cfm.getCustomFieldObject('customfield_YYYYY') // id to be changed bool=false fieldConfig = functionalAffetedAreas.getRelevantConfig(issue) option = optionsProgManager.getOptions(fieldConfig).find {it.value =="<some value>"} BValue=issue.getCustomFieldValue(A) AValue=issue.getCustomFieldValue(B) log.debug("A:::: ${AValue}".toString())
log.debug("B:::: ${BValue}".toString())
log.debug("option:::: ${option}".toString()) categoryValue.findAll {it if (it.toString()=="<Some Value>") { functionalAffetedAreasValue.find {
if (it.value =="<Some Value>"){ bool=true } } if(bool!=true){ log.debug("True".toString()) issue.setCustomFieldValue(A, AValue+[option])
BValueNew=issue.getCustomFieldValue(functionalAffetedAreas) log.debug("BValueNew:::: ${BValueNew}".toString())
ModifiedValue mVal = new ModifiedValue(issue.getCustomFieldValue(B), BValueNew);
functionalAffetedAreas.updateValue(null, issue, mVal, new DefaultIssueChangeHolder()); } else{ log.debug("False".toString()) } } } return null
Use a listener for this. Script fields should be used to show values derived from the issue's fields, or other issues or whatever, but should not modify the itself.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks Jamie
~Sumit
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
If I see in the log values are getting updated but they are not being displayed on issue
or not getting updated on issue.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I am facing issue mainly when trying to set values for multiselect field along with existing values.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.