2012-01-11 9 views
0

実際に値を更新せずに、Salesforceデータベース内のすべてのレコードの更新をトリガする必要があります。これは、いくつかのフィールドを再計算する数式を作成することです。Salesforceデータベースレコードと実行ガバナーのダミー更新

は、ここに私が試したものだ - スケジュールクラス(たとえば、私はそれが毎晩実行したい):

global class acmePortfolioDummyUpdate implements Schedulable 
{ 
    global void execute(SchedulableContext SC) 
    { 
     for (Acme_Portfolio__c p : [Select Id From Acme_Portfolio__c]) { 
      update(p); 
     } 
    } 
} 

更新(p)は、DML文で、Salesforceは私では150にそれらの数を制限しますそれは数千件ものレコードです。

また、私は多くの異なるポートフォリオでこれを行う必要があります。 SFはスケジュールされたクラスの数を10に制限します。

この問題を回避するには? ありがとう

答えて

3

お試しBatch Apexスケジュール可能なクラスを使用してバッチをスケジュールすることができます。私が間違っているが、あなたがそれらを読むたびに再計算された数式ではない場合、私を修正してください。

編集:コメントスペースが足りません。

global class batchClass implements Database.batchable<sObject>{ 
    global Database.QueryLocator start(Database.BatchableContext BC){ 
     return Database.getQueryLocator('Select Id From Acme_Portfolio__c');  
    } 

    global void execute(Database.BatchableContext BC, List<sObject> scope){ 
     update scope; 
    } 
    global void finish(Database.BatchableContext BC){ 
    } 
} 

とシステムログからこれを実行します:

Database.executeBatch(new batchClass()); 
+2

うん式をベースと再計算しない私は、これがコンパイルされます保証するものではありませよ は、このようなSTHを試してみてください(今ORGへのアクセスを持っていけません)ビュー上。私は彼がワークフローフィールドの更新を意味すると思います。 – thegogz

+0

ありがとうございます。 Batch Apexでこれを行うにはどうすればいいですか?私はそれについて前にいくつかのドキュメントを読んだことがありますが、それはまだ私にとっては非常に神秘的です。 –

+0

数式とワークフローフィールドの更新を再計算することがよく分かりません。そのためにカスタムオブジェクトの束を更新する必要があると言いましょう。 –

関連する問題