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")
}
它工作嗎?什麼不工作? PS:首都開始上課,小寫字母開始變量,所以'field2',而不是'Field2'。這是一個慣例,可以阻止你在以後陷入潛在的陷阱時Groovy可能會猜測你在談論一個類 –
謝謝你,我已經更新了變量的情況下,我通常按照慣例,但衝到問題在這裏。當我在Script Runner中測試此腳本時,我在所有'問題'調用中收到以下錯誤:變量[issue]未聲明。這是一個腳本字段,它將作爲Jira工作流程中打開的任何「問題」的後期功能運行。當我想到我將它用作上面導入的包來執行方法getCustomFieldValue和setCustomFieldValue時,我對如何聲明問題感到困惑。 – ProtoType
你最好的選擇是問Atlassian。根據我的理解,爲你提供'issue',但它不是Groovy的東西,它是一個Script Runner的東西。也許你以某種方式在錯誤的上下文中運行代碼。 https://marketplace.atlassian.com/plugins/com.onresolve.jira.groovy.groovyrunner/server/support –