2017-01-29 13 views
0

このコードは長年にわたってうまく機能しています。最大ビューの状態サイズの制限(135KB)を超えました

最大ビューステートのサイズ制限(135キロバイト)を超え:

public PageReference chkinst() { 
     i=0; 
     integer j=0; 

     Set<String> aSearchSet = new Set<String>(); 
     List<Lead> lList = ui; 
     for (Lead l : lList) { 
      aSearchSet.add(l.company);    
     } 

     Account[] accountToCreate = new Account[]{}; 
     Map<String,Account> companyToAccountMap = new Map<String,Account>(); 
     for (Account a: [select id, Name from Account where name IN :aSearchSet]) 
     companyToAccountMap.put(a.name,a); 


     for (Lead l : lList) { 
      if (!companyToAccountMap.containsKey(l.company)){ 
       Account act = new Account(Name = l.Company , Country__c = l.Country__c); 
       accountToCreate.add(act); 
       j = j +1; 
      }  
     } 

     insert accountToCreate; 

     if(j == 0) { 
      ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,'All leads have correct institution names')); 
     } else{ 
       ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,j + ' Institutions created')); 
     } 

      return null; 
} 

今日、それは私に次のエラーが発生しました。このページの実際のビューの状態のサイズは135.078KBでした

誰も知っていますか?

おかげで、

答えて

1

それは、このコードスニペットから伝えるのは難しいです。しかし、もし私が推測しなければならなかったら。あなたのcompanyToAccountMapがクラスレベルの変数であるように見えます。それはおそらく今使っていたより多くのレコードを返すでしょう。コントローラ内の他の場所でそのマップが必要ない場合、私はそれをメソッドレベルに移動するか、一時的にします。

関連する問題