2016-03-08 90 views
0

只需要一個小小的方向來完成我的腳本,我需要收集幾個單選按鈕字段的值,並執行一個if/then條件來確定另一個單選按鈕的默認值。這是我到目前爲止,這是正確的方法?我錯過了什麼?這是一個在ScriptRunner中使用Groovy的自定義字段腳本。如何根據其他幾個單選按鈕選項的條件設置單選按鈕值?

import com.atlassian.jira.issue.IssueManager 
import com.atlassian.jira.issue.Issue; 
import com.atlassian.jira.issue.fields.CustomField; 
import com.atlassian.jira.issue.IssueManager; 
import com.atlassian.jira.issue.CustomFieldManager; 
import com.atlassian.jira.component.ComponentAccessor; 
import com.atlassian.jira.issue.MutableIssue; 

//managers 
def customFieldManager = ComponentAccessor.getCustomFieldManager() 
IssueManager issueManager = ComponentAccessor.getIssueManager(); 

//gather the fields needed 
def field1 = CustomFieldManager.getCustomFieldObjectByName("Field 1") 
def field2 = CustomFieldManager.getCustomFieldObjectByName("Field 2") 

//gather the values of the fields 
def field1Value = issue.getCustomFieldValue(Field1).getValue() 
def field2Value = issue.getCustomFieldValue(Field2).getValue() 
if (field1Value == "Agree" && field2Value == "Agree"){ 
    def field3 = customFieldManager.getCustomFieldObjectByName("Field 3") 
    issue.setCustomFieldValue(field3, "Agree") 
} else { 
    issue.setCustomFieldValue(field3, "Disagree") 
} 
+0

它工作嗎?什麼不工作? PS:首都開始上課,小寫字母開始變量,所以'field2',而不是'Field2'。這是一個慣例,可以阻止你在以後陷入潛在的陷阱時Groovy可能會猜測你在談論一個類 –

+0

謝謝你,我已經更新了變量的情況下,我通常按照慣例,但衝到問題在這裏。當我在Script Runner中測試此腳本時,我在所有'問題'調用中收到以下錯誤:變量[issue]未聲明。這是一個腳本字段,它將作爲Jira工作流程中打開的任何「問題」的後期功能運行。當我想到我將它用作上面導入的包來執行方法getCustomFieldValue和setCustomFieldValue時,我對如何聲明問題感到困惑。 – ProtoType

+0

你最好的選擇是問Atlassian。根據我的理解,爲你提供'issue',但它不是Groovy的東西,它是一個Script Runner的東西。也許你以某種方式在錯誤的上下文中運行代碼。 https://marketplace.atlassian.com/plugins/com.onresolve.jira.groovy.groovyrunner/server/support –

回答

0

想出什麼問題了... Emmanual是與上下文正確的,因爲我是在Scriptrunner,這不是用行爲實現的也不是它的「腳本場」,這是上下文加入這個運行如果您打算在該問題的上下文中調用問題對象,則爲必需。

相關問題