2012-01-11 1 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 문이며, 세일즈 포스에서 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 시도 (지금 조직에 대한 액세스를 필요 없다) 보기에 나는 그가 워크 플로 필드 업데이 트를 의미하는 것 같아요. – thegogz

+0

감사합니다. Batch Apex로 어떻게해야합니까? 나는 그것에 대한 약간의 문서를 읽었지만 여전히 나에게 꽤 신비 롭다. –

+0

수식 및 워크 플로 필드 업데이트를 다시 계산해야할지 모르겠습니다. 간단히 말해서 사용자 지정 개체의 업데이트를 트리거해야한다고 가정 해 보겠습니다. –