2011-01-27 11 views
9

Mój scenariusz: Jeden krok w moim przepływie pracy w jirie powinien mieć możliwość niezaplanowania zadania, tj. Ustawić wersję poprawki na "Brak".JIRA - Funkcja postu Jira - Jak zaktualizować pole "poprawka wersji"?

Zauważyłem, że nie był w stanie zaktualizować fix wersję w funkcji przepływu pracy postu - nie wiem dokładnie dlaczego, ale tak czy owak zrobiłem wdrożyć wtyczkę Jira, aby pomóc mi rozwiązać mój problem, ale wiem Występuję przeciwko strukturze jira (nawet dobre praktyki kodowania java :)). Nie jestem pewien, czy moja implementacja może powodować problemy, ale faktycznie działa w mojej instancji jira 4.1.x.

Jak mam realizowane wtyczki zaktualizować wersję poprawek w funkcji postu, 2 bardzo podobne sposoby:

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(); 
    } 
} 

Przypuszczam, że prawdziwe rozwiązanie należy użyć klas takich jak: ChangeItemBean, ModifiedValue, IssueChangeHolder - branie za przykład metod updateValue z CustomFieldImpl (z kodu źródłowego jira, projektu: jira, pakietu: com.atlassian.jira.issue.fields).

Mój punkt publikując ten tutaj jest:

  • Czy ktoś wie jak zaimplementować wtyczkę JIRA zawierający funkcję pocztowy zmienić Fix Wersja prawidłowo?

Odpowiedz

4

Jeśli chcesz zrobić to właściwie spojrzeć w kodzie dla

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

Postfunkcje, które pobierają parametry wejściowe, nie są jeszcze udokumentowane. Inne miejsca, w których można znaleźć kod, to inne wtyczki open source.

1

Atlassian ma tutorial na ten właśnie temat dokładnie to, co chcesz zrobić, here:

+0

nie widzę nic w tym tutorialu, który pokazuje jak zmodyfikować obiekt wydania. – mdoar

0

robię to jak w tym fragmencie:

List<GenericValue> genericValueList = issueManager.getIssues(issues); 
versionManager.moveIssuesToNewVersion(genericValueList, lastVersion, newVersion);