【发布时间】:2021-09-15 21:11:02
【问题描述】:
我是一名初级 APEX 开发人员(基于 Java 的语言),我想知道是否有一种有效的方法来编写条件语句,其中两个条件发生变化,而其余条件保持不变。
例如,在我下面的代码中,Countryy__c 将更改为英国、美国和加拿大(法国除外),并且对于这些国家/地区中的每一个,行业将从会计变为医学再到法律。同时,潜在客户类型和状态将始终分别保持为 outbound 和 open。此外,每个国家和行业组合都有一个唯一的“所有者 ID”。
也就是说,总共会有 12 个 if/else 语句,其中包含 12 个不同的 OwnerId。鉴于如果国家和行业的数量增加,将来代码维护起来会很混乱,有没有更好的编码方式?
public static void changeOwnerToQueue(List<String> DeactivatedUserIds){
List<Lead> leadList = new List<Lead>();
List<lead> updatedQueue = new List<Lead>();
leadList = [SELECT Id, OwnerId, Countryy__c, Industry__c, Lead_Type__c, Status from lead
where OwnerId IN :DeactivatedUserIds];
for(Lead l : leadList){
if(l.Countryy__c == 'France' && l.Industry__c == 'Accounting' && l.Lead_Type__c == 'Outbound' && l.Status == 'Open'){
l.OwnerId = '00G5J000000pX41';
updatedQueue.add(l);
}
}
【问题讨论】:
-
在核心 java 中,我将使用嵌套映射
Map<String,Map<String,String>>,其中外部地图的键是您的国家,内部地图的键是您的行业映射到您的 OwnerIds 值。
标签: java salesforce apex apex-code