В примере нет ошибки.
Я имел в виду, что stepId = X в одном workflow будет связан со статусом Y, а в другом workflow тот же stepId = X будет связан со статусом Z Изначальный код со скриншота выдаст одинаковый результат, невалидный в обоих случаях. Он вернёт status для statusId = X, что в общем случае не равно ни Y, ни Z
А я имел ввиду, что ты путаешь переход и step. StepId будет равен id исходного статуса
Вот одинаковые stepId, но разные статусы
Вот так получилось найти целевой статус: WorkflowDescriptor descriptor = (WorkflowDescriptor) transientVars.get("descriptor") def step = transientVars["createdStep"] as Step StepDescriptor stepDescriptor = descriptor.getStep(step.getStepId()) def status = ComponentAccessor.getConstantsManager().getStatus((String) stepDescriptor.getMetaAttributes().get("jira.status.id")) Код для получения statusId по stepId взял из исходников Jira
У workflow есть метод getLinkedStatus, чтобы не получать мета атрибуты. Получится что-то типа Step step = transientVars["createdStep"] StepDescriptor stepDescriptor = descriptor.getStep(step.getStepId()) ComponentAccessor.workflowManager.getWorkflow(issue).getLinkedStatus(stepDescriptor).id
Обсуждают сегодня