使用Jira Rest Client无法将工单流转为Done状态的问题求助
问题根因
你遇到的报错是因为级联选择类型(Cascading Select)自定义字段的赋值格式不符合Jira REST API的要求。这类选择型字段(包括单选、多选、级联选择)不能直接传入字符串类型的选项名称或选项ID,需要按照Jira要求的嵌套结构传参提交。
你两次尝试失败的具体问题分别是:
- 第一次直接传入字符串
"Duplicate",Jira接口无法识别该值为选择字段的有效值 - 第二次直接传入字符串类型的选项ID
"12091",依然不符合结构要求,所以仍然报错。
修复方案
使用JRJC提供的ComplexIssueInputFieldValue构造符合要求的字段值即可,示例代码如下:
import com.atlassian.jira.rest.client.api.domain.input.ComplexIssueInputFieldValue; // 构造父选项值,用选项ID传参 ComplexIssueInputFieldValue parentOption = ComplexIssueInputFieldValue.with("id", "12091"); // 给字段赋值 Collection<FieldInput> fieldInputs = Arrays.asList(new FieldInput("customfield_11607", parentOption)); TransitionInput ti = new TransitionInput(doneTransition.getId(), fieldInputs); promise = client.transition(keyToIssuesMap.get(duplicate), ti).claim();
如果你想用选项名称赋值,把构造参数替换为"value"和对应选项名称即可:
ComplexIssueInputFieldValue parentOption = ComplexIssueInputFieldValue.with("value", "Duplicate");
额外注意事项
- 先确认
customfield_11607是你当前Jira实例中该工作流Done转换对应的必填级联字段ID,同时确认你使用的选项ID/名称和该字段的配置完全匹配。 - 普通单选、多选类型的自定义字段也用同样的方式构造字段值即可;如果是级联选择的子选项,需要在父选项结构中额外传入
child对应的嵌套结构。
内容的提问来源于stack exchange,提问作者user2250246
相关产品推荐
相关产品推荐

