2011-01-27 5 views
9

Мой сценарий: Один шаг в рабочем процессе jira должен иметь возможность отключить задачу, то есть установить версию исправления на «Нет».JIRA - Jira post function - Как обновить поле «исправить версию»?

я заметил, что я не был в состоянии обновить исправить версию в рабочий процесс после функции - я не знаю точно, почему, но в любом случае я реализовать JIRA плагин, чтобы помочь мне решить мою проблему, но я знаю Я иду против структуры jira (даже java хорошие методы кодирования :)). Я не уверен, может ли моя реализация вызвать проблемы, но действительно работает в моем экземпляре jira 4.1.x.

Как я реализовал плагин для обновления версии исправления в почтовой функции, 2 очень похожим образом:

public class BrandsclubPostFunctionUnschedule extends AbstractJiraFunctionProvider { 
    // Here I create an empty Collection to be the new value of FixVersion (empty because I need no version in Fix Version) 
    public void execute(Map transientVars, Map args, PropertySet ps) throws WorkflowException { 
     MutableIssue issue = this.getIssue(transientVars); 
     Collection<Version> newFixVersion = new ArrayList<Version>(); 
      issue.setFixVersions(newFixVersion); 
      issue.store(); 
    } 
} 

public class BrandsclubPostFunctionUnschedule extends AbstractJiraFunctionProvider { 
    // here I clear the Collection I got from "old" Fix Version and I have to set it again to make it work. 
    public void execute(Map transientVars, Map args, PropertySet ps) throws WorkflowException { 
     MutableIssue issue = this.getIssue(transientVars); 
     Collection fixVersions = issue.getFixVersions(); 
     fixVersions.clear(); 
     issue.setFixVersions(fixVersions); 
     issue.store(); 
    } 
} 

Я полагаю, что реальное решение должно использовать классы, как: ChangeItemBean, ModifiedValue, IssueChangeHolder - взяв в качестве примера методы updateValue из CustomFieldImpl (из исходного кода jira, проект: jira, package: com.atlassian.jira.issue.fields).

Моя точка публикации этого здесь:

  • Кто-нибудь знает, как реализовать JIRA плагин, содержащий пост функцию, чтобы изменить правильно Фикс версии?

ответ

4

Если вы хотите, чтобы сделать это правильно взглянуть на код для

./jira/src/java/com/atlassian/jira/workflow/function/issue/UpdateIssueFieldFunction.java processField()

Последующие функции, которые принимают входные параметры, пока не задокументированы. Другие места для кода - другие плагины с открытым исходным кодом.

1

Atlassian есть учебник делать только о том, что именно вы хотите сделать, here:

+0

Я не вижу ничего, что это показывает учебник как изменить объект проблемы. – mdoar

0

Я делаю это, как в этом фрагменте кода:

List<GenericValue> genericValueList = issueManager.getIssues(issues); 
versionManager.moveIssuesToNewVersion(genericValueList, lastVersion, newVersion); 
Смежные вопросы