При клонировании задачи не удается установить ей настраиваемое поле "Состояние", которое привязано к State-machine.

Вот скрипты которые я использую.

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: 'В работе'
}
}
}
});

 

 

 

1 comment
Comment actions Permalink

Здравствуйте!

Я уже ответила Вам в исходном тикете, но продублирую ответ сюда на случай, если у других пользователей будет такой же вопрос.

Я протестировала эти воркфлоу и воспроизвела описанную проблему: в клонированной задаче состояние проставляется в то, которое указано как initial в state-machine. В результате создала баг репорт: https://youtrack.jetbrains.com/issue/JT-66782.

Вы можете проголосовать за него - это поможет нам понять, насколько это актуально среди наших пользователей.

0

Please sign in to leave a comment.