Очистить выбранное пользовательское поле на основе выбора из другого поля при обновлении - PullRequest
0 голосов
/ 14 января 2019

У меня есть следующие поля:

Система, CMS, Водолей,

Я хотел бы очистить поле Водолея на основе выбора системы. Например, пользователь. Первоначально пользователь создал проблему и для системы он выбрал: CMS и заполнил значение «abcde» в поле CMS.

Теперь пользователь хотел бы обновить проблему. Теперь они выбирают Водолея, затем заполните поле Водолей полем «jklm». Когда это происходит, я хотел бы очистить значения, хранящиеся в поле 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

Ответы [ 2 ]

0 голосов
/ 15 января 2019

удалось заставить его работать. Это была действительно небольшая ошибка. При установке значения настраиваемого поля. Это импорт, чтобы взять не тот тип поля, который мы устанавливаем. Например, при настройке текстового поля мы можем использовать:

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 вместо ""

0 голосов
/ 15 января 2019

Вы можете использовать

issue.setCustomFieldValue (ср, ноль) issueManager.updateIssue (пользователь, проблема, eventDispatch.Event_Type, логическое значение)

...