2017-05-12 91 views
0

我有一個轉換屏幕,我通過複選框控件獲取值,我需要獲取這些值並在問題視圖屏幕中的另一個複選框控件上更新它們。下面的代碼更新值,但不會更改複選框以進行檢查。JIRA多選複選框自定義字段沒有正確更新

platvalue = issue.getCustomFieldValue(platRelOnField) //platRelOnField is the field from where I am getting my values to be set , it has 3 options [High,Low,Medium] 

    ModifiedValue mVal = new ModifiedValue(issue.getCustomFieldValue(platRelOnAPIField),platvalue); 

    platRelOnAPIField.updateValue(null, issue, mVal, new DefaultIssueChangeHolder()); 

我是groovy/jira的新手,似乎無法正確設置複選框選項。

任何幫助在正確的方向表示讚賞。

我使用JIRA 6.3.9

+0

我假設你使用Scriptrunner和正在談論一個複選框複選現場得到它的工作。 如果我不得不猜測這將是ModifiedValue期望收集/列表的選項,而不是一個,因爲在多選字段中可以選擇多個選項字段。 目前無法驗證:/ – CodeFanatic

+0

在更新的代碼之後,不會發生異常,但複選框不會被檢查,只會顯示相對於該字段的值。是的,我使用內置於腳本運行器驗證程序中的JIRA及其a多選複選框字段。我檢查了日誌中的錯誤,但似乎找不到任何:( – Abbas

+0

可以請詳細說明您的意思是「只顯示相對於該字段的值」 – CodeFanatic

回答

0

管理通過寫下面的代碼

ArrayList<LazyLoadedOption> optionsList = new ArrayList<LazyLoadedOption>(); 

FieldConfig fieldConfig = platRelOnAPIField.getRelevantConfig(issue); 

OptionsManager optionManager = ComponentAccessor.getOptionsManager(); 

platOptions = optionManager.getOptions(fieldConfig); 

for(def i = 0;i<platOptions.size();i++){ 
    def optVal = platOptions.get(i).getValue(); 
    if(platOptions.get(i).getValue().equals("custom field value")){ 
     optionsList.add(platOptions.get(i)); 
    break; 
    } 
} 
platRelOnAPIField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(platRelOnAPIField), optionsList),changeHolder)