Jira 数据中心 v 8.13.5 - 使用侦听器更新多问题选择器自定义字段时出错

问题描述 投票:0回答:1

我正在尝试构建一个如下所述的监听器:

字段 A:问题类型 X 上存在自定义多问题选择器 字段 B:问题类型 Y

上存在自定义多问题选择器

如果我的钥匙有两个问题:

x-111 :来自问题类型 X 的问题 y-111 :来自问题类型 Y

的问题

当我在 x-111 的字段 A 上选择问题 y-111 我想添加到字段 B x-111 的 y-111 如果我删除其中一个,它也会在另一个问题上更新。

我开始开发脚本,但出于任何技术原因我无法使用 updateIssue 或 ModifiedValue

这里是我的代码中的相关行:

def selectedIssues2 = selectedIssues + ", " + issue.getKey()
CustomField targetField2 = customFieldManager.getCustomFieldObject("customfield_14434")
MutableIssue issueToUpdate = currentIssue as MutableIssue; //issueToUpdate.setCustomFieldValue(targetField2,selectedIssues2)
//issueManager.updateIssue(用户,issueToUpdate,EventDispatchOption.ISSUE_UPDATED,false) targetField2.updateValue(null, currentIssue, new ModifiedValue(currentIssue.getCustomFieldValue(targetField2),selectedIssues2), changeHolder)

================================================= ================================================

我现在得到的错误:

2023-04-16 13:19:04,034 错误 [runner.AbstractScriptListener]:************************************ ****************************************************** *** 2023-04-16 13:19:04,034 错误 [runner.AbstractScriptListener]:事件脚本函数失败:com.atlassian.jira.event.issue.IssueEvent,文件:null java.lang.ClassCastException: java.lang.String 无法转换为 java.util.Collection 在 com.onresolve.scriptrunner.canned.jira.fields.editable.AbstractTrackedMultiCFType.updateValue(AbstractTrackedMultiCFType.groovy) 在 com.atlassian.jira.issue.fields.ImmutableCustomField.updateValue(ImmutableCustomField.java:426) 在 com.atlassian.jira.issue.fields.ImmutableCustomField.updateValue(ImmutableCustomField.java:396) 在 com.atlassian.jira.issue.fields.OrderableField$updateValue.call(未知来源) 在 com.atlassian.jira.issue.fields.OrderableField$updateValue.call(未知来源) 在 com.onresolve.scriptrunner.runner.field.IssueParametersCapturingImmutableCustomField.updateValue(IssueParametersCapturingImmutableCustomField.groovy:35) 在 com.atlassian.jira.issue.fields.OrderableField$updateValue$21.call(未知来源) 在 Script1222.run(Script1222.groovy:152)

谢谢

groovy jira listener scriptrunner-for-jira
1个回答
0
投票

如错误所述,问题在于尝试使用 String 而不是 Collection 更新自定义字段。阅读这部分:

java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Collection

我不确定

selectedIssues2
中到底是什么,也不确定自定义字段
customfield_14434
的确切CustomFieldType是什么。因此,接下来的部分假设
selectedIssues2
已经拥有一个问题列表和
customfield_14434
的自定义字段类型,它需要一个问题集合。

要完成您的需要,您需要使用一系列问题更新自定义字段。所以,你可以这样尝试:

def selectedIssues2 = selectedIssues + issue
CustomField targetField2 = customFieldManager.getCustomFieldObject("customfield_14434")
MutableIssue issueToUpdate = currentIssue as MutableIssue;
//issueToUpdate.setCustomFieldValue(targetField2,selectedIssues2)
//issueManager.updateIssue(user, issueToUpdate, EventDispatchOption.ISSUE_UPDATED, false)
targetField2.updateValue(null, currentIssue, new ModifiedValue(currentIssue.getCustomFieldValue(targetField2), selectedIssues2), changeHolder)

虽然最重要的部分是,变量

selectedIssues2
持有问题的集合,例如。一个 ArrayList 对象。

© www.soinside.com 2019 - 2024. All rights reserved.