如何在Salesforce Flow HTTP POST Callout中传递PDF的Base64编码Blob?
解决Flow HTTP POST Callout传递PDF Base64 Blob的类型匹配问题
核心思路
Flow的HTTP Callout不直接支持Blob类型传递,必须先把ContentVersion的VersionData转成Base64字符串,再匹配对应的JSON Schema类型,就能解决类型不匹配和变量无法选择的问题。
具体步骤
第一步:把Blob转成Base64字符串
在Flow里添加一个赋值元素,用内置公式BASE64ENCODE(ContentVersion.VersionData)把PDF的Blob数据转换成Base64编码的字符串,存到一个新的文本变量里。第二步:修正External Service的JSON Schema
定义请求体Schema时,对应PDF数据的字段类型必须设为string,不能用binary或其他Blob相关类型。比如Lambda期望的请求体结构如果是:{ "pdfData": "这里是Base64编码的PDF内容" }就要把Schema里
pdfData的type设为string。第三步:绑定Flow变量到请求参数
回到Flow的HTTP Callout元素,选择你定义好的External Service,此时就能把之前生成的Base64字符串变量绑定到请求体的对应字段,不会再出现类型不匹配或无法选变量的问题。第四步:确认Lambda端无需改动
Flow的BASE64ENCODE和你之前Apex里用的EncodingUtil.base64Encode()输出完全一致,Lambda端可以继续用原来的解码逻辑处理,不需要做任何调整。
避坑提醒
- 别在Schema里用
binary类型,Flow目前不支持直接把Blob传到这类字段,会导致无法选择输入变量。 - 其他请求字段也要保证Schema类型和Flow变量类型严格匹配(比如数字对应number,文本对应string)。
内容的提问来源于stack exchange,提问作者HeXor
相关产品推荐
相关产品推荐

