使用转换引发异常编辑JIRA问题的解决方案

使用转换引发异常编辑JIRA问题的解决方案,jira,jira-plugin,jira-rest-api,Jira,Jira Plugin,Jira Rest Api,我有两个JIRA项目,例如DEV和CLIENT。当DEV项目中的问题解决更改为DONE时,我想将CLIENT项目中的问题解决设置为DONE 为此,我编写了以下代码: public void changeTransition(com.atlassian.jira.issue.Issue devIssue, Issue clientIssue, JiraRestClient restClient) { IssueRestClient issueClient = restClient.getI

我有两个JIRA项目,例如
DEV
CLIENT
。当
DEV
项目中的问题解决更改为
DONE
时,我想将
CLIENT
项目中的问题解决设置为
DONE

为此,我编写了以下代码:

public void changeTransition(com.atlassian.jira.issue.Issue devIssue, Issue clientIssue, JiraRestClient restClient) {
    IssueRestClient issueClient = restClient.getIssueClient();
    Iterable<Transition> transitions = issueClient.getTransitions(clientIssue.getTransitionsUri()).claim();
    final Transition doneIssueTransition = getTransitionByName(transitions, "Done");  //this returns done Transition
    if (doneIssueTransition != null) {
        ImmutableList.Builder<FieldInput> builder = ImmutableList.builder();
        builder.add(new FieldInput(IssueFieldId.RESOLUTION_FIELD, ComplexIssueInputFieldValue.with("name", devIssue.getResolution().getName())));
        ImmutableList<FieldInput> fieldInputs = builder.build();
        TransitionInput transitionInput = new TransitionInput(doneIssueTransition.getId(), fieldInputs, prepareComment(devIssue));
        issueClient.transition(clientIssue.getTransitionsUri(), transitionInput).claim();
    }
}

代码有什么问题吗?这个例外意味着什么?要解决此问题,我应该做哪些更改?

DEV
CLIENT
共享相同的工作流吗?如果不是,转换的ID可能会有所不同。确保查找ID是否实际相同。@SgtTrace yes两者共享相同的工作流。关于转换id,我使用的是客户端项目中的转换id
done transition
,这样就可以了,对吗?您必须记住,转换是从一个特定状态到另一个特定状态的。因此,如果您想从
进行中
转换到
完成
,则ID不同于从
等待
转换到
完成
。因此,您需要做的基本上是根据目标和源状态的元组进行切换,然后进行相应的转换。这可能会根据您使用的状态进行各种转换。@SgtTrace我尝试更新的任何字段都会遇到相同的异常。
DEV
CLIENT
是否共享相同的工作流?如果不是,转换的ID可能会有所不同。确保查找ID是否实际相同。@SgtTrace yes两者共享相同的工作流。关于转换id,我使用的是客户端项目中的转换id
done transition
,这样就可以了,对吗?您必须记住,转换是从一个特定状态到另一个特定状态的。因此,如果您想从
进行中
转换到
完成
,则ID不同于从
等待
转换到
完成
。因此,您需要做的基本上是根据目标和源状态的元组进行切换,然后进行相应的转换。根据您使用的状态,这可能需要不同的转换。@SgtTrace对于任何试图更新的字段,我都会遇到相同的异常。
Field 'resolution' cannot be set. It is not on the appropriate screen, or unknown.