При клонировании задачи не удается установить ей настраиваемое поле "Состояние", которое привязано к State-machine. Follow
Вот скрипты которые я использую.
1. Для создания state-machine:
var entities = require('@jetbrains/youtrack-scripting-api/entities');
var workflow = require('@jetbrains/youtrack-scripting-api/workflow');
exports.rule = entities.Issue.stateMachine({
title: 'state_mashine_for_state',
fieldName: 'Состояние',
states: {
'Открыто': {
initial: true,
transitions: {
'В работе': {
targetState: 'В работе'
},
'Закрыто': {
targetState: 'Закрыто'
}
}
},
'В работе': {
transitions: {
'Проверить': {
targetState: 'Проверить'
},
'Закрыто': {
targetState: 'Закрыто'
}
}
},
'Проверить': {
transitions: {
'Закрыто': {
targetState: 'Закрыто'
}
}
},
'Закрыто': {
transitions: {
'Открыто': {
targetState: 'Открыто'
}
}
}
},
requirements: {
State: {
type: entities.State.fieldType,
name: 'Состояние',
Open: {
name: 'Открыто'
},
InProgress: {
name: 'В работе'
},
Verify: {
name: 'Проверить'
},
Close: {
name: 'Закрыто'
}
}
}
});
2. Для клонирования задачи. Для простоты и безопасности я создал скрипт на изменение любого поля только в определенной задаче (PR1-1):
var entities = require('@jetbrains/youtrack-scripting-api/entities');
var workflow = require('@jetbrains/youtrack-scripting-api/workflow');
exports.rule = entities.Issue.onChange({
title: 'clone_issue_with_state',
guard: function(ctx) {
return ctx.issue.id == 'PR1-1' && ctx.issue.isReported;
},
action: function(ctx) {
var newIssue = ctx.issue.copy();
newIssue.fields['Состояние'] = ctx.State.InProgress;
workflow.message('New issue created: ' + newIssue.url);
},
requirements: {
State: {
type: entities.State.fieldType,
name: 'Состояние',
InProgress: {
name: 'В работе'
}
}
}
});
Please sign in to leave a comment.
Здравствуйте!
Я уже ответила Вам в исходном тикете, но продублирую ответ сюда на случай, если у других пользователей будет такой же вопрос.
Я протестировала эти воркфлоу и воспроизвела описанную проблему: в клонированной задаче состояние проставляется в то, которое указано как initial в state-machine. В результате создала баг репорт: https://youtrack.jetbrains.com/issue/JT-66782.
Вы можете проголосовать за него - это поможет нам понять, насколько это актуально среди наших пользователей.