2011-01-27 32 views
9

Kịch bản của tôi là: Một bước trong luồng công việc jira của tôi sẽ có khả năng hủy lịch biểu tác vụ, tức là đặt Phiên bản sửa thành "Không".JIRA - Chức năng đăng bài Jira - Cách cập nhật trường "phiên bản sửa lỗi"?

tôi nhận thấy rằng tôi đã không thể cập nhật sửa chữa phiên bản trong một quy trình làm việc bài chức năng - Tôi không biết chính xác lý do tại sao, nhưng dù sao tôi đã thực hiện một plugin jira để giúp tôi giải quyết vấn đề của tôi nhưng tôi biết Tôi sẽ chống lại cấu trúc jira (thậm chí thực hành mã hóa java tốt :)). Tôi không chắc liệu việc triển khai của tôi có thể gây ra sự cố hay không, nhưng thực sự nó đang làm việc trong cá thể jira 4.1.x.

Làm thế nào tôi đã thực hiện một plugin để cập nhật phiên bản sửa chữa trong một bài đăng chức năng, 2 cách rất giống nhau:

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

Tôi đoán rằng một giải pháp thực tế nên sử dụng các lớp học như: ChangeItemBean, ModifiedValue, IssueChangeHolder - Lấy ví dụ các phương thức updateValue từ CustomFieldImpl (từ mã nguồn jira, dự án: jira, package: com.atlassian.jira.issue.fields).

điểm của tôi về xuất bản ở đây là:

  • Có ai biết làm thế nào để thực hiện một plugin jira chứa một hàm bài để thay đổi Fix Version chính xác?

Trả lời

4

Nếu bạn muốn làm điều đó đúng hãy xem trong mã cho

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

Các chức năng đăng nhập có tham số đầu vào chưa được ghi lại. Những nơi khác để tìm mã là các plugin nguồn mở khác.

1

Atlassian có một hướng dẫn về làm chỉ là về chính xác những gì bạn muốn làm, here:

+0

tôi không thấy bất cứ điều gì trong hướng dẫn rằng chương trình cách sửa đổi đối tượng vấn đề. – mdoar

0

tôi làm điều đó như thế nào trong đoạn này:

List<GenericValue> genericValueList = issueManager.getIssues(issues); 
versionManager.moveIssuesToNewVersion(genericValueList, lastVersion, newVersion); 
Các vấn đề liên quan