MS Planner工作流中设置排除周末的工作日截止日期报错求助
MS Planner工作流:设置提交后2个工作日截止日期的公式修复
问题分析
你当前的公式触发“invalid input”错误,核心原因是逻辑覆盖不全+日期判断的潜在语法问题:
- 原公式仅通过
dayOfWeek >=4将周四、周五、周六归为一类统一加4天,既不符合2个工作日的需求,也可能因Power Automate对日期计算的合法性校验触发报错; - 虽确认
triggerOutputs()?['body/receivedDateTime']可用,但需确保dayOfWeek和addDays接收的是标准日期类型。
正确公式
以下公式针对不同星期几精确计算2个工作日后的截止日期(Power Automate中dayOfWeek返回值:0=周日,1=周一,2=周二,3=周三,4=周四,5=周五,6=周六):
if(dayOfWeek(triggerOutputs()?['body/receivedDateTime']) == 5, addDays(triggerOutputs()?['body/receivedDateTime'], 4), if(dayOfWeek(triggerOutputs()?['body/receivedDateTime']) == 4 || dayOfWeek(triggerOutputs()?['body/receivedDateTime']) == 6, addDays(triggerOutputs()?['body/receivedDateTime'], 3), addDays(triggerOutputs()?['body/receivedDateTime'], 2) ) )
逻辑说明
- 周五(5)提交:加4个自然日,跳过周六、周日,截止到下周二(2个工作日后)
- 周四(4)/周六(6)提交:加3个自然日,周四截止到下周一,周六截止到下周二
- 周日(0)到周三(3)提交:加2个自然日,直接得到2个工作日后的日期
额外排查步骤
如果仍报错,尝试将日期转换为明确的时区格式,确保函数接收标准日期:
if(dayOfWeek(convertFromUtc(triggerOutputs()?['body/receivedDateTime'], 'Asia/Shanghai')) == 5, addDays(convertFromUtc(triggerOutputs()?['body/receivedDateTime'], 'Asia/Shanghai'), 4), if(dayOfWeek(convertFromUtc(triggerOutputs()?['body/receivedDateTime'], 'Asia/Shanghai')) == 4 || dayOfWeek(convertFromUtc(triggerOutputs()?['body/receivedDateTime'], 'Asia/Shanghai')) == 6, addDays(convertFromUtc(triggerOutputs()?['body/receivedDateTime'], 'Asia/Shanghai'), 3), addDays(convertFromUtc(triggerOutputs()?['body/receivedDateTime'], 'Asia/Shanghai'), 2) ) )
(将Asia/Shanghai替换为你的实际时区)
内容的提问来源于stack exchange,提问作者BrandonC
相关产品推荐
相关产品推荐

