Hello All,
I tried searching this solution and have yet to come across one,.
Currently what im trying to do is on create transition of a NON Epic issue, i create an EPIC case if a tick box is checked.
I would like to link this issue to the newly created EPIC but is not sure how to get the new EPIC issue key when its created.
Here is the code i have so far:
package IssueCreation import com.atlassian.jira.bc.issue.IssueService import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.IssueInputParameters import com.atlassian.jira.issue.index.IssueIndexManager import com.atlassian.jira.user.ApplicationUser import com.atlassian.jira.user.util.UserManager import com.atlassian.jira.util.ErrorCollection import com.atlassian.jira.issue.MutableIssue import com.atlassian.jira.issue.CustomFieldManager MutableIssue issue = ComponentAccessor.getIssueManager().getIssueObject('TEST-462') CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() IssueService issueService = ComponentAccessor.getIssueService(); IssueInputParameters inputParameters = issueService.newIssueInputParameters(); UserManager userManager = ComponentAccessor.getUserManager(); def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() String firstName = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject(10004)); String lastName = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject(10005)); String caseVal = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject(13013)); if (caseVal == "[Raise New]") { inputParameters .setProjectId(11700) // Case .setIssueTypeId("12301") // Epic .setReporterId(currentUser.name) .setSummary("TEST CASE") .setAssigneeId(currentUser.name) .addCustomFieldValue("customfield_10000", "test ID") .addCustomFieldValue("customfield_13004", "test Case") //.addCustomFieldValue("customfield_13002", issue.key) .addCustomFieldValue("customfield_10004", firstName) .addCustomFieldValue("customfield_10005", lastName) .addCustomFieldValue("customfield_13012", '13712'); IssueService.CreateValidationResult createValidationResult = issueService.validateCreate(currentUser, inputParameters) if(!createValidationResult.isValid()){ ErrorCollection errorCollection = createValidationResult.getErrorCollection(); return errorCollection.toString() } else{ IssueService.IssueResult createResult = issueService.create(currentUser, createValidationResult) IssueIndexManager issueIndexManager = ComponentAccessor.getIssueIndexManager(); issueIndexManager.reIndex(createResult.getIssue()) } }
Many thanks for the help.
Cheers,
Pon
Here is the solution for anyone who needs it:
package IssueCreation import com.atlassian.jira.bc.issue.IssueService import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.Issue import com.atlassian.jira.issue.IssueInputParameters import com.atlassian.jira.issue.index.IssueIndexManager import com.atlassian.jira.user.ApplicationUser import com.atlassian.jira.user.util.UserManager import com.atlassian.jira.util.ErrorCollection import com.atlassian.jira.issue.MutableIssue import com.atlassian.jira.issue.CustomFieldManager MutableIssue issue = ComponentAccessor.getIssueManager().getIssueObject('TEST-462') CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() IssueService issueService = ComponentAccessor.getIssueService(); IssueInputParameters inputParameters = issueService.newIssueInputParameters(); UserManager userManager = ComponentAccessor.getUserManager(); def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser() String firstName = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject(10004)); String lastName = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject(10005)); String caseVal = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject(13013)); if (caseVal == "[Raise New]") { inputParameters .setProjectId(11700) // Case .setIssueTypeId("12301") .setReporterId(currentUser.name) .setSummary("TEST CASE") .setAssigneeId(currentUser.name) .addCustomFieldValue("customfield_10000", "test ID") .addCustomFieldValue("customfield_13004", "test Case") //.addCustomFieldValue("customfield_13002", issue.key) .addCustomFieldValue("customfield_10004", firstName) .addCustomFieldValue("customfield_10005", lastName) .addCustomFieldValue("customfield_13012", '13712'); IssueService.CreateValidationResult createValidationResult = issueService.validateCreate(currentUser, inputParameters) if(!createValidationResult.isValid()){ ErrorCollection errorCollection = createValidationResult.getErrorCollection(); return errorCollection.toString() } else{ IssueService.IssueResult createResult = issueService.create(currentUser, createValidationResult) IssueIndexManager issueIndexManager = ComponentAccessor.getIssueIndexManager(); issueIndexManager.reIndex(createResult.getIssue()) def newIssue = createResult.getIssue() return newIssue } }
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.