验证SharePoint列表日期列空值时触发Power Automate异常问题
问题根因与解决方案
报错根因
你调用formatDateTime函数时,直接传入了可能为null的AgreementReviewDate字段值。该函数要求第一个参数必须是有效日期/字符串类型,当字段为空时,传入的null参数触发了类型不匹配错误,导致Condition环节报错。
解决方法
方法1:先判断非空,再格式化日期
在Condition环节拆分判断逻辑,先过滤空值记录,再做日期匹配:
- 第一层条件:
items('Apply_to_each')?['AgreementReviewDate']不等于null - 在该条件的「Yes」分支中,添加第二层条件:
- 左值:
formatDateTime(items('Apply_to_each')?['AgreementReviewDate'], 'yyyy-MM-dd') - 右值:
formatDateTime(utcNow(), 'yyyy-MM-dd')
- 左值:
- 当第二层条件满足时,执行发送邮件操作。
方法2:提前过滤空值记录(更高效)
在Get items动作的Filter Query中直接过滤掉AgreementReviewDate为空的记录,减少后续循环处理量:
AgreementReviewDate ne null
之后在Apply to each环节中,直接判断格式化后的日期是否等于今日即可,无需再处理空值情况。
可选表达式写法(单条件内处理)
如果希望在单个条件中完成判断,可以使用if和empty函数兜底空值:
if(empty(items('Apply_to_each')?['AgreementReviewDate']), '', formatDateTime(items('Apply_to_each')?['AgreementReviewDate'], 'yyyy-MM-dd')) eq formatDateTime(utcNow(), 'yyyy-MM-dd')
空值时会返回空字符串,不会触发formatDateTime的错误,同时只有非空且日期等于今日的记录会满足条件。
内容的提问来源于stack exchange,提问作者ChiranSJ
相关产品推荐
相关产品推荐

