1

別のバッチクラスの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回呼び出す必要があります)。だから私はそれを呼びます。

このエラーを修正するにはどうすればよいですか?

4

2 に答える 2

2

Apexバッチクラス最小バージョンは27.0である必要があります。25.0を使用していたため、この問題に直面していました。

于 2013-03-26T11:37:30.517 に答える
1

他の質問で述べたように、バッチクラスApexでの実行の混乱、finishメソッドからバッチジョブをチェーン化する機能は、Winter13で導入されました。

Winter 13はAPIバージョン26.0に対応しているため、チェーンを使用するには、バッチクラスでそれ以上を使用する必要があります。

于 2013-03-27T02:25:58.933 に答える