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小时内,如果今天是“星期二”(即,问题在星期日转移到该州),发送通知等)
另一种方法是避免使用状态机并切换到计划规则,计划规则将每小时检查一次状态和某些日期字段(当状态更改为请求时设置为“现在”),并在需要时发送通知。谢谢!我最终使用了一个调度规则,因为据我所知,它的实现要简单得多。