2012-06-04 24 views
9

मुझे आश्चर्य है कि समस्या उत्पन्न होने पर उप-कार्य स्वचालित रूप से बनाने का एक तरीका है।समस्या उत्पन्न होने पर JIRA उप-कार्य स्वचालित रूप से बनाएं

उदाहरण के लिए, मैं कस्टम मानक समस्या प्रकार, XXX, और उप-कार्य समस्या प्रकार YYY और ZZZ बनाते हैं। जब मैं प्रकार XXX के साथ कोई समस्या उत्पन्न करता हूं, तो संबंधित समस्या प्रकार YYY और ZZZ के साथ दो उप-कार्य स्वचालित रूप से बनाए जाएंगे।

उत्तर

10

प्रोजेक्ट के वर्कफ़्लो पर समस्या निर्माण संक्रमण पर पोस्ट फ़ंक्शन का उपयोग करके आप आसानी से Jira Scripting Suite का उपयोग कर सकते हैं। नमूना कोड:

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

'setIssueType' के साथ लाइन को असम्बद्ध किए जाने तक 'com.atlassian.jira.exception.CreateException' था। – Nakilon

+0

@Nakilonless धन्यवाद! तय .. – Kuf

0

विचार करने की एक बात यह है कि सभी सबटास्क बंद होने से पहले माता-पिता समस्या बंद होने पर क्या होता है। मैं इस मुद्दे को बंद करने से पहले सभी सबटास्क को संबोधित करने के लिए संकेत देने के लिए एक हुक डालने की सलाह दूंगा।

0

मुझे ऐड-ऑन स्क्रिप्ट धावक - http://isolasoftware.it/2014/01/08/create-an-issue-in-jira-with-predefined-sub-tasks/ का उपयोग करके एक आसान समाधान मिला।

आपको कोई कोड लिखने की ज़रूरत नहीं है, लेकिन वर्कफ़्लो संपादक में पोस्ट फ़ंक्शन "उप-कार्य बनाएं" सेट करें।

1

बस "टेम्पलेट" नामक टिकट बनाएं (सभी आवश्यक सबटास्क के साथ) और नए उदाहरण बनाते समय इसे कॉपी/क्लोन करें।