您好,我们正在使用 Jira,目前正在评估 Adaptavist 的插件“Scriptrunner for Jira”。
我想创建一个自定义监听器,它只是更新自定义字段的值。该字段的类型是默认文本框,没什么特别的。
关于插件的文档和各种网络搜索,我想出了以下代码:
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
def issue = event.issue as Issue
MutableIssue issueToUpdate = (MutableIssue) issue;
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
def cf = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'My CustomField'}
issueToUpdate.setCustomFieldValue(cf, "myvalue");
验证器在这里没有提示任何事情,并且脚本似乎在没有任何错误的情况下执行。问题是自定义字段的值根本没有更新。也许你们中的一些人有缺失的部分。
似乎需要每一行,因为验证器会提示。提前感谢您的帮助。
最佳答案
我刚刚从 Adaptavist 那里得到了一个终于奏效的答案。请在下面找到工作代码:
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.component.ComponentAccessor
def issue = event.issue as Issue
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def tgtField = customFieldManager.getCustomFieldObjects(event.issue).find {it.name == "My CustomField"}
def changeHolder = new DefaultIssueChangeHolder()
tgtField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(tgtField), "myvalue"),changeHolder)
关于groovy - 使用 "Scriptrunner for Jira"自定义监听器更新自定义字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39483956/