2017-02-27 50 views
0

我試圖設置海關字段,同時我使用Java Jira Rest Client創建Jira實例。如何使用Java Jira Rest客戶端在Jira中設置自定義字段(多選)

下面,就是我試圖完成,其中「數據對象」是一個多選選項項的自定義字段的XML表示:

<customfield id="customfield_10730" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect"> 
    <customfieldname>Environnements</customfieldname> 
     <customfieldvalues> 
      <customfieldvalue key="13044"> 
       <![CDATA[ DATAOBJECT]]> 
      </customfieldvalue> 
     </customfieldvalues> 
</customfield> 

下面,是我的Java代碼,讓我在Jira中創建實例但沒有自定義字段。

JiraRestClientFactory restClientFactory = new AsynchronousJiraRestClientFactory(); 
try { 

    JiraRestClient restClient = restClientFactory.createWithBasicHttpAuthentication(new URI("http://JIRA_DOMAIN"), "Username", "Passwd");   
    IssueRestClient i = restClient.getIssueClient();    
    IssueInputBuilder issueBuilder = new IssueInputBuilder("projectKey", issueTypeID)); 
    issueBuilder.setSummary("description"); 
    issueBuilder.setFieldValue("customfield_10730", "DATAOBJECT"); 
    IssueInput issue = issueBuilder.build(); 

    Promise<BasicIssue> promise = i.createIssue(issue); 
    try 
    { 
     BasicIssue basicIssue = promise.get(); 
     System.out.println(basicIssue.getId()); 
     restClient.close(); 
    } 
    catch (Exception e) 
    { 
     System.out.println(e.getMessage()); 
    } 

} 
catch (URISyntaxException e) 
{ 
    System.out.println(e.getMessage()); 
} 

此代碼不起作用,我正在使用Java Jira Rest Client 2.0.0-m31。 有人可以告訴我這裏有什麼問題嗎?

在此先感謝。

回答

0

對於多選的自定義字段:

ComplexIssueInputFieldValue value = ComplexIssueInputFieldValue.with("value", "DATAOBJECT"); 
issueBuilder.setFieldValue("customfield_10730", Collections.singletonList(value));  

對於單選擇字段:

issueBuilder.setFieldValue("customfield_10730", ComplexIssueInputFieldValue.with("value", "DATAOBJECT")); 

(與JIRA休息-Java的客戶端API和JIRA休息-Java的workes我客戶端核心v.4.0.0)

0

試試這個:

String []values = {"Value1","Value2"}; 
    String custonFieldId = "customfield_10730"; 
    List<ComplexIssueInputFieldValue> fieldList = new ArrayList<ComplexIssueInputFieldValue>(); 

    for(String value : values){ 
      Map<String, Object> aMap = new HashMap<String, Object>(); 
      aMap.put(null,value); 
      //If you also need to pass an id 
      //aMap.put(id,value); 
      //fieldList.add(aMap); 
      fieldList.add(aMap); 
} 
    issue.setFieldValue(custonFieldId , fieldList); 

我希望這可以幫助別人!

0

...這爲我工作。 customfield_16681是多選擇字段

import net.rcarz.jiraclient.*; 
import org.json.JSONObject; 
import java.util.ArrayList; 

JSONObject entityObject = new JSONObject(); 
entityObject.put("id", "17891"); 
Issue newIssue = jira.createIssue("ProjectID", "Bug") 
       .field(Field.SUMMARY, "Test of create Jira") 
       .field(Field.DESCRIPTION, "Test of create Jira desc") 
       .field(Field.ASSIGNEE, "Roman") 
       .field(Field.FIX_VERSIONS, new ArrayList() {{ 
        add("your version");}})     
       .field("customfield_16681", new ArrayList<Object>(){{ add(entityObject);}}) 
       .execute(); 
     System.out.println(newIssue); 

POM依賴性:

<dependency> 
    <groupId>net.rcarz</groupId> 
    <artifactId>jira-client</artifactId> 
    <version>0.5</version> 
    <scope>compile</scope> 
</dependency> 
相關問題