I want a set of subtasks created, which are the components of the parent. So, if I have a Parent issue with 3 component names of "X", "A" and "B", then I want 3 subtasks created for that jira.
Here's my code at this point, but it's not working:
(I've put it into a Post-function.)
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueInputParametersImpl
def issue = event.issue
Collection components = issue.getComponents();
Iterator componentIterator = components.iterator();
while (componentIterator.hasNext()) {
component = componentIterator.next()
String componentName = component.getString("name");
String componentId = component.getString("id");
createSubtask(issue);
}
def createSubtask(Issue parentIssue) {
def subTaskManager = ComponentAccessor.subTaskManager
def asUser = ComponentAccessor.jiraAuthenticationContext.loggedInUser
def constantsManager = ComponentAccessor.constantsManager
def issueService = ComponentAccessor.issueService
def subtaskIssueType = constantsManager.allIssueTypeObjects.findByName("Approval Sub-task")
def issueInputParameters = new IssueInputParametersImpl()
issueInputParameters
.setProjectId(parentIssue.projectId)
.setIssueTypeId(subtaskIssueType.id)
.setSummary(parentIssue.summary+'- **'+componentName)
.setComponentIds(componentId)
//.setDescription('A description')
.setReporterId(asUser.key)
def createValidationResult = ComponentAccessor.issueService.validateSubTaskCreate(asUser, parentIssue.id, issueInputParameters)
if (!createValidationResult.valid) {
log.error createValidationResult.errorCollection
return
}
def newIssue = issueService.create(asUser, createValidationResult).issue
subTaskManager.createSubTaskIssueLink(parentIssue, newIssue, asUser)
}
hi Simon, did you find an answer now? I am also looking for the solution
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.