无法从批处理方法或将来的方法调用Database.executeBatch

时间:2013-03-26 04:11:16

标签: salesforce apex-code

我从另一个批次类的finish方法调用批处理类并面临上述错误

方法代码:

public class BatchPublicCampaignsToGoogle 
implements Database.Batchable<SObject>, Database.Stateful, 
           Database.AllowsCallouts {

    public void finish(Database.BatchableContext BC){   
        if(newBatch == true) {           
            CalendarSettings__c c = 
                [Select Id, Name, CalendarId__c,
                 CalendarQuery__c,FieldToDisplay__c 
                 from CalendarSettings__c 
                 WHERE Name = 'Internal marketing Calendar' LIMIT 1] ;

            BatchPublicCampaign bjob = new BatchPublicCampaign();
            Database.executeBatch(bjob);
        }
    }

}

但是我收到以下错误:

Database.executeBatch cannot be called from a batch or future method. 

完成批量请求后,我试图再次调用它(我必须再调用两次)。所以我称之为。

如何解决此错误?

2 个答案:

答案 0 :(得分:2)

Apex批次类最低版本应为27.0我使用25.0这就是为什么我面临这个问题!!

答案 1 :(得分:1)

正如我在你提出的另一个问题Execution Confusion in Batch class Apex中所提到的,在冬季13中引入了从完成方法链接批处理作业的能力。

Winter 13对应于API版本26.0,因此您的批次类需要使用该版本或更高版本才能使用链接。