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

Workflow YouTrack中的状态机工作流-状态更改后22小时通知报告者,仅在工作日,workflow,youtrack,Workflow,Youtrack,规则: “反馈”字段更改为请求后,即请求反馈,记者有24小时的时间进行测试 只有在工作日通知记者(如果周六应用了修复,通知应等到周二早上发送,给他们24小时的时间进行审查),如果他们没有将“反馈”更改为确认或拒绝 通知应在24小时窗口打开前2小时发出 问题:如果在周五或周六应用修复程序,我如何延迟在工作日发送通知? 我的尝试: state machine Request feedback from reporter for field Feedback { initial stat

规则:

  • “反馈”字段更改为请求后,即请求反馈,记者有24小时的时间进行测试
  • 只有在工作日通知记者(如果周六应用了修复,通知应等到周二早上发送,给他们24小时的时间进行审查),如果他们没有将“反馈”更改为确认拒绝
  • 通知应在24小时窗口打开前2小时发出
问题:如果在周五或周六应用修复程序,我如何延迟在工作日发送通知?

我的尝试:

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?
            }         
        }
}

我看到的最直接的方法是添加几个“N小时内”规则,这些规则将适用于当天的不同变体(例如,在46小时内,如果今天是“星期二”(即,问题在星期日转移到该州),发送通知等)


另一种方法是避免使用状态机并切换到计划规则,计划规则将每小时检查一次状态和某些日期字段(当状态更改为请求时设置为“现在”),并在需要时发送通知。

谢谢!我最终使用了一个调度规则,因为据我所知,它的实现要简单得多。