尝试根据复选框自动创建子任务。不会创建子任务,但不会收集任何错误

Trying to auto-create subtasks based off of checkboxes. Subtask will not get created but there are no errors being collected

我正在做一个 JIRA 项目,我需要做的一件事是根据初始问题创建时选定的复选框自动创建子任务。所有值都已正确输入,但不会执行子任务,也没有要检查的错误。我放入错误集合是子任务创建验证结果返回错误,但是当我 运行 代码时它没有报告任何错误。

我错过了什么?

import com.atlassian.jira.issue.Issue
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.bc.issue.IssueService.CreateValidationResult
import com.atlassian.jira.bc.issue.IssueService.IssueResult
import com.atlassian.jira.util.ImportUtils
import com.atlassian.jira.workflow.WorkflowTransitionUtil;
import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl;
import com.atlassian.jira.util.JiraUtils;
import com.atlassian.jira.project.Project
import java.lang.Boolean;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.security.JiraAuthenticationContext
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.issue.IssueInputParametersImpl
import com.atlassian.jira.config.SubTaskManager

def customFieldManager = ComponentAccessor.getCustomFieldManager() 
def issueFactory = ComponentAccessor.getIssueFactory()
def issueManager = ComponentAccessor.getIssueManager() 
def cfsubTasks = customFieldManager.getCustomFieldObjectByName("CRCs Needed")
def checkboxTypeIDs = ['Endpoint':"11309", "IP/DNS Blocklist":"11311", "Network Signature":"11310", "PCAP Pull":"11306", "Splunk Dashboard":"11305"]
def summaryMap = ['Endpoint':"Endpoint Countermeasure", "IP/DNS Blocklist":"IP/DNS Countermeasure", "Network Signature":"Signature Countermeasure", "PCAP Pull":"PCAP Pull", "Splunk Dashboard":"Splunk Dashboard"]
def subTasks = issue.getCustomFieldValue(cfsubTasks);

SubTaskManager subTaskManager = ComponentAccessor.getSubTaskManager()
IssueService issueService = ComponentAccessor.getIssueService();
Project project = issue.getProjectObject();
Long issueId = issue.getId()
JiraAuthenticationContext authenticationContext = ComponentAccessor.getOSGiComponentInstanceOfType(JiraAuthenticationContext.class);
Object userObject = authenticationContext.getUser()
User user = userObject instanceof ApplicationUser ? ((ApplicationUser) userObject).getDirectoryUser() : (User) userObject;

subTasks.each(){
    def key = it.toString()
    IssueInputParameters inputParameters = issueService.newIssueInputParameters()
    inputParameters.setProjectId(project.getId())
    inputParameters.setSummary(summaryMap[key])
    inputParameters.setIssueTypeId(checkboxTypeIDs[key])
    inputParameters.setReporterId(user.getName())
    inputParameters.setApplyDefaultValuesWhenParameterNotProvided(true)

    CreateValidationResult createSubTaskValidationResult = issueService.validateSubTaskCreate(userObject, issueId, inputParameters)
    if (!createSubTaskValidationResult.isValid()) {
            Collection<String> errors = createSubTaskValidationResult.getErrorCollection().getErrorMessages();
            log.error("Sub-task cannot be created due to following reasons: " + errors);
            return;
    } else {
            IssueResult issueResult = issueService.create(userObject, createSubTaskValidationResult)
            Issue subTask = issueResult.getIssue()
            subTaskManager.createSubTaskIssueLink(issue, subTask, user)
            log.debug("Sub-task " + subTask + " for issue " + issue + " is created");
    }
}
else {
        IssueResult issueResult = issueService.create(userObject, createSubTaskValidationResult)
        Issue subTask = issueResult.getIssue()
        subTaskManager.createSubTaskIssueLink(issue, subTask, user)
        log.debug("Sub-task " + subTask + " for issue " + issue + " is created");
}

在这段代码中,您将获得一个 IssueResult instance when you try to create the issue. The IssueResult also has isValid and getErrorCollection 方法。您应该使用它们来检查在创建问题期间是否发生任何错误。