【问题标题】:Update Custom Field Value using a "Scriptrunner for Jira" Custom Listener使用“Scriptrunner for Jira”自定义侦听器更新自定义字段值
【发布时间】:2016-09-14 06:39:54
【问题描述】:

您好,我们正在使用 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");

验证器在这里没有抱怨任何事情,并且脚本似乎在没有任何错误的情况下执行。问题是自定义字段的值根本没有更新。也许你们中的一些人有缺失的部分。

似乎需要每一行,因为验证器会抱怨。提前感谢您的帮助。

【问题讨论】:

    标签: groovy jira jira-plugin


    【解决方案1】:

    我刚刚从 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)
    

    【讨论】:

    • 我用过这个方法,效果很好。干杯凯文!
    • @Kevin 请您接受您自己的答案。提前谢谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多