Смена проекта при создании подзадачи.
Добрый день.
У меня есть worfklow в старом варианте, который менял проект создаваемой подзадачи независимо от проекта выбранном в контексте.
Т.е. я хочу чтобы подзадача создавалась в том проекте, в котором я нахожусь, а не в том который указан в контексте.
Старый worfklow выглядел так:
when <issue created or updated> {
for each parent in subtask of {
if ( parent.project != issue.project && !parent.isReported()) {
parent.project = issue.project ;
}
}
for each subtask in parent for {
if (subtask.project != issue.project && !parent.isReported( ) {
subtask.project = issue.project ;
}
}
Переписал на js:
issue.links["subtask of"].forEach(function (parent) {
issue.project = parent.project;
});
Но почему-то не работает.
Переписал на js:
issue.links["subtask of"].forEach(function (parent) {
issue.project = parent.project;
});
Но почему-то не работает.
Please sign in to leave a comment.
Прошу прощения за задержку с ответом. Данная ошибка свидетельствует о том, что база данных в данный момент не консистентна: в ней имеются фантомные линки, которые ведут в никуда. Мы исправили причины, по которым они появлялись, однако если они появились достаточно давно, необходимо провести рефакторинг базы, чтобы от них избавиться.
Если у Вас Standalone YouTrack, Вам необходимо один раз рестартовать Ваш инстанс с дополнительной опцией (информацию о том, как запускать YouTrack с дополнительными опциями, Вы можете найти на https://www.jetbrains.com/help/youtrack/standalone/Configure-JVM-Options.html):
-Dexodus.entityStore.refactoring.forceAll=true
Если у Вас InCloud YouTrack, пожалуйста, сообщите нам URL Вашего инстанса и время, удобное для рестарта (рестарт займёт несколько минут).
Добрый день,
Вы не могли бы прислать полный текст правила, а также описать конкретный сценарий, в котором правило не работает?
Сценарий:
Я нахожусь в задаче проекта "А", а в контексте выбран проект "В".
Я хочу чтобы при создании подзадачи/родительской задачи, в поле "Project" был проект "A", а не проект "В" который указан в контексте.
В сценарии, который Вы описали, воркфлоу сработает не на новой задаче (потому что в момент создания драфта задачи воркфлоу на ней не запускаются), а на той существующей задаче, к которой линкуется новая. Соответственно, условие `!ctx.issue.isReported && !ctx.issue.becomesReported;` всегда false, и правило не срабатывает.
Я переписал на js точь-в-точь как в старом варианте workflow:
При нажатии subtask of/parent for выдаёт ошибку:
Есть подозрение на неконсистеность в базе (присутствие фантомных линков). Однако, прежде чем применять рефакторинги (я опишу, какие именно), сделайте следующее, пожалуйста:
* Условия `parent.project != issue.project` нужно заменить на `parent.project.key !== issue.project.key` в обоих кейсах.
* Если вновь повторится ошибка, пожалуйста, укажите, в какой именно строке (из-за форматирования здесь сложно понять, на какой строке проблема).
Поменял на "parent.project.key !== issue.project.key". Всё равно ошибка в строке:
issue.links["parent for"].forEach(function (subtask) {
workflow заработал после рефактиринга бд
Добрый день! У меня аналогичная проблема, могу ли я запросить рефакторинг БД для InCloud YouTrack?