Setting Priority from another custom field value using Groovy post-function

Luzia Mendes [Arcatech] October 9, 2013

The goal is: from a custom field called Impacto, I want to set the issue Priority.

I decided to go Script Runner >Post-function> Groovy

This is my code

import java.util.Arrays;
import java.util.Collection;
import java.util.Map;

import webwork.dispatcher.ActionResult;
import com.atlassian.core.ofbiz.CoreFactory;
import com.atlassian.core.util.map.EasyMap;
import com.atlassian.jira.action.ActionNames;
import org.ofbiz.core.entity.GenericValue;

import com.atlassian.core.ofbiz.CoreFactory
import com.atlassian.core.util.map.EasyMap
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.project.ProjectManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.util.ImportUtils
import com.atlassian.jira.issue.index.IssueIndexManager
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem
import com.atlassian.jira.issue.*
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.opensymphony.workflow.InvalidInputException
import org.apache.log4j.Category

def log = null

try{
  log = Logger.getLogger("log.arcatech.groovy");
  log.debug("Rodando script setPrioridade.groovy")
}catch(Throwable e){
  System.out.println("Erro ao rodar script")
  e.printStackTrace();
  return
}

ComponentManager componentManager = ComponentManager.getInstance();
CustomFieldManager customFieldManager = componentManager.getCustomFieldManager();
CustomField customField = customFieldManager.getCustomFieldObject("customfield_10000");
MutableIssue myIssue = issue 
String valueImpacto = (String)myIssue.getCustomFieldValue(customField);

def prioridade = ""
String alta = "Alta"

if (valueImpacto.equals(alta)){
	prioridade = "1"
}
myIssue.setPriorityId( prioridade )
myIssue.store()

It's not working, though. There is nothing in the logs neither. It's been read though. I forced a typo and it appeared in the logs. Once typo is fixed, the issue is created, but nothing happens.

Thank you for any suggestion.

2 answers

1 accepted

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

Post a new question

0 votes
Answer accepted
RambanamP
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.
October 9, 2013

try with this

import com.atlassian.jira.issue.priority.Priority;
 
 Priority priority = priorityManager.getPriority(priorityAsString);

0 votes
Bharadwaj Jannu
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.
October 9, 2013

you need to update the issue after setting the field values

IssueManager issueManager=ComponentAccessor.getIssueManager();

JiraAuthenticationContext authContext=ComponentAccessor.getJiraAuthenticationContext();

issueManager.updateIssue(authContext.getLoggedInUser(),myIssue,EventDispatchOption.ISSUE_UPDATED,true);

ComponentAccessor.getIssueIndexManager().reIndex(myIssue);

TAGS
AUG Leaders

Atlassian Community Events