2016-01-11 70 views
0

我正在研究jira中的一些groovy腳本。腳本通過使用scriptrunner插件作爲postfunction被觸發。 代碼,產生錯誤的是這一個:在jira中鏈接子任務與groovy

ComponentAccessor CompAcc = new ComponentAccessor() 
SubTaskManager subTaskManager = CompAcc.getSubTaskManager() 
... 
def subTask = issueManager.createIssue(CompAcc.getJiraAuthenticationContext().getLoggedInUser(), issueObject) 
subTaskManager.createSubTaskIssueLink(issue, subTask, usera) 

這裏的問題是這個問題,對其中的postfunction被觸發。 子任務get's創建但未鏈接到調用任務。

這是錯誤:

2016-01-11 11:39:39,925 http-bio-8063-exec-19 ERROR asu 699x3972x1 16m4yz4 10.1.21.129 /secure/CommentAssignIssue.jspa [scriptrunner.jira.workflow.ScriptWorkflowFunction] ************************************************************************************* 
2016-01-11 11:39:39,926 http-bio-8063-exec-19 ERROR asu 699x3972x1 16m4yz4 10.1.21.129 /secure/CommentAssignIssue.jspa [scriptrunner.jira.workflow.ScriptWorkflowFunction] Script function failed on issue: RQA-7338, actionId: 81, file: /home/qa/Tools/Jira/scripts/CreateDevTestExecutionSubtask.groovy 
groovy.lang.MissingMethodException: No signature of method: com.atlassian.jira.config.DefaultSubTaskManager.createSubTaskIssueLink() is applicable for argument types: (com.atlassian.jira.issue.IssueImpl, com.atlassian.jira.ofbiz.IssueGenericValue, com.atlassian.jira.user.DelegatingApplicationUser) values: [RQA-7338, [timespent:null, timeoriginalestimate:7200, project:11400, ...], ...] 
Possible solutions: createSubTaskIssueLink(com.atlassian.jira.issue.Issue, com.atlassian.jira.issue.Issue, com.atlassian.crowd.embedded.api.User), createSubTaskIssueLink(org.ofbiz.core.entity.GenericValue, org.ofbiz.core.entity.GenericValue, com.atlassian.crowd.embedded.api.User) 
      at CreateDevTestExecutionSubtask.run(CreateDevTestExecutionSubtask.groovy:212) 

所以我需要知道的,是我怎麼能轉換com.atlassian.jira.issue.IssueImplcom.atlassian.jira.ofbiz。 IssueGenericValuecom.atlassian.jira.issue.Issue,以便子任務的鏈接再次工作。

感謝您的幫助!

回答

0

方法issueManager.createIssue()已棄用,它返回GenericValue。 改爲使用issueManager.createIssueObject(),它返回問題。

所以,你的代碼應該是這樣的:

def currentUser = CompAcc.getJiraAuthenticationContext().getLoggedInUser() 
Issue subTask = issueManager.createIssueObject(currentUser, issueObject) 
subTaskManager.createSubTaskIssueLink(issue, subTask, usera)