YouTrack中的状态机工作流程 - 在状态更改后22小时通知记者,仅在工作日

时间:2016-09-27 17:47:42

标签: workflow youtrack

规则:

  • 在现场"反馈"更改为请求,表示请求反馈,记者有24小时的时间进行测试
  • 仅在工作日时通知记者(如果星期六应用修正,通知应等到周二早上发送,如果他们没有'改变了#34;反馈" 已确认已拒绝
  • 通知应在发布 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?
            }         
        }
}

1 个答案:

答案 0 :(得分:0)

我看到的最直接的方式是添加几个'N小时'规则,这将适用于当天的不同变体(例如,在46小时内,如果今天是'星期二'(即问题)在周日被移到这个状态),发送通知等)。

另一种方法是避免使用状态机并切换到预定规则,这将检查状态和一些日期字段(当状态变为Requested时设置为'now')每小时一次并在需要时发送通知