2013-04-06 2 views
0

나는 스케쥴 할 수있는 여러 개의 HTTP 콜 아웃을 가지고 있으며 한 시간 정도 실행되도록 설정되어 있습니다. 앱 교환에 앱을 배포하고 Salesforce 사용자가 테스트 용으로 다운로드 한 후에 작업이 실행되지 않는 것 같습니다.Salesforce Schedulable not working

작업이 그에 따라 실행되도록 예약되어 있지만 데이터베이스가 절대로 변경되지 않는 것을 볼 수 있습니다. 어떤 일이 일어날 수있는 이유가 있습니까? 아니면 내 코드에 결함이있을 가능성이 있습니까?

그러나 권한이 될 수 있다고 생각했지만 (처음 배포하는 앱) 확실하지 않습니다.

답변

2

최종 사용자의 조직이 설정에서 "원격 사이트 설정"에 엔드 포인트를 추가했는지 확인하십시오. 엔드 포인트 란 호출되는 주소 (또는 도메인)를 의미합니다.

클래스가 올바르게 스케줄 된 경우 (설치 후 마술처럼 일어날 수있는 수동 작업이 아닌 ... 수동 설치 일 것입니다 ... 설치 후 스크립트를 사용하지 않은 경우) 설치 -> Apex Jobs에서 오류가 있는지 확인하십시오. 맞다면 원격 사이트 설정으로 인해 허용되지 않는 콜 아웃 오류가 발생합니다. 그렇지 않다면 - 생각할 수있는 것을 볼 수있는 기회가 여전히 있습니다. 예를 들어 일괄 처리 작업이 성공적으로 실행되었지만 0 번의 반복 -> 문제가 있었습니까?

마지막으로 중요한 것은 디버그 로그를 시도해 볼 수 있습니다. 설정에서 활성화하거나 개발자 콘솔을 열어 예약 된 클래스의 execute()을 수동으로 실행하고 결과를 관찰 할 수 있습니까? 그것을 수동으로 발사하는 방법? 이런 식으로 "익명 실행"을 붙여 넣었습니다.

MySchedulableClass sched = new MySchedubulableClass(); 
sched.execute(null); 

또는 예약 된 클래스 안에 무엇이 있는지 알고 있으므로 실험하십시오.

수행중인 업데이트가 클라이언트의 유효성 검사 규칙에 위배되는 경우 - 예, 데이터베이스는 변경되지 않습니다. 그러나 그런 경우에도 Setup -> Apex Jobs에서 실패를 볼 수 있어야합니다.