2016-09-27 59 views
0

規則:狀態機工作流YouTrack - 通知記者狀態改變後22小時,僅在工作日

  • 後場「反饋」到請求變化,這意味着反饋要求,記者在24小時測試
  • 僅在工作日(如果星期六應用修復,通知應該等到星期二上午發送,讓他們整整24小時回顧)通知記者,如果他們沒有改變「反饋」到確認拒絕
  • 通知應發2小時前24小時的窗口達

問題:我如何延遲發送在平日的通知,如果一個修補程序在週五或週六應用?

我嘗試:

state machine Request feedback from reporter for field Feedback { 

    initial state Not needed { 
     exit { 
      // just a placeholder b/c initial state seems to be mandatory 
      message ("You are requesting feedback from the reporter.") 
     } 
    } 

    state Requested { 
     in 22 hours[always] do { 
      // calculate if this is a weekday 
      var dayOfWeek = now.format(#EEEE); 
      if (dayOfWeek != "Sat" || dayOfWeek != "Sun") { 
       reporter.notify("Two hours left to approve fix for the issue"+ getId(), "Please review the applied fix for issue and set the Feedback to 'Confirmed' or 'Rejected'."); 
      } else { 
       // somehow delay the notification? 
      }   
     } 
} 

回答

0

在這裏,我看到的最直接的辦法就是增加幾個「的N小時」的規則,這將適用於當前日期(如不同的變種,在46小時,如果今天是'星期二'(即問題在星期天轉移到這個狀態),發送通知等)。

另一種方法是避免使用狀態機並切換到預定規則,該規則將檢查每小時一次的狀態和某個日期字段(當狀態更改爲「請求」時設置爲'現在')併發送通知需要。

+0

謝謝!我最終使用了一個時間表規則,因爲據我所知,實施起來要簡單得多。 – Carol