2012-05-10 5 views
3

안녕하세요 여러분,
에이펙스 - 세일즈 포스 - 나는 Force.com 플랫폼에서 일부 기능을 사용자 정의 일하고 접합 개체를 통해 부모 개체 필드를 액세스

. 나는 너에게 질문이있다. 이것이 가능하다면 나는 너무 확신하지 못한다!

내가 가지고있는 것? : 2 개의 사용자 정의 객체 - abc 및 pqr. Abc은 표준 개체 Account와 pqr 사이의 연결 개체입니다. 즉 Account는 abc의 부모이고 Pqr은 abc의 부모입니다. 이 객체를 통해 모든 유형의 Account (즉, Account 객체) 목록으로 검색하고 있습니다.

내가 필요한 것? : Apex의 abc 개체, 즉 계정의 첫 번째 하위 개체에 액세스 할 수 있습니다. 계정을 통해 pqr 필드에 액세스 할 수 있습니까?

내가을 시도하는 것 : 관계 이름을 통해 개체에 액세스 - Account.abc_ R [0] .pqr [0] .FIELDNAME _r

그러나이 일 었소. 일부 salesforce/apex 개발자가이 문제를 해결할 수 있습니까?

답변

4

하위 쿼리를 사용하여 필요한 정보를 얻을 수 있어야합니다. 여기서 중요한 것은 쿼리가 어떻게 설정되는지입니다. 쿼리를 사용하려면 데이터 모델의 모든 수준에 쿼리를 쿼리해야합니다. 트리거 또는 표준 컨트롤러에서 반환 된 데이터에 의존하는 경우 추가 정보에 액세스하려면 계정 개체를 요청하는 것이 좋습니다. 더가있는 경우 때문에 아이를 액세스 할해야 가장 좋은 방법은 그 제가 위에서했던 방법을 기록 없지만 명심

List<Account> accounts = [SELECT Id, Name, (SELECT Id, pqr__r.Id, pqr__r.Name FROM abc__r) FROM Account]; 

for (Account acct : accounts) { 
    string someValue = acct.abc__r[0].pqr__r.Name; 
} 

:

그래서 난의 라인을 따라 뭔가를보고 기대 ABC는 객체가 null이 될 것이므로 최상의 연습으로 미리 테스트 할 것입니다. PQR 객체 데이터도 마찬가지입니다.

+0

JohnDeSantiago 이것은 나를 위해 작동하지 않습니다! – subodhbahl

+0

그래서 어떤 부분이 작동하지 않습니까? 오류가 발생했거나 솔루션에서 찾고있는 결과를 제공하지 못합니다. 좀 더 자세한 내용으로 나를 도울 수 있다면 나는 내 대답을 조정 해 드리겠습니다. –

+0

'.'문자를 사용하여 필드에 액세스 할 수 없습니다. 운영자. 내가 System.Debug를 처음 만들 때 만든 목록에는 ID와 이름이 pqr의 다른 항목으로 만 표시됩니다. 내가 왜 그렇게 잘 모르겠지만 쿼리가 잘 실행 벤치에서 실행 - SOQL 실행하지만 같은 쿼리를 계정 유형 목록에 할당 할 때 계정 필드를 제외하고 아무것도 반환하지 않습니다. 'Multilple objects'유형의 목록을 작성하여 SOQL에서 모든 값을 얻을 수있는 방법이 있습니까? – subodhbahl

2

이 질문에 대한 답은 다음과 같습니다

List<Account> accounts = [SELECT Id, Name, (SELECT Id, pqr__r.Id, pqr__r.Name FROM abc__r) FROM Account]; 

for (Account acct : accounts) { 
    for(Abc__c abc : acct.abc__r) 
     { 
      String someValue = abc.pqr__r.Name; 
     } 
} 

: 여기, abc_ r은 계정으로 객체 ABC 방송 _C의 관계입니다. 궁금한 점이 있으면 의견을 말하십시오.

관련 문제