Forums

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

How to set Fix Version value in subtask the same as it parent upon creating issue?

Damian Wodziński August 8, 2018

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.

1 answer

0 votes
Mark Markov
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 Leaders.
August 16, 2018

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)
}

Suggest an answer

Log in or Sign up to answer