使用“Jira的Scriptrunner”更新自定义字段值自定义听众 [英] Update Custom Field Value using a "Scriptrunner for Jira" Custom Listener

查看:557
本文介绍了使用“Jira的Scriptrunner”更新自定义字段值自定义听众的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好我们正在使用Jira,目前正在评估Adaptavist的插件Jira的Scriptrunner。

我想创建一个自定义的Listener,它只是更新自定义字段的值。



关于插件的文档和各种网络搜索,我想出了以下代码:

  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发行
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)


Hello we are using Jira and are currently evaluating the Plugin "Scriptrunner for Jira" by Adaptavist.

I'd like to create a custom Listener which simply updates the value of a custom field. The field's type is a default textbox, nothing fancy there.

Regarding to the plugin's documentation and various web-searching, I came up with the following code:

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");

The validator does not complain about anything here and the script seems to be executed without any errors. The problem is that the custom field's value is simply not updated. Maybe some of you guys have the missing piece.

Every line seems to be needed as the validator complains otherwise. Thank you in advance for your help.

解决方案

I just got an answer from Adaptavist that is finally working. Please find the working code below:

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)

这篇关于使用“Jira的Scriptrunner”更新自定义字段值自定义听众的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆