如何在Salesforce中为IMEI字段配置验证规则?
Salesforce IMEI字段验证规则实现方案
要实现IMEI的格式校验和校验位验证,可通过**验证规则+Luhn算法(模10算法)**完成,以下是具体步骤和公式:
验证规则核心逻辑
IMEI需满足两个条件:
- 格式为15位纯数字
- 第15位校验位与前14位通过Luhn算法计算出的结果一致
错误条件公式(替换IMEI__c为你的字段API名称)
NOT( AND( # 允许空值,若需强制填写可移除ISBLANK判断 ISBLANK(IMEI__c) || (LEN(IMEI__c) = 15 && ISNUMBER(IMEI__c)), ISBLANK(IMEI__c) || (VALUE(RIGHT(IMEI__c,1)) = IF(MOD(SUM( VALUE(MID(LEFT(IMEI__c,14),1,1)), IF(VALUE(MID(LEFT(IMEI__c,14),2,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),2,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),2,1))*2), VALUE(MID(LEFT(IMEI__c,14),3,1)), IF(VALUE(MID(LEFT(IMEI__c,14),4,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),4,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),4,1))*2), VALUE(MID(LEFT(IMEI__c,14),5,1)), IF(VALUE(MID(LEFT(IMEI__c,14),6,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),6,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),6,1))*2), VALUE(MID(LEFT(IMEI__c,14),7,1)), IF(VALUE(MID(LEFT(IMEI__c,14),8,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),8,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),8,1))*2), VALUE(MID(LEFT(IMEI__c,14),9,1)), IF(VALUE(MID(LEFT(IMEI__c,14),10,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),10,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),10,1))*2), VALUE(MID(LEFT(IMEI__c,14),11,1)), IF(VALUE(MID(LEFT(IMEI__c,14),12,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),12,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),12,1))*2), VALUE(MID(LEFT(IMEI__c,14),13,1)), IF(VALUE(MID(LEFT(IMEI__c,14),14,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),14,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),14,1))*2) ),10)=0, 0, 10-MOD(SUM( VALUE(MID(LEFT(IMEI__c,14),1,1)), IF(VALUE(MID(LEFT(IMEI__c,14),2,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),2,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),2,1))*2), VALUE(MID(LEFT(IMEI__c,14),3,1)), IF(VALUE(MID(LEFT(IMEI__c,14),4,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),4,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),4,1))*2), VALUE(MID(LEFT(IMEI__c,14),5,1)), IF(VALUE(MID(LEFT(IMEI__c,14),6,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),6,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),6,1))*2), VALUE(MID(LEFT(IMEI__c,14),7,1)), IF(VALUE(MID(LEFT(IMEI__c,14),8,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),8,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),8,1))*2), VALUE(MID(LEFT(IMEI__c,14),9,1)), IF(VALUE(MID(LEFT(IMEI__c,14),10,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),10,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),10,1))*2), VALUE(MID(LEFT(IMEI__c,14),11,1)), IF(VALUE(MID(LEFT(IMEI__c,14),12,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),12,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),12,1))*2), VALUE(MID(LEFT(IMEI__c,14),13,1)), IF(VALUE(MID(LEFT(IMEI__c,14),14,1))*2 >9, VALUE(MID(LEFT(IMEI__c,14),14,1))*2 -9, VALUE(MID(LEFT(IMEI__c,14),14,1))*2) ),10))) ) )
错误提示信息
建议设置为:输入的IMEI格式无效或校验位错误,请检查后重新输入。
配置步骤
- 进入Salesforce Setup,找到目标对象的「验证规则」页面
- 点击「新建验证规则」,填写规则名称(如
IMEI格式与校验位验证) - 将上述公式粘贴到「错误条件公式」区域,替换字段API名称
- 设置错误提示信息和错误显示位置(建议选择字段本身)
- 保存规则即可生效
内容的提问来源于stack exchange,提问作者HeXor
相关产品推荐
相关产品推荐

