Javascript 检查问题字段是否变为“时出现异常”;“进行中”;使用工作流

Javascript 检查问题字段是否变为“时出现异常”;“进行中”;使用工作流,javascript,workflow,youtrack,youtrack-api,Javascript,Workflow,Youtrack,Youtrack Api,我的问题字段有一个状态和一个名为进行中 因此,我编写了一个Youtrack工作流,当问题“正在进行”时,它会向我的discord频道发送一条http帖子 下面是用于此目的的JavaScript代码: var entities = require('@jetbrains/youtrack-scripting-api/entities'); var http = require('@jetbrains/youtrack-scripting-api/http'); exports.rule =

我的问题字段有一个
状态
和一个名为
进行中

因此,我编写了一个Youtrack工作流,当问题“正在进行”时,它会向我的discord频道发送一条http帖子

下面是用于此目的的JavaScript代码:


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

exports.rule = entities.Issue.onChange({
  // TODO: give the rule a human-readable title
  title: 'Open-discord-channel',
  guard: function(ctx) {
    return ctx.issue.fields.becomes(ctx.State, ctx.State.InProgress);
  },
  action: function(ctx) {
    var issue = ctx.issue;
    var connection = new http.Connection('https://discordapp.com');
    connection.addHeader('Content-Type', 'application/json');
    var response = connection.postSync('/api/webhooks/123/1DJucC8-vdZR-xxx', [], issue.description);
    if (response && response.code === 200) {
        issue.addComment(response.response);
    }

    // TODO: specify what to do when a change is applied to an issue
  },
  requirements: {
    // TODO: add requirements
  }
});
激活此工作流时会引发此异常:

TypeError: Cannot read property "InProgress" from undefined (open-discord-channel/open-discord-channel#16)
             org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:4198)
            org.mozilla.javascript.gen.open_discord_channel_open_discord_channel_2052._c_anonymous_1(open-discord-channel/open-discord-channel:16)
它告诉我
无法读取属性“InProgress”
但实际上
返回ctx.issue.fields.been(ctx.State,ctx.State.InProgress)程序中的值
由嵌入式Youtrack工作流编辑器建议

有人能告诉我如何访问真正的“进行中”值以使代码运行吗

编辑 试过这个
返回ctx.issue.fields.been(ctx.State.name,“进行中”)

还是给了我一个例外

Processing issue COOPR-85:
TypeError: Cannot read property "name" from undefined (open-discord-channel/open-discord-channel#16)
             org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:4198)
            org.mozilla.javascript.gen.open_discord_channel_open_discord_channel_2076._c_anonymous_1(open-discord-channel/open-discord-channel:16)

如果要使用
ctx.issue.fields.been(ctx.State,ctx.State.InProgress)
语法,请在“需求”部分添加“进行中”状态的定义:

要求:{
声明:{
类型:entities.State.fieldType,
正在进行:{
名称:“正在进行”
}
}
}   
或者,为了避免
无法从未定义的
中读取属性“name”错误,请检查状态字段中的空值:

返回ctx.issue.fields.State&&ctx.issue.fields.been(ctx.State.name,“进行中”);

我希望这会有帮助

谢谢你,到目前为止,我在上一次尝试中才发现。我很难理解这些要求。官方文档还不够清楚,为什么我想使用的每个领域都需要它们。不客气!我相信这篇文章也会有所帮助。