Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Automation to clone issues from project A to project B Getting Error

Tempo Digital
Contributor
November 3, 2023

Hello,

I'm trying to clone an issue from project A to B with a Transition Issue trigger. But I got some error messages like:

Can not create issue in project/issue type

10012/10027

 

Any suggestions/solutions?
Thank you

Error Jira.png

3 answers

1 accepted

0 votes
Answer accepted
Derek Mart
Contributor
November 20, 2018

Working Post Function:

import com.atlassian.jira.ComponentManager;

import com.atlassian.jira.project.Project;

import com.atlassian.jira.component.ComponentAccessor;

import com.atlassian.jira.event.type.EventDispatchOption;

import com.atlassian.jira.user.ApplicationUser;

import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;

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.JiraAuthenticationContext;

ComponentManager componentManager = ComponentManager.getInstance();
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();

ProjectRoleManager projectRoleManager = ComponentManager.getComponentInstanceOfType(ProjectRoleManager.class) as ProjectRoleManager;

ProjectRole ccRole = projectRoleManager.getProjectRole("Default Cc");

IssueManager issueManager = ComponentAccessor.getIssueManager()

def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()

MutableIssue issueToUpdate = (MutableIssue) issue;

CustomField customField_CC = customFieldManager.getCustomFieldObject(10400);
List<ApplicationUser> userList = new ArrayList<>();
for (ApplicationUser userKey : (List<ApplicationUser>) issue.getCustomFieldValue(customField_CC))
{
userList.add(userKey);
}

ProjectRoleActors actors = projectRoleManager.getProjectRoleActors(ccRole,issue.getProjectObject());
for (ApplicationUser userKey : actors.getUsers())
{
userList.add(userKey);
}

userList = userList.unique();
issue.setCustomFieldValue(customField_CC, userList);
issueManager.updateIssue(currentUser,issue,EventDispatchOption.ISSUE_UPDATED,false);

 

0 votes
Derek Mart
Contributor
November 20, 2018

network issue. duplicate post.

0 votes
Nic Brough -Adaptavist-
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 Champions.
November 1, 2018

There's not a huge amount to do here really.

I think all you need is to drop the lines about getting the project and issue, as the current issue is available already.

So replace "MutableIssue issue = ... " because the object "issue" will already be the issue.  But it is not a MutableIssue, so you'll need to cast it to use it later.  e.g. MutableIssue myIssue - (MutableIssue) issue ;

Then the project - 

Project project = projectManager.getProjectByCurrentKey("TEST")
ProjectRoleActors actors = projectRoleManager.getProjectRoleActors(ccRole, project)

 

Can become

 

 

ProjectRoleActors actors = projectRoleManager.getProjectRoleActors(ccRole, issue.getProjectObject() )

Derek Mart
Contributor
November 20, 2018

Thank you.

Suggest an answer

Log in or Sign up to answer