2012-06-04 25 views
9

Ich frage mich, ob es eine Möglichkeit gibt, Teilaufgaben automatisch zu erstellen, wenn das Problem erstellt wurde.Erstellen Sie JIRA-Unteraufgaben automatisch, wenn das Problem erstellt wurde

Zum Beispiel erstelle ich einen benutzerdefinierten Standard Issue Typ, XXX und Teilaufgaben Ausgabe Typ YYY und ZZZ. Wenn ich ein Problem mit dem Typ XXX erstelle, werden automatisch zwei Teilaufgaben mit dem entsprechenden Problemtyp YYY und ZZZ erstellt.

Antwort

10

Sie könnten so mit diesem leicht Jira Scripting Suite per Post Funktion für die Ausgabe Erstellung Übergang mit auf den Workflow des Projekts. Beispielcode:

from com.atlassian.jira.util import ImportUtils 
from com.atlassian.jira import ManagerFactory 
from com.atlassian.jira.issue import MutableIssue 
from com.atlassian.jira import ComponentManager 
from com.atlassian.jira.issue.link import DefaultIssueLinkManager 
from org.ofbiz.core.entity import GenericValue; 

# get issue objects 
issueManager = ComponentManager.getInstance().getIssueManager() 
issueFactory = ComponentManager.getInstance().getIssueFactory() 
authenticationContext = ComponentManager.getInstance().getJiraAuthenticationContext() 
subTaskManager = ComponentManager.getInstance().getSubTaskManager(); 
issueLinkManager = ComponentManager.getInstance().getIssueLinkManager() 
customFieldManager = ComponentManager.getInstance().getCustomFieldManager() 
userUtil = ComponentManager.getInstance().getUserUtil() 

# define subtask 
issueObject = issueFactory.getIssue() 
issueObject.setProject(issue.getProject()) 
issueObject.setIssueTypeId("5") # normal subtask 
issueObject.setParentId(issue.getId()) 

# set subtask attributes 
issueObject.setFixVersions(issue.getFixVersions()) 
issueObject.setAffectedVersions(issue.getAffectedVersions()) 
issueObject.setPriority(issue.getPriority()) 
issueObject.setSummary("Auto created sub task- "+issue.getSummary()) 
issueObject.setAssignee(userUtil.getUserObject("joe")) 

# Create subtask on JIRA 4.x 
# subTask = issueManager.createIssue(authenticationContext.getUser(), issueObject) 
# subTaskManager.createSubTaskIssueLink(issue.getGenericValue(), subTask, authenticationContext.getUser()) 

# Create subtask on JIRA 5 and higher 
subTask = issueManager.createIssueObject(authenticationContext.getLoggedInUser(), issueObject) 
subTaskManager.createSubTaskIssueLink(issue, subTask, authenticationContext.getLoggedInUser()) 

# Link parent issue to subtask issueLinkManager.createIssueLink(issue.getId(),issueObject.getId(),10300,1,authenticationContext.getUser()) 

# Update search indexes 
ImportUtils.setIndexIssues(True); 
ComponentManager.getInstance().getIndexManager().reIndex(subTask) 
ImportUtils.setIndexIssues(False) 
+0

Hatte eine 'com.atlassian.jira.exception.CreateException', bis die Zeile mit' setIssueType' unkommentiert wurde. – Nakilon

+0

@Nakilonless danke! Fest.. – Kuf

0

Eine Sache ist zu überlegen, was passiert, wenn das übergeordnete Thema geschlossen wird, bevor alle Unteraufgaben geschlossen sind. Ich würde empfehlen, einen Haken zu setzen, um den Benutzer aufzufordern, alle Teilaufgaben zu adressieren, bevor das Problem geschlossen wird.

1

Erstellen Sie einfach ein Ticket als „Vorlage“ (mit allen notwendigen Teilaufgaben) und kopieren/klonen, wenn neue Instanzen zu schaffen.