Hi.
We have a problem with this groovy.Seem´s like work, but doesn´t.
We need to assign in a transition depend by value of a custom field.The custom field name is "So_stage"
When So_stage value = "Acquisition" we need to assign the issue to BD rol
When So_stage value = "Execution" we need to assign the issue to PM rol
When So_stage value = "1st_mp_order" we need to assign the issue to Supply chain rol
When So_stage value = "MP" we need to assign the issue to user macarena.gonzalez
This is the script.
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.user.util.UserManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.UpdateIssueRequest
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.bc.projectroles.ProjectRoleService;
import com.atlassian.jira.project.Project;
import com.atlassian.jira.project.ProjectManager;
import com.atlassian.jira.security.roles.ProjectRole;
import com.atlassian.jira.security.roles.ProjectRoleActors;
import com.atlassian.jira.security.roles.ProjectRoleManager;
import com.atlassian.jira.security.roles.RoleActor;
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
CustomField cf = customFieldManager.getCustomFieldObjectByName("SO_Stage");
String dept_value = issue.getCustomFieldValue(cf).toString();
IssueManager issueMgr = ComponentAccessor.getIssueManager();
ProjectRoleManager projectRoleManager = ComponentAccessor.getComponentOfType(ProjectRoleManager.class) as ProjectRoleManager
// Get BD Role
ProjectRole rsbdAuth = projectRoleManager.getProjectRole("BD")
ProjectRoleActors rsbdActors = projectRoleManager.getProjectRoleActors(rsbdAuth, issue.getProjectObject())
def rsbdAssignee = rsbdActors.getUsers().toList().first()
// Get PM Role
ProjectRole rspmAuth = projectRoleManager.getProjectRole("PM")
ProjectRoleActors rspmActors = projectRoleManager.getProjectRoleActors(rspmAuth, issue.getProjectObject())
def rspmAssignee = rspmActors.getUsers().toList().first()
// Get Supply Chain Role
ProjectRole rsscAuth = projectRoleManager.getProjectRole("Supply Chain")
ProjectRoleActors rsscActors = projectRoleManager.getProjectRoleActors(rsscAuth, issue.getProjectObject())
def rsscAssignee = rspmActors.getUsers().toList().first()
//usuario por defecto si no lo pones, no funciona
def loggedUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
def assigneeName = "usuario.generico"
//Set Acquisition Custom field
if (dept_value.equals("Acquisition"))
{
log.error("assignee set")
issue.setAssignee(rsbdActors.getUsers().toList()?.first())
}
//Set Execution Custom field
if (dept_value.equals("Execution"))
{
log.error("assignee set")
issue.setAssignee(rspmActors.getUsers().toList()?.first())
}
//Set 1st_MP_Order Custom field
if (dept_value.equals("1st_MP_Order"))
{
log.error("assignee set")
issue.setAssignee(rsscActors.getUsers().toList()?.first())
//Set MP as user
}
if (dept_value.equals("MP")){
assigneeName = "macarena.gonzalez";
}
MutableIssue mutableIssue = issueMgr.getIssueObject(issue.id);
ApplicationUser ciuser = ComponentAccessor.getUserManager().getUserByName(assigneeName);
issue.assignee = ciuser;
mutableIssue.setAssignee(ComponentAccessor.getUserManager().getUserByName(assigneeName))
issueMgr.updateIssue(loggedUser, mutableIssue, EventDispatchOption.DO_NOT_DISPATCH, false);
seems like works, but doesn´t