How get Custom Field value

В проекте я имею поле "subsystem"  это enum я хочу получит текстовое значение этого поля.

 

но к сожалению ни чего не получается.

//var subsystem = ctx.issue.findValueByName("subsystem");

  var subsystem = ctx.issue.fields["subsystem"];
workflow.message(workflow.i18n('Must by subsystem Value-> '+subsystem) );

0
5 comments

Добрый день! Попробуйте обратиться к свойству name значения этого поля:

var subsystem = ctx.issue.fields["subsystem"].name

https://www.jetbrains.com/help/youtrack/incloud/v1-Field.html#properties

0
Avatar
Permanently deleted user

Добрый день пробую по всякому

Ничего не помогает. Пробовал ставить разные значения и разные типы полей

Вот например такой скрипт

     var xxx = ctx.issue.fields["Исполнитель"].name
    workflow.message(workflow.i18n('Must by  Value-> '+xxx) );

выдает сообщение   Must by  Value->undefined

 

 

0

Прописываете ли вы все необходимые поля и значения в разделе Requirements? Пришлите, пожалуйста, пример полного кода. Спасибо.

https://www.jetbrains.com/help/youtrack/incloud/requirements.html

Кроме того, обратите внимание, что мы не рекомендуем использовать функцию i18n в коде, который вы написали сами. Это функция, использующаяся только во встроенных механизмах локализации в YouTrack.

https://www.jetbrains.com/help/youtrack/incloud/Workflow-Localization.html

0
Avatar
Permanently deleted user

добрый день

вот образец кода который я пробую запустить

 

 

var entities = require('@jetbrains/youtrack-scripting-api/entities');
var workflow = require('@jetbrains/youtrack-scripting-api/workflow');

exports.rule = entities.Issue.onChange({
title: workflow.i18n('Disable comments for verified issues'),
guard: function(ctx) {

return true;

},
action: function(ctx) {
var xxx = ctx.issue.fields["OldID"].value;
var OldID=ctx.issue.fields["OldID"];
// console.log('ctx.issue.comments.last-->'+ctx.issue.comments.last());
workflow.message(OldID+' Must by subsystem Value-> '+xxx);


},
requirements:
{
// Исполнитель: {
// type: entities.User.fieldType,
// name: "Исполнитель"
// },

// OldID: {
// type: entities.ProjectCustomField,
// name: "OldID"
// }
}
});

на счет requirements: я  наверное заполняю их не так потому, что если  разкоментарить возникает ошибка  при обращении к значению поля.

Буду очень благодарен если Вы пришлете работающий образец.

 

0

Здравствуйте, я прошу прощения за задержку с ответом.

 

Пример:

var entities = require('@jetbrains/youtrack-scripting-api/entities');
var workflow = require('@jetbrains/youtrack-scripting-api/workflow');

exports.rule = entities.Issue.onChange({
title: workflow.i18n('Disable comments for verified issues'),
guard: function(ctx) {
return true;
},
action: function(ctx) {
var oldID = ctx.issue.fields.OldID;
var assignee = ctx.issue.fields["Исполнитель"].login;
var priority = ctx.issue.fields.Priority.name;

workflow.message(oldID + ' for ' + assignee + ' with ' + priority);
},
requirements: {
Исполнитель: {
type: entities.User.fieldType,
name: "Исполнитель"
},
OldID: {
type: entities.Field.stringType,
name: "OldID"
},
Priority: {
type: entities.EnumField.fieldType
}
}
});

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

Например, у всех перечислений есть name, а вот у User - login либо fullName. Свериться в случае необходимости можно с документацией: https://www.jetbrains.com/help/youtrack/incloud/Workflows-in-JavaScript.html

0

Please sign in to leave a comment.