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.