OData 끝점을 사용하는 OData 시스템 쿼리 옵션

 

게시 날짜: 2016년 11월

적용 대상: Dynamics CRM 2015

시스템 쿼리 옵션을 사용하여 쿼리 결과를 조정할 수 있습니다. 다음 표에는 Microsoft Dynamics CRM 2015 및 Microsoft Dynamics CRM Online 2015 업데이트에 대해 OData 끝점에 구현되는 OData 프로토콜에 정의된 쿼리 문자열 옵션이 나와 있습니다.

옵션

설명

$expand

관련 레코드는 검색 중인 레코드 또는 컬렉션에서 검색되어야 합니다.

$filter

컬렉션에 반환되는 레코드에 대해 true여야 하는 식 또는 함수를 지정합니다.

$orderby

레코드 컬렉션을 정렬하기 위해 사용되는 값을 결정합니다.

$select

반환할 속성의 하위 집합을 지정합니다.

$skip

컬렉션의 레코드를 검색하기 전에 건너뛸 레코드 수를 설정합니다.

$top

반환할 레코드의 최대 수를 결정합니다.

$expand

관련 레코드는 검색 중인 레코드 또는 컬렉션에서 검색되어야 합니다.

관련 레코드를 검색하려는 경우 이 관계를 정의하는 엔터티 관계의 이름을 찾습니다. 조직 데이터 서비스에 대한 CSDL(개념적 스키마 정의 언어) 또는 관계를 올바르게 식별하기 위해 응용 프로그램에서 엔터티 관계 정보를 봐야 할 수도 있습니다.

예를 들어 거래처에 연결된 영업 기회 레코드를 검색하려면 opportunity_customer_accounts 엔터티 관계를 사용합니다. 쿼리 /AccountSet?$expand=opportunity_customer_accounts는 영업 기회 레코드와 거래처 레코드를 반환합니다.

반환되는 열을 제한하는 경우 쿼리에 탐색 속성의 이름도 포함해야 합니다. 예를 들어 쿼리 /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts는 거래처 이름과 확장된 영업 기회 레코드만 반환합니다.

Microsoft Dynamics CRM 2015 및 Microsoft Dynamics CRM Online 2015 업데이트은 다단계 관계 속성 쿼리를 지원하지 않습니다. 예를 들어 거래처와 관련된 영업 기회를 담당하는 사용에 대한 정보를 검색할 용도의 /AccountSet?$expand=opportunity_customer_accounts/opportunity_owning_user 쿼리가 작동하지 않습니다.

기본적으로 최대 6까지 확장할 관계를 정의할 수 있습니다. 거래처를 담당하는 영업 기회 및 시스템 사용자 둘 다를 확장하는 /AccountSet?$select=Name,opportunity_customer_accounts,user_accounts&$expand=opportunity_customer_accounts,user_accounts 쿼리는 작동합니다.

참고

반환되는 관련 레코드 수는 반환되는 레코드 수와 동일한 제한에 동일한 제한을 따릅니다. 자세한 내용은 반환된 레코드 수 제한을 참조하십시오.ServerSettingsMaxExpandCount 설정 값을 변경하여 관계 수를 늘여 확장할 수 있습니다.

추가 정보:OData: 필터 시스템 쿼리 옵션($expand)

$filter

컬렉션에 반환되는 레코드에 대해 true여야 하는 식 또는 함수를 지정합니다.

next 링크를 사용하여 추가 데이터 집합을 검색할 경우 $filter 쿼리 옵션을 변경하면 예상치 않은 결과가 나올 수 있으므로 변경해서는 안 됩니다.

필터 시스템 쿼리 옵션에 대한 OData 사양은 필터에서 평가할 식을 만드는 데 사용되는 연산자에 대해 설명합니다.Microsoft Dynamics 365은 모든 논리 연산자와 사용 가능한 함수 하위 집합을 사용하지만 산술 연산자는 사용할 수 없습니다. 필터는 괄호로 표시하여 그룹화된 조건을 사용할 수 있습니다. 시간 값 비교는 datetime’<time value>’ 형식을 사용해야 합니다(예: datetime'2010-07-15' 또는 datetime'2010-07-15T16:19:54Z').

다음 표에는 Microsoft Dynamics 365에서 지원되는 연산자가 나와 있습니다.

연산자

설명

예제

eq

같음

/AccountSet?$filter=Address1_City eq 'Redmond'

ne

같지 않음

/AccountSet?$filter=Address1_City ne null

gt

보다 큼

/AccountSet?$filter=CreditLimit/Value gt 1000

ge

보다 크거나 같음

/AccountSet?&$filter=CreditLimit/Value ge 1000

Lt

보다 작음

/AccountSet?$filter=CreditLimit/Value lt 1000

le

보다 작거나 같음

/AccountSet?$filter=CreditLimit/Value le 1000

and

논리곱

/AccountSet?$filter=CreditLimit/Value ge 1000 and Address1_StateOrProvince eq 'TX'

or

논리합

/AccountSet?$filter=AccountCategoryCode/Value eq 2 or AccountRatingCode/Value eq 1

not

논리 부정

/AccountSet?$filter=(AccountCategoryCode/Value ne null) and not (AccountCategoryCode/Value eq 1)

$filter 쿼리 옵션을 사용하여 EntityReference 특성의 값을 필터링할 수 있습니다. 예를 들어 SystemUser 레코드에 대한 Id 값이 있을 경우 다음 필터를 사용하여 사용자가 할당되는 모든 거래처 레코드의 목록을 검색할 수 있습니다.

/AccountSet?$filter=OwnerId/Id eq (guid'" + SystemUserId + "')

다음 표에는 Microsoft Dynamics 365에서 지원되는 함수가 나와 있습니다.

함수

예제

startswith

/AccountSet?$filter=startswith(Name, 'a')

substringof

/AccountSet?$filter=substringof('store',Name)

endswith

/AccountSet?$filter=endswith(Name, '(sample)')

추가 정보:OData: 필터 시스템 쿼리 옵션($filter)

$orderby

레코드 컬렉션을 정렬하기 위해 사용되는 값을 결정합니다. 기본적으로 오름차순입니다.desc를 사용하여 순서를 반대로 바꾸거나 asc를 사용하여 명시적으로 기본값으로 설정합니다.

next 링크를 사용하여 추가 데이터 집합을 검색할 경우 $orderby 쿼리 옵션을 변경하면 예상치 않은 결과가 나올 수 있으므로 변경해서는 안 됩니다.

참고

$orderby를 사용하여 최대 12개 열을 선택할 수 있습니다.

EntityReference 또는 OptionSetValue와 같은 복잡한 유형으로 정렬할 때 특성 이름만 지정해야 합니다. 예를 들어 거래처의 기본 연락처로 정렬하려면 $orderby=PrimaryContactId 쿼리를 사용합니다.$orderby=PrimaryContactId/Name을 지정하면 잘못된 요청 HTTP 오류(HTTP 오류 코드 400)를 제공합니다.

다음 샘플에서는 국가/지역은 오름차순으로, 시/군/구는 내림차순으로 거래처 레코드가 나와 있습니다.

/AccountSet?$select=Address1_Country,Address1_City,Name&$orderby=Address1_Country,Address1_City desc&$filter=(Address1_Country ne null) and (Address1_City ne null)

추가 정보:OData: 필터 시스템 쿼리 옵션($orderby)

$select

반환하는 속성의 하위 집합 및 데이터 열이 구성되는 순서를 지정합니다. 기본값은 $select=*에 해당하는 모든 열을 반환하는 것입니다.

$expand를 사용하여 관련 데이터를 포함하고, $select를 사용하여 반환되는 열을 제한할 경우 탐색 속성의 이름도 쿼리에 포함해야 합니다. 예를 들어 쿼리 /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts는 거래처 이름과 확장된 영업 기회 레코드만 반환합니다.

참고

Internet Explorer에서 POSTGET 요청에는 최대 경로의 길이 제한(2048자)이 있습니다.$select 옵션에서 거래처 엔터티의 모든 특성을 포함한 경우 쉽게 이 한도에 도달할 수 있습니다. 자세한 내용은 Microsoft KB 208427을 참조하십시오.

추가 정보:OData: 필터 시스템 쿼리 옵션($select)

$skip

컬렉션의 레코드를 검색하기 전에 건너뛸 레코드 수를 설정합니다.

next 링크를 사용하여 추가 데이터 집합을 검색할 경우 $skip 쿼리 옵션을 변경하면 예상치 않은 결과가 나올 수 있으므로 변경해서는 안 됩니다.

추가 정보:OData: 필터 시스템 쿼리 옵션($skip)

$top

반환할 레코드의 최대 수를 결정합니다.

next 링크를 사용하여 추가 데이터 집합을 검색할 경우 $top 쿼리 옵션을 변경하면 예상치 않은 결과가 나올 수 있으므로 변경해서는 안 됩니다.

추가 정보:OData: 필터 시스템 쿼리 옵션($top)

지원되지 않는 시스템 쿼리 옵션

Microsoft Dynamics CRM 2015 및 Microsoft Dynamics CRM Online 2015 업데이트은 다음 시스템 쿼리 옵션 사용을 지원하지 않습니다.

  • $inlinecount

  • $count

  • $format

참고 항목

OData 끝점을 사용하여 Microsoft Dynamics CRM 2015 데이터 쿼리
OData: URI Conventions

© 2017 Microsoft. All rights reserved. 저작권 정보