2012-04-26 1 views
1

SOQL 쿼리 그것들이 존재한다는 것을 어떻게 알 수 있습니까? 내가 힘 탐색기 및 워크 벤치 다음과 같은 수익률을 기록SOQL 쿼리없이 VisualForce 페이지에 존재 행을 반환하지 않는없이 VisualForce 페이지</p> <p>에 SOQL 쿼리를 통해 개체에서 존재 내가 기록을 검색하는 문제가 발생하고 개체의 존재없이 VisualForce 페이지에 행을 반환하지

SELECT Code__c FROM External_membership_label__c WHERE Code__c = '3' 

확인을 사용하고 있으므로없이 VisualForce 페이지 아래의 코드로, 위의 기록을 반환하지 않습니다 (코드에서 몇 줄)

public String gvlLCCODE {get;set;} 

    if(gvlLCCODE != null || gvlLCCODE != ''){ 

     List<External_membership_label__c> exisitingGVLcodes = [SELECT Code__c FROM External_membership_label__c WHERE Code__c = :gvlLCCODE]; 

     if (exisitingGVLcodes.Size() > 0){ 
      //blahh blahh 
     } 
} 

어떤 제안? 'gvlLCCODE'에 객체에 존재하는 값이 있음을 알리는 디버그가 있습니다. 또한 SOQL을 변경하여 예를 들어 users 테이블에서 현재 사용자를 반환하면 레코드를 반환 한 다음 IF 문을 입력합니다.

내가 놓친 보안 문제가 있다고 생각합니다. 그러나 나는 또한 이것을 검사했다.

은 IF 문에 당신은 아마 대신 ||의, & &를 사용하려면, 하나,

답변

0

잘 주셔서 감사합니다.

테스트 방법에 문제가 있습니까? 그렇다면이 메소드는 기본적으로 기존 레코드에 액세스 할 수 없기 때문입니다.

+0

테스트 메소드와 관련이 없으며 객체를 쿼리하는 SOQL 만 해당됩니다. 테스트 방법은 아직이 비트의 코드에 대해 시스템을 주장하지 않습니다. – c14kaa

0

우선 Kirill에 & &에 관한 의견을 들어야합니다. 두 조건 모두 충족해야합니다. 경우에 당신은 분명히 여기에 보안 문제를 가지고

둘째, 그것은 소리가 여기로 마찬가지로, || 의미가 식 (a!=b)|(a!=c)는 항상 ab!=c 마찬가지입니다. 변경 확장 프로그램의 선언을 with sharing에서 without sharing으로 확인하고 실행하십시오. 행을 가져 가면 해당 행과 보안 문제가 공유됩니다.

+0

분명히 보안 문제가 있습니다. 필자가 놓친 것을 알아야합니다. 관리자가 그의 수표를 작성 했으므로 salesforce 지원에 대한 것이 될 수 있습니다. || &&가 수정되었습니다. 바보 같은 실수입니다. – c14kaa

+0

개체 공유 설정을 확인합니다 (공용이 아닌 경우 페이지 레이아웃에 "공유 버튼"추가). 문제가되는 행을 GUI에서 열고 공유를 클릭하십시오. 그러면 해당 소스에 액세스 할 수있는 모든 사람/그룹 목록이 표시됩니다. – mmix

+0

또는 사용자의 프로필에 생명체에 대한 액세스 권한이 없지만 관리자가 말한대로 관리자가이를 확인했다고 말하면 가장 먼저 확인해야합니다. – mmix