System.LimitException:Apex堆大小太大Salesforce

时间:2014-02-26 20:13:56

标签: salesforce apex

映射sObjectsToClone =子对象的映射以及关系名称。

我必须将给定的儿童记录克隆到批处理中的每个机会。

void execute(Database.BatchableContext BC, List<Opportunity> batch) {
    List<Opportunity> OpportunityList = new  List<Opportunity>();
    for(Opportunity opp : batch) {
        OpportunityList.add(opp);
    }
    insert OpportunityList;

List<sObject> childObjectStore = new List<sObject>();
for(sObject sob : sObjectsToClone.keySet()) {
    //List<sObject> childObjectStore = new List<sObject>();
    for(Opportunity sOppy : OpportunityList) {
          sObject clone = sob.clone(false, true);
          clone.put(sObjectsToClone.get(sob), sOppy.Id);
          system.debug('Clone :: '+clone);
          childObjectStore.add(clone);
     }
    //insert childObjectStore;
  }
insert childObjectStore;
}

如果OpportunityList大小很小(例如10),则此代码可以正常工作,但如果OpportunityList大小更多(例如大于100),则会抛出System.LimitException: Apex heap size too large:异常。

请建议任何解决方案。

0 个答案:

没有答案