Hi,
There is a script, that creates subtasks, and link them to Project that user is creating. What I am trying to do, is to set subtasks FixVersion the same as the FixVersion chosed in Project, while user create it.
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.bc.customfield.CreateValidationResult
import com.atlassian.jira.issue.link.IssueLinkManager
import com.atlassian.jira.issue.link.IssueLink
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.util.ImportUtils
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.project.version.Version
def project_key = "RM"
Issue issue = issue;
Long project_id = 13713
IssueService issueService = ComponentAccessor.getIssueService();
IssueInputParameters issueInputParameters = issueService.newIssueInputParameters();
void CreateSubIssues(IssueInputParameters iip, Long ProjectID, IssueService issueService, Issue issue)
{
def key = issue.getKey();
def reporter = issue.getReporterId();
MutableIssue missue = ComponentAccessor.getIssueManager().getIssueObject(key);
Long parent_issue_id = missue.getId();
def parent_issue_summary = missue.getSummary();
def linkMgr = ComponentAccessor.getIssueLinkManager();
def sequence = 0;
def wasIndexing = ImportUtils.indexIssues
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def fixVersion = issue.getFixVersions()
def declared_summarys = ["Release Management: ","Scope Registry: ", "Infrastructure Support: ", "UAT Implementation Plan: ", "UAT Implementation Meeting: ", "UAT Fix Registry: ", "System Unavailability Communication: ", "PROD Implementation Plan: ", "PROD Implementation Meeting: ", "PROD Fix Registry: ", "Risk/Problem Registry: ", "Lessons Learned Registry: ", "Report: "]
for(int i = 0;i<13;i++)
{
if(i==0)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("3")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("4")
}
if(i==1)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("13201")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("1")
}
if(i==2)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("3")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("2")
}
if(i==3)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("3")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("1")
}
if(i==4)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("12000")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
}
if(i==5)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("13201")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
}
if(i==6)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("10915")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("2")
}
if(i==7)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("3")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("1")
}
if(i==8)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("12000")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
}
if(i==9)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("13201")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
}
if(i==10)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("13201")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
}
if(i==11)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("13201")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
}
if(i==12)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("13300")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
}
IssueService.CreateValidationResult result = issueService.validateCreate(currentUser, iip);
if(!result.isValid())
{
log.error("Issues nie zostały utworzone: "+result.getErrorCollection());
return
}
def newIssue = issueService.create(currentUser, result).getIssue();
Long newIssueId = newIssue.id
for (IssueLink link in linkMgr.getOutwardLinks(missue.id)) {
if ("Epic-Story Link" == link.issueLinkType.name) {
sequence++;
}
}
linkMgr.createIssueLink(parent_issue_id, newIssueId, (Long)10200, (Long)sequence, currentUser)
ImportUtils.indexIssues = wasIndexing
}
}
if(project_id == 13713 && issue.getIssueTypeId() == "6")
{
CreateSubIssues(issueInputParameters, project_id, issueService, issue)
}
I wonder if i should use .setFixVersion?
It does not seems to work, tried to find solution online, but i failed.
Hello @Damian Wodziński
No. You should use setFixVersionIds()
Like this
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.bc.customfield.CreateValidationResult
import com.atlassian.jira.issue.link.IssueLinkManager
import com.atlassian.jira.issue.link.IssueLink
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.util.ImportUtils
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.project.version.Version
def project_key = "RM"
Issue issue = issue;
Long project_id = 13713
IssueService issueService = ComponentAccessor.getIssueService();
IssueInputParameters issueInputParameters = issueService.newIssueInputParameters();
void CreateSubIssues(IssueInputParameters iip, Long ProjectID, IssueService issueService, Issue issue)
{
def key = issue.getKey();
def reporter = issue.getReporterId();
MutableIssue missue = ComponentAccessor.getIssueManager().getIssueObject(key);
Long parent_issue_id = missue.getId();
def parent_issue_summary = missue.getSummary();
def linkMgr = ComponentAccessor.getIssueLinkManager();
def sequence = 0;
def wasIndexing = ImportUtils.indexIssues
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def fixVersionsLlist = issue.getFixVersions().collect {it.getId()}
def fixVersionArray = fixVersionsLlist.toArray(new Long())
def declared_summarys = ["Release Management: ","Scope Registry: ", "Infrastructure Support: ", "UAT Implementation Plan: ", "UAT Implementation Meeting: ", "UAT Fix Registry: ", "System Unavailability Communication: ", "PROD Implementation Plan: ", "PROD Implementation Meeting: ", "PROD Fix Registry: ", "Risk/Problem Registry: ", "Lessons Learned Registry: ", "Report: "]
for(int i = 0;i<13;i++)
{
if(i==0)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("3")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("4")
.setFixVersionIds(fixVersionArray)
}
if(i==1)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("13201")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("1")
.setFixVersionIds(fixVersionArray)
}
if(i==2)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("3")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("2")
.setFixVersionIds(fixVersionArray)
}
if(i==3)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("3")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("1")
.setFixVersionIds(fixVersionArray)
}
if(i==4)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("12000")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
.setFixVersionIds(fixVersionArray)
}
if(i==5)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("13201")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
.setFixVersionIds(fixVersionArray)
}
if(i==6)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("10915")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("2")
.setFixVersionIds(fixVersionArray)
}
if(i==7)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("3")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("1")
.setFixVersionIds(fixVersionArray)
}
if(i==8)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("12000")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
.setFixVersionIds(fixVersionArray)
}
if(i==9)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("13201")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
.setFixVersionIds(fixVersionArray)
}
if(i==10)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("13201")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
.setFixVersionIds(fixVersionArray)
}
if(i==11)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("13201")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
.setFixVersionIds(fixVersionArray)
}
if(i==12)
{
iip.setProjectId(ProjectID)
.setAssigneeId(issue.getAssigneeId())
.setIssueTypeId("13300")
.setSummary(declared_summarys[i]+parent_issue_summary)
.setReporterId(issue.getReporterId())
.setDescription("")
.setStatusId("10022")
.setPriorityId("3")
.setFixVersionIds(fixVersionArray)
}
IssueService.CreateValidationResult result = issueService.validateCreate(currentUser, iip);
if(!result.isValid())
{
log.error("Issues nie zostały utworzone: "+result.getErrorCollection());
return
}
def newIssue = issueService.create(currentUser, result).getIssue();
Long newIssueId = newIssue.id
for (IssueLink link in linkMgr.getOutwardLinks(missue.id)) {
if ("Epic-Story Link" == link.issueLinkType.name) {
sequence++;
}
}
linkMgr.createIssueLink(parent_issue_id, newIssueId, (Long)10200, (Long)sequence, currentUser)
ImportUtils.indexIssues = wasIndexing
}
}
if(project_id == 13713 && issue.getIssueTypeId() == "6")
{
CreateSubIssues(issueInputParameters, project_id, issueService, issue)
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.