How to set the custom field value of a radio button?

anubhav priya January 8, 2014

this is my code

def public SupportPlan(MutableIssue issue)
{   
    ComponentManager componentManager = ComponentManager.getInstance();
    customFieldManager = componentManager.getCustomFieldManager();
    IssueManager issueManager = ComponentAccessor.getIssueManager();
    def Category log = Category.getInstance("com.onresolve.jira.groovy.PostFunction")
    User currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
    
    CustomField cfSType = customFieldManager.getCustomFieldObjectByName("Support Type");
    def cfSTypeV = issue.getCustomFieldValue(cfSType);
    log.warn("Support Type of the customer: " +cfSTypeV);
    
    CustomField cfmail = customFieldManager.getCustomFieldObjectByName("Customer Email");
    String cfmailV=(String)issue.getCustomFieldValue(cfmail);
    
    //Fetch domain name value
    def domain_name = cfmailV.substring(cfmailV.indexOf("@")+1, cfmailV.lastIndexOf("."));
    log.warn("print domain name" +domain_name);
    JqlClauseBuilder builder = JqlQueryBuilder.newClauseBuilder();
    Query query = builder.customField(cfmail.getIdAsLong()).like(cfmailV).buildQuery();
    SearchProvider searchProvider = ComponentAccessor.getComponentOfType(SearchProvider.class);
    SearchResults searchResults = searchProvider.search(query,currentUser,PagerFilter.getUnlimitedFilter());
    List<Issue> issues = searchResults.getIssues();
        
    for (def allIssues : issues)
    {   
        String cfAIemailv = (String)allIssues.getCustomFieldValue(cfmail);
        String aidomain_name = cfAIemailv.substring(cfAIemailv.indexOf("@")+1, cfAIemailv.lastIndexOf("."));
        log.warn("Print all domain names" +aidomain_name);

          if(domain_name == aidomain_name)
        {
          CustomField cfSupport = customFieldManager.getCustomFieldObjectByName("Support Type");
           allIssues.setCustomFieldValue(cfSupport,cfSTypeV);

        }

    }
}
SupportPlan(issue);

I'm getting following error while setting the value

[onresolve.jira.groovy.GroovyRunner] The script failed : javax.script.ScriptException: javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: com.atlassian.jira.issue.DocumentIssueImpl.setCustomFieldValue() is applicable for argument types: (com.atlassian.jira.issue.fields.CustomFieldImpl, com.atlassian.jira.issue.customfields.option.LazyLoadedOption) values: [Support Type, Gold]

Possible solutions: getCustomFieldValue(com.atlassian.jira.issue.fields.CustomField)

1 answer

1 accepted

2 votes
Answer accepted
Henning Tietgens
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.
January 8, 2014

Try this

List<MutableIssue> issues = searchResults.issues.collect {issueManager.getIssueObject(it.id)}

to convert the DocumentIssueImpl object with "normal" MutableIssue objects.

 

anubhav priya January 8, 2014

Tried your solution. It gives no error,but doesn't set the field value either. Log shows as null value.

Henning Tietgens
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.
January 8, 2014
Henning Tietgens
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.
January 8, 2014

Oh, yes, you have to update the issue. Either by using the prefered way through IssueService (in which case you have to rewrite your code to use IssueInputParameters for updating the customfield) or by calling issueManager.updateIssue() after setting the customfield (in this case no permissions checks are made, e.g. is the current user allowed to update the issue).

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events