2014-11-25 5 views
1

연결 역할 쌍을 통해 계정에 연결된 모든 연락처를 찾아야합니다. SQL에서는 다음과 같습니다 ...연결 역할을 기준으로 Dynamics CRM 레코드 쿼리

SELECT ConnectionRoleBase.Name AS [Account Name], ContactBase.FullName AS [Conection Role], AccountBase.Name AS [Contact Name] 
FROM ConnectionBase INNER JOIN 
ConnectionRoleBase ON ConnectionBase.Record2RoleId = ConnectionRoleBase.ConnectionRoleId INNER JOIN 
ContactBase ON ConnectionBase.Record2Id = ContactBase.ContactId INNER JOIN 
AccountBase ON ConnectionBase.Record1Id = AccountBase.AccountId 
WHERE(ConnectionRoleBase.Name LIKE N'%scientist%') 

Odata를 사용하여이 작업을 수행 할 수 있습니까? 그렇다면 연결이 다른 엔터티와 다르기 때문에 쿼리를 작성하는 방법을 모르겠습니다.

FetchXML을 사용할 수 있습니까? 다시 어떻게 연결을 참조해야합니까?

JavaScript에서이 쿼리를 수행하려면 XRMTServicesToolKit 및 Odata를 사용하는 것이 좋습니다. 어떤 제안이나 도움을 주시면 감사하겠습니다.

답변

1

이 경우 OData를 사용할 수 있습니다. 이 테이블은 ConnectionSet, ConnectionRoleSet, AccountSet 및 ContactSet입니다. 모든 필요한 조인을 수행하려면 중첩 된 호출을 수행해야합니다.

OData 쿼리를 수행하는 데 CRMRestKit를 선호합니다. 쿼리 작성을 단순화 할 수 있지만 원하는 도구가 있으면 충분합니다. Retrieve (일명 Retrieval Individual)와 함께 ByQuery (일명 RetrieveMultiple)를 사용해야합니다.