Good morning All,
I have been reviewing the answers and suggestions provided throughout the discussion boards and need some assistance with a similar scenario where an issue needs to be assigned to a project role based on the issue type. Here, I have multiple issue types, each one is assigned to a specific project role.
Example - If issue type = "A" then assign to "Project Role A", If issue type = "B" then assign to "Project Role B", etc.
Now, this is all based on a selection made from a parent issue field where the requestor will choose one or many security actions, which will then trigger the new issue types. We just happen to have 12 different issues types that are worked by specific teams so I think it is better to have one script rather than 12 different post functions. And, this type of scenario is common on other departments so maintenance is more efficient this way.
I am not worried about assigning the issues to the first or last member of the role as these teams are designated to work these issues regularly.
Here is a snippet of my code:
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.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;
ProjectRoleManager projectRoleManager = ComponentAccessor.getComponentOfType(ProjectRoleManager.class) as ProjectRoleManager
// Get RS-Cancel Visit Auth Role
ProjectRole rsCancelVisitAuth = projectRoleManager.getProjectRole("RS-Cancel-Visit-Auth")
ProjectRoleActors rsCancelVisitAuthActors = projectRoleManager.getProjectRoleActors(rsCancelVisitAuth, project)
def rsCancelVisitAuthAssignee = rsCancelVisitAuthActors.getUsers().toList().first()
// Get RS-Change Combinations Role
ProjectRole rsChangeCombinations = projectRoleManager.getProjectRole("RS-Change Combinations")
ProjectRoleActors rsChangeCombinationsActors = projectRoleManager.getProjectRoleActors(rsChangeCombinations, project)
def rsChangeCombinationsAssignee = rsChangeCombinationsActors.getUsers().toList().first()
//Set RS-Cancel Visit Auth Role
if(issue.getComponentObjects().getName().equals("Cancel Visit Authorizations in SIMS/ JPAS"))
{
issue.setAssignee(rsCancelVisitAuthActors.getUsers().toList()?.first())
}
//Set RS-Change Combinations Role
if(issue.getComponentObjects().getName().equals("Change Combinations to Safe, Doors or Trilogies"))
{
issue.setAssignee(rsChangeCombinationsActors.getUsers().toList()?.first())
}
When I ran this, the issue was created, but unassigned. When I tested the script, I got the following error:
groovy.lang.MissingPropertyException: No such property: project for class: script1522070610930435935766
Now, I've created this based on all of the discussion boards so I may have some extra code, so please feel free to pick it apart.
Any help is greatly appreciated.
It must be something like this
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.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;
ProjectRoleManager projectRoleManager = ComponentAccessor.getComponentOfType(ProjectRoleManager.class) as ProjectRoleManager
// Get RS-Cancel Visit Auth Role
ProjectRole rsCancelVisitAuth = projectRoleManager.getProjectRole("RS-Cancel-Visit-Auth")
ProjectRoleActors rsCancelVisitAuthActors = projectRoleManager.getProjectRoleActors(rsCancelVisitAuth, issue.getProjectObject())
def rsCancelVisitAuthAssignee = rsCancelVisitAuthActors.getUsers().toList().first()
// Get RS-Change Combinations Role
ProjectRole rsChangeCombinations = projectRoleManager.getProjectRole("RS-Change Combinations")
ProjectRoleActors rsChangeCombinationsActors = projectRoleManager.getProjectRoleActors(rsChangeCombinations, issue.getProjectObject())
def rsChangeCombinationsAssignee = rsChangeCombinationsActors.getUsers().toList().first()
//Set RS-Cancel Visit Auth Role
if(issue.getComponents().find{it.getName().equals("Cancel Visit Authorizations in SIMS/ JPAS")})
{
issue.setAssignee(rsCancelVisitAuthActors.getUsers().toList()?.first())
}
//Set RS-Change Combinations Role
if(issue.getComponents().find{it.getName().equals("Change Combinations to Safe, Doors or Trilogies")})
{
issue.setAssignee(rsChangeCombinationsActors.getUsers().toList()?.first())
}
Unfortunately, that did not work. The issue was created, but not assigned.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You should log for the variable and find out what went wrong
for example. try to do it like this
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.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;
log.error("script in")
ProjectRoleManager projectRoleManager = ComponentAccessor.getComponentOfType(ProjectRoleManager.class) as ProjectRoleManager
// Get RS-Cancel Visit Auth Role
ProjectRole rsCancelVisitAuth = projectRoleManager.getProjectRole("RS-Cancel-Visit-Auth")
ProjectRoleActors rsCancelVisitAuthActors = projectRoleManager.getProjectRoleActors(rsCancelVisitAuth, issue.getProjectObject())
def rsCancelVisitAuthAssignee = rsCancelVisitAuthActors.getUsers().toList().first()
// Get RS-Change Combinations Role
ProjectRole rsChangeCombinations = projectRoleManager.getProjectRole("RS-Change Combinations")
ProjectRoleActors rsChangeCombinationsActors = projectRoleManager.getProjectRoleActors(rsChangeCombinations, issue.getProjectObject())
def rsChangeCombinationsAssignee = rsChangeCombinationsActors.getUsers().toList().first()
//Set RS-Cancel Visit Auth Role
if(issue.getComponents().find{it.getName().equals("Cancel Visit Authorizations in SIMS/ JPAS")})
{
log.error("assignee set")
issue.setAssignee(rsCancelVisitAuthActors.getUsers().toList()?.first())
}
//Set RS-Change Combinations Role
if(issue.getComponents().find{it.getName().equals("Change Combinations to Safe, Doors or Trilogies")})
{
log.error("assignee set")
issue.setAssignee(rsChangeCombinationsActors.getUsers().toList()?.first())
}
If you see in the logs only the "script in", then conditions did not work. You need to find out why. You can read groovy documentation. If you can not find an answer, then kindly ask.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.