我正在尝试检查帐户字段是否已从特定值更改。
如果旧帐户的标记为“打开”且新帐户标记未打开
然后执行一些检查。
private void doCheck(map<Id, Account> oldAccounts, map<Id, Account> newAccounts){
List<Account>newList= new List<Account>();
List<Account>oldList= new List<Account>();
oldList= oldAccounts.values();
newList= newAccounts.values();
//check if old account flag changed from "open"
}
答案 0 :(得分:0)
private void doCheck(map<Id, Account> oldAccounts, map<Id, Account> newAccounts){
for(Id i : oldAccounts.keyset()){
Account old = oldAccounts.get(i).Flag__c;
if(old.Flag__c == 'Open' && old.Flag__c != newAccounts.get(i).Flag__c){
// do your magic here
}
}
}
如果你要为此运行一些查询 - 你不应该在循环中进行查询。您在其中放置ID并稍后对该集合中的所有帐户ID运行查询的帮助Set<Id>
可能是最好的想法......很难说您到底需要什么。
来自keyset()
集合的get(someKey)
和Map
方法在Apex帮助中进行了描述:http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_methods_system_map.htm#apex_System_Map_methods