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 –