我有以下字段:
系统, CMS, 水瓶座,
我想根据系统选择清除Aquarius字段。例如,一个用户。最初,用户创建了一个问题,并为系统选择了CMS,并在CMS字段中填写了一个值“ abcde”。
现在,用户想更新问题。现在,他们选择Aquarius,然后使用值“ jklm”填写Aquarius字段。发生这种情况时,我想清除CMS字段中存储的值,因此该字段不会显示在“查看屏幕”上。
请注意:这些是单选字段。
下面是我的代码:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.customfields.option.LazyLoadedOption
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.MutableIssue
Issue issue = event.issue
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def customField2 = customFieldManager.getCustomFieldObjectByName("System")
LazyLoadedOption systemOption = (LazyLoadedOption) issue.getCustomFieldValue(customField2)
def changeHolder = new DefaultIssueChangeHolder();
def customField4 = customFieldManager.getCustomFieldObjects(issue).find {it.name == "Aquarius Category"}
if (systemOption?.getValue() == "CMS2") {
customField4.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customField4), ""),changeHolder)
}
不幸的是它失败了 注意:使用自定义侦听器-Scriptrunner
答案 0 :(得分:0)
您可以使用
issue.setCustomFieldValue(cf,null) issueManager.updateIssue(用户,问题,eventDispatch.Event_Type,布尔值)
答案 1 :(得分:0)
设法使其起作用。这确实是一个小错误。设置自定义字段的值时。导入时不采用我们正在设置的字段类型。例如,在设置文本字段时,我们可以使用:
if (systemOption?.getValue() == "CMS2") {
customField4.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customField4), ""),changeHolder)
}
但是在设置选择(下拉)字段类型时,我们应该使用:
if (systemOption?.getValue() == "CMS2") {
customField4.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customField4), null),changeHolder)
}
总而言之,为null而不是“”