Salesforce公式字段中地址类型转文本后与Zoom Info字段对比报错求助
问题场景
- 集成Zoom Info到Salesforce时涉及两个地址相关字段:
- 自定义文本字段
ZI_Company_Address__c:通过公式拼接生成多行文本,公式为:
输出示例:Zoom_Info_Contact_Street__c + BR() + Zoom_Info_Contact_City__c + ", " + Zoom_Info_Contact_State__c + " " + Zoom_Info_Contact_Zip_Code__c + BR() + Zoom_Info_Contact_Country__c123 elm Street
City, State 07920
United States - Salesforce标准地址字段
MailingAddress:用户手动录入的复合地址类型字段,输出示例:10 elm Street
City, State 01111
United States
- 自定义文本字段
- 尝试用以下公式对比两个字段是否一致时触发错误:
错误提示:IF(AND(MailingAddress = ZI_Company_Address__c),"Yes","No")Error: Incorrect argument type for operator '='
错误原因
Salesforce的地址类型字段(如MailingAddress)是复合字段,本质是包含MailingStreet、MailingCity、MailingState、MailingPostalCode、MailingCountry等子字段的集合,无法直接与纯文本字段使用=运算符进行对比,两者数据类型不兼容,因此触发类型匹配错误。
解决方法
需要将地址类型字段拆分为对应子字段,按照ZI_Company_Address__c的拼接逻辑重新组合成文本后,再与目标文本字段对比。
基础版公式
IF( MailingStreet + BR() + MailingCity + ", " + MailingState + " " + MailingPostalCode + BR() + MailingCountry = ZI_Company_Address__c, "Yes", "No" )
注:原公式中的
AND()是多余的,单个对比条件无需嵌套AND()。
兼容空值的优化版公式
如果存在子字段为空的情况,用BLANKVALUE函数处理空值,避免拼接后出现无效字符:
IF( BLANKVALUE(MailingStreet, "") + BR() + BLANKVALUE(MailingCity, "") + ", " + BLANKVALUE(MailingState, "") + " " + BLANKVALUE(MailingPostalCode, "") + BR() + BLANKVALUE(MailingCountry, "") = ZI_Company_Address__c, "Yes", "No" )
内容的提问来源于stack exchange,提问作者Mr Silly Guy Pennywhistle
相关产品推荐
相关产品推荐

