2016-04-30 54 views
0

我們的任務中有不同的狀態,如:開放,進行中,固定,測試,關閉。我們需要設計一個工作流程來防止用戶關閉已打開的任務。如何防止在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? 
} 

我該如何檢查他正在關閉該任務?我應該怎麼做才能告訴用戶您不能完成開放任務?

回答

0

大量的代碼工作後,我找到了解決辦法:

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
  1. 要知道,無論是在當一個無狀態的規則或可以實現類似的狀態!治國的身體條款= NULL & &!State.isResolved & &(State.oldValue!= NULL & & State.oldValue.isResolved)
  2. 爲了防止被更改的問題,使用斷言
+0

感謝您的解釋,這是有幫助的。 +1 – ALH