Hi,
Currently, we have a post-function script that automatically sets the priority upon creation of a new ticket. However, when one of the input fields are changed, I'd like it to change the priority accordingly. I'm unsure how to incorporate that. Can anyone help?
As far as I understand, we need to set a behavior on the fields Impact, Urgency and Priority and then create a getFieldChanged script based on the code below. Question is: how exactly...
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.customfields.option.LazyLoadedOption;
import com.atlassian.jira.issue.priority.Priority;
import com.atlassian.jira.issue.MutableIssue;
import org.apache.log4j.Logger
import org.apache.log4j.Level
def currentIssue = (MutableIssue) issue
def customField1 = ComponentAccessor.getCustomFieldManager().getCustomFieldObject("customfield_13803");
def impact = (String)issue.getCustomFieldValue(customField1);
def customField2 = ComponentAccessor.getCustomFieldManager().getCustomFieldObject("customfield_13802");
def urgency = (String)issue.getCustomFieldValue(customField2);
def i1 = "All users affected";
def i2 = "Substantial number of users affected";
def i3 = "Multiple users";
def i4 = "Single user";
def u1 = "Complete outage";
def u2 = "Partial outage";
def u3 = "Minor outage";
def p1 = "Prio 1"
def p2 = "Prio 2"
def p3 = "Prio 3"
def p4 = "Prio 4"
def calculatedPriority = ""
if (impact.equals(i1))
{
if (urgency.equals(u1))
{
calculatedPriority = p1
}
else if (urgency.equals(u2))
{
calculatedPriority = p2
}
else if (urgency.equals(u3))
{
calculatedPriority = p3
}
}
else if (impact.equals(i2))
{
if (urgency.equals(u1))
{
calculatedPriority = p2
}
else if (urgency.equals(u2))
{
calculatedPriority = p3
}
}
else if (impact.equals(i3) && urgency.equals(u1))
{
calculatedPriority = p3
}
else
{
calculatedPriority = p4
}
currentIssue.setPriorityId(ComponentAccessor.getConstantsManager().getPriorities().find{it.getName().equals(calculatedPriority)}.getId())
Actually, I've fixed it with a listener. Consider this issue closed (unless someone has more elegant code :))
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.