向SharePoint列表添加多附件时Power Automate报错求助
报错信息
InvalidTemplate. Unable to process template language expressions in action 'Add_attachment' inputs at line '0' and column '0': 'The template language function 'base64ToBinary' was invoked with a parameter that is not valid. The value cannot be decoded from base64 representation.'
排查与解决步骤
检查Dataverse附件的Base64格式完整性
多附件场景下,可能存在某一个附件的Base64编码损坏(比如传输截断、特殊字符混入)。在工作流中添加Compose动作,输出每个附件的Content字段值,运行后查看是否包含非标准Base64字符(仅允许A-Z/a-z/0-9/+/-/=)。若发现异常,修复对应Dataverse记录的附件。调整多附件循环处理逻辑
确认工作流循环逻辑正确性:- 确保从Dataverse的附件集合实体(如
相关的附件)中循环获取单个附件,而非直接拼接多个附件的Content。 - 在
Add attachment动作中,单独引用当前循环项的Content字段,禁止将多个附件的Base64内容合并后传入base64ToBinary函数。
- 确保从Dataverse的附件集合实体(如
验证字符长度与附件大小限制
若单个附件Base64内容过长,可能在循环传递中出现截断。检查报错附件的大小,若接近Power Automate单请求字符上限,可尝试拆分大附件,或改用SharePoint批量添加附件的方式替代原生动作。重置连接器权限
重新创建Dataverse和SharePoint的连接器,替换工作流中的旧连接,排除权限过期或连接异常导致的编码传递错误。定位异常附件
逐个测试多附件中的单个附件,找到触发报错的具体文件,检查原文件是否损坏,或在Dataverse存储时是否异常。重新上传该附件后再测试工作流。
内容的提问来源于stack exchange,提问作者Aesthetic123

