问题来源
今天尝试做一个简单到到不能再简单的PowerAutomate流,就是读取一个Sharepoint上的Excle表格里的每一行,然后更新到一个list。然鹅确收到了一个意想不到的报错,
报错信息如下:
The runtime value '""' to be converted doesn't have the expected format 'String/date'.
之前的话,遇到空的单元格,其实是会自动处理成空值的,而现在会报这个错导致流无法继续运行。
问题原因
在网上冲浪找原因的时候,发现说是微软4月份的某次更新导致的。也就是说,更新PowerAutomate的新设计器的时候,就会出现处理不了这个null值的日期的问题了。老外有说切换回旧设计器就能解决这个问题的,不过我切了好像没啥效果。
淦,反正我已经对微软这草台班子搞的这种烂事习以为常了。
这个事情困扰了我大概2天的时间,而且中文互联网环境对这个bug没啥讨论度。所以我把解决方案放出来,希望后面遇到这个问题的人,可以少走弯路。
解决方案
省流,写入如下公式,对空值进行处理
if(empty(items('应用到每一个')?['此处请替换成你的字段名']), null, items('应用到每一个')?['此处请替换成你的字段名'])
在哪里写呢,在如下的位置:
也就是但凡涉及日期的单元格,我都用这个if语句进行了一下处理。这个if语句就是判断是否是空值,如果是的话就给一个null的值,否则给实际的值。记得把[]中的key替换成你的列名。
顺便,如果有如下报错的话
报错内容:
The runtime value '”43852″' to be converted doesn't have the expected format 'String/date'.
只要把一开始获取时,时间格式选择ISO 8601