2011-10-29 2 views
1

나는 동기화하려고하는 두 개의 개체 (약속 및 이벤트 개체라는 하나의 사용자 지정 개체)가 있습니다. 그래서 나는 레코드를 검색하고 업데이트하는 각 객체마다 1 개의 트리거를 가지고 있습니다. 문제는 약속이 업데이트 될 때마다 이러한 트리거가 반복적으로 실행되기 때문입니다. 또한 이벤트가 업데이트되고 트리거가 계속 실행되고 있으므로 Salesforce는이를 받아들이지 않습니다.salesforce에서 반복적으로 2 개의 개체에 대한 트리거 업데이트

어떻게 해결할 수 있습니까?

감사

답변

2

가장 쉬운 방법은 false로 초기화 정적 부울 변수를 포함하는 정점 클래스를하는 것입니다.

trigger MyTrigger on MyObject (after update) 
{ 
    if(CStaticTracker.bHasTriggerFired == false) 
    { 
     CStaticTracker.bHasTriggerFired = true; 

     // do your work and update the other object here 

     // shouldn't need this but let's play safe! 
     CStaticTracker.bHasTriggerFired = false; 
    } 
} 

는 결말이되고, 물론, 트리거 중 하나가 실행될 때이 변수를 true로 설정하고거야 재귀 트리거를 방지 : 그런 다음 트리거의 각이 변수의 상태를 확인할 것 if 문에 포함 된 논리를 실행하지 못하게합니다. 물론 이것은 여전히 ​​계단식 연결을 유발할 수 있지만 트리거 중 하나에서 다른 업데이트를 호출하지 않는 즉시 중지됩니다.

행운을 빈다.

+0

두 번째 트리거에서 CStaticTracker.bHasTriggerFired == false를 확인해야합니까? – Prady

+0

각각의 상태를 나타 내기 위해 두 개의 부울을 사용하는 것이 좋지만 두 경우 모두 'CStaticTrack.bHasTriggerFired == false'에 동일한 코드가 필요하므로 두 번째 코드를 업데이트하려고하지 않아도됩니다. 초기 기록. –