如何防止在Youtrack工作流程中关闭开放任务?

问题描述:

我们的任务中有不同的状态,如:开放,进行中,固定,测试,关闭。我们需要设计一个工作流程来防止用户关闭已打开的任务。如何防止在Youtrack工作流程中关闭开放任务?

我通过文件去的锯代码是这样的:

var user; 
if (issue.Assignee == null) { 
  user = issue.project.leader; 
} else { 
  user = issue.Assignee; 
} 

的问题是,像上面的代码只是检查状态。我需要一种防止行为的方式(如关闭一个打开的任务)。我应该如何防止用户进行这些操作?如何检查他是否正在关闭该任务?

the documentation有人提到如何访问问题字段和发出自定义字段。但代码如下所示:

if (issue.State == Open) { 
    # what to do here how to check if he is closing the task? 
} 

我该如何检查他正在关闭该任务?我应该怎么做才能告诉用户您不能完成开放任务?

大量的代码工作后,我找到了解决办法:

rule check open state 

when issue.State.becomes({Open}) { 
    assert issue.State.oldValue == {Submitted}: "Issue needs to be in Submitted state, to make it Open" 
} 

我不得不使用becomes,以检查用户是否打开任务,然后使用断言我会确保如果任务是从Submitted状态变为打开与否。

  1. 要知道,无论是在当一个无状态的规则或可以实现类似的状态!治国的身体条款= NULL & &!State.isResolved & &(State.oldValue!= NULL & & State.oldValue.isResolved)
  2. 为了防止被更改的问题,使用断言
+0

感谢您的解释,这是有帮助的。 +1 – ALH