다음을 통해 공유


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

 

게시 날짜: 2016년 11월

적용 대상: Dynamics CRM 2015

OData 끝점이 있는 데이터를 찾고 검색하기 위해 URI를 조작합니다. 모든 작업은 서비스 루트 URI로 시작해야 합니다.Microsoft Dynamics CRM 2015 및 Microsoft Dynamics CRM Online 2015 업데이트에서 서비스 루트 URI는 다음 예제와 같습니다.

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc

참고

조직 루트 URL에는 조직 이름이 포함되어야 합니다. 컨텍스트 개체의 getClientUrl 함수를 사용하여 서비스 루트를 참조합니다. 웹 리소스가 양식에서 호스팅되면 Xrm.Page.context를 참조하여 getClientUrl을 호출합니다. 그렇지 않으면 GetGlobalContext 함수을 사용하여 컨텍스트 개체를 가져오도록 ClientGlobalContext.js.aspx 페이지에 대한 참조를 포함해야 합니다.

서비스 루트 URI에서 리소스 경로를 사용하여 특정 리소스를 식별하고 시스템 쿼리 옵션을 사용하여 쿼리를 더 구체화합니다.

이 항목의 내용

Microsoft Dynamics CRM 엔터티 데이터 액세스

반환된 레코드 수 제한

엔터티 속성

Microsoft Dynamics CRM 복합 형식

  • EntityReference

  • OptionSetValue

  • 금액

  • BooleanManagedProperty

관련 엔터티

Microsoft Dynamics CRM 엔터티 데이터 액세스

각 Microsoft Dynamics 365 엔터티는 <EntitySet> 요소를 사용하여 컬렉션으로 CSDL(개념적 스키마 정의 언어)로 표현됩니다. 각 컬렉션의 이름은 [엔터티 스키마 이름]+ Set의 명명 규칙을 따릅니다. 이 이름은 엔터티 레코드의 컬렉션을 액세스하기 위해 URL에 사용됩니다. 서비스 루트 URI를 볼 때 사용 가능한 모든 컬렉션 목록이 나열됩니다. 쿼리를 만들기 위해 리소스 경로에 조건을 추가합니다.

예를 들어, 브라우저에서 다음 예제의 경로를 사용하여 ATOM 거래처 엔터티 레코드(호출된 "항목"이라고 함)를 볼 수 있습니다.

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/AccountSet

거래처 레코드 목록을 본 후 다음 예제에서 URL 구문을 사용하여 개별적으로 참조될 수 있는 방법을 볼 수 있습니다.

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/AccountSet(guid'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')

참고

Internet Explorer에서 데이터를 보려면 Internet Explorer가 RSS 피드 형식을 지정하도록 활성화되지 않아야 합니다.인터넷 옵션콘텐츠 탭에서,피드 및 웹 조각 그룹의 설정을 선택합니다. 그런 다음 피드 읽기용 보기 사용 옵션을 클릭하여 선택을 취소합니다.Internet Explorer를 닫았다가 다시 엽니다.

반환된 레코드 수 제한

레코드를 검색할 때마다 쿼리에서 상위 50개의 레코드만 반환됩니다. 레코드가 50개 이상일 경우 XML에 <link rel="next" href="<url to next set of records>" > 노드가 있거나 결과 집합의 끝에 JSON**__next** 속성이 있습니다. 해당 노드 또는 속성에서 URL 값을 사용하여 레코드의 다음 집합을 계속합니다. URL에는 페이징 경계에 대한 정보를 제공하는 $skiptoken 매개 변수가 있습니다.

추가 레코드를 검색하려면 이 노드 또는 속성의 존재 여부를 검색하는 메서드를 만들고 제공된 URL을 사용하여 다음 레코드 집합을 검색합니다. 자세한 내용은 샘플: JavaScript와 함께 OData 끝점을 사용하여 여러 레코드 검색을 참조하십시오.

엔터티 속성

각 CSDL(개념적 스키마 정의 언어) <EntitySet>는 엔터티에 대한 속성 및 관계를 설명하는 <EntityType> 요소를 참조합니다.<EntityType> 요소 내에서 <Property> 요소는 Microsoft Dynamics 365 엔터티 특성에 해당합니다. 각 속성은 기본 EDM(엔터티 데이터 모델) 데이터 유형 또는 Microsoft Dynamics 365에 특별히 정의된 <ComplexType> 중 하나에 해당하는 데이터 유형이 할당됩니다. 다음 표에는 데이터 유형이 나와 있습니다.

OData 유형

Microsoft Dynamics 365 데이터 유형

Edm.Boolean

Boolean

Edm.DateTime

DateTime

Edm.Decimal

Decimal

Edm.Double

Double

Edm.Guid

UniqueIdentifier

Edm.Int32

Integer

Edm.Int64

BigInt

Edm.String

String
EntityName

Microsoft.Crm.Sdk.Data.Services.EntityReference

EntityReference
CustomerOwner

Microsoft.Crm.Sdk.Data.Services.OptionSetValue

OptionSetValue
State
Status

Microsoft.Crm.Sdk.Data.Services.금액

Money

Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty

BooleanManagedProperty

Microsoft Dynamics CRM 복합 형식

Microsoft Dynamics 365에서 사용되는 특정 데이터 유형은 간단한 EDM 데이터 유형을 사용할 수 없습니다.

참고

Microsoft Dynamics 365 복합 유형 값을 null로 설정하려면 복합 유형의 각 속성을 null로 설정합니다. 자세한 내용은 복합 유형을 null로 설정을 참조하십시오.

EntityReference

Microsoft.Crm.Sdk.Data.Services.EntityReference 유형은 조회를 나타냅니다.EntityReference에 해당합니다. 다음 표에는 속성이 나와 있습니다.

이름

유형

설명

Id

GUID

조회에서 연결된 레코드의 고유 ID입니다.

LogicalName

String

엔터티의 이름입니다.

Name

String

조회에서 연결된 레코드에 대한 기본 특성의 값입니다.

다음 예제는 ATOM XML EntityReference입니다.

<d:PrimaryContactId m:type="Microsoft.Crm.Sdk.Data.Services.EntityReference">
   <d:Id m:type="Edm.Guid">76713858-5e81-df11-afdb-00155dba380a</d:Id>
   <d:LogicalName>contact</d:LogicalName> 
   <d:Name>Cat Francis (sample)</d:Name> 
</d:PrimaryContactId>

다음 예제는 JSON EntityReference입니다.

"PrimaryContactId" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.EntityReference" },
    "Id": "78713858-5e81-df11-afdb-00155dba380a",
    "LogicalName": "contact",
    "Name": "Cathan Cook (sample)"}

OptionSetValue

Microsoft.Crm.Sdk.Data.Services.OptionSetValue 유형은 선택 목록 특성을 나타냅니다.OptionSetValue에 해당합니다. 다음 표에는 속성이 나열되어 있습니다.

이름

유형

설명

Value

Number

옵션 집합 특성의 선택한 값입니다.

다음은 ATOMXMLOptionSetValue의 예입니다.

<d:PreferredContactMethodCode m:type="Microsoft.Crm.Sdk.Data.Services.OptionSetValue">
   <d:Value m:type="Edm.Int32">1</d:Value>
</d:PreferredContactMethodCode>

다음 예제는 JSON OptionSetValue입니다.

"PreferredContactMethodCode" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.OptionSetValue" },
    "Value": 1}

금액

Microsoft.Crm.Sdk.Data.Services.Money 유형은 금액 특성을 나타냅니다.Money에 해당합니다. 다음 표에는 속성이 나와 있습니다.

이름

유형

설명

Value

Number

금액입니다.

다음은 ATOMXMLMoney의 예입니다.

<d:CreditLimit m:type="Microsoft.Crm.Sdk.Data.Services.Money">
  <d:Value m:type="Edm.Decimal">500.0000</d:Value> 
</d:CreditLimit>

다음 예제는 JSON Money입니다.

"CreditLimit" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.Money" },
    "Value": 500.0000}

BooleanManagedProperty

특정 조직 담당 엔터티에는 솔루션에 포함할 수 있는 레코드가 있습니다(예: WebResource). 관리 속성의 예에는 IsCustomizable, IsHiddenCanBeDeleted가 포함됩니다.BooleanManagedProperty에 해당합니다. 이러한 Boolean 속성은 관리형 솔루션 구성 요소의 동작을 제어합니다. 자세한 내용은 관리형 속성 사용을 참조하십시오. 다음 표에는 BooleanManagedProperty가 나열됩니다.

이름

유형

설명

Value

Boolean

관리 속성이 실제인지 여부를 나타냅니다.

CanBeChanged

Boolean

관리 속성의 값을 변경할 수 있는지 여부를 나타냅니다.

ManagedPropertyLogicalName

String

관리 속성의 이름을 지정합니다.

이 속성은 읽기 전용입니다.

다음은 ATOMXMLBooleanManagedProperty의 예입니다.

<d:IsCustomizable m:type="Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty">
  <d:Value m:type="Edm.Boolean">true</d:Value>
   <d:CanBeChanged m:type="Edm.Boolean">true</d:CanBeChanged>
   <d:ManagedPropertyLogicalName>iscustomizableanddeletable</d:ManagedPropertyLogicalName>   
</d:IsCustomizable>

다음 예제는 JSON BooleanManagedProperty입니다.

"IsCustomizable" :{
    "__metadata": { "type": "Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty" },
    "CanBeChanged": true,
    "ManagedPropertyLogicalName": "iscustomizableanddeletable",
    "Value": true}

관련 엔터티

CSDL(개념적 스키마 정의 언어) <NavigationProperty> 요소에는 엔터티에 대한 모든 1:N 및 N:N 관계가 포함됩니다. 관계가 자체 참조를 나타내면 이 관계에 대해 두 가지 <NavigationProperty> 요소가 있습니다. 관계 이름은 접두사 ReferencedReferencing을 사용하여 관계에서 재생하는 특정 레코드의 역할을 구분합니다. 자세한 내용은 엔터티 관계 유형을 참조하십시오.

관련 레코드를 검색하기 위해 쿼리를 만들 때 **<NavigationProperty>**를 사용합니다. 다음 예제에서 특정 거래처가 고객인 영업 기회 목록을 검색하려면 특정 거래처의 컨텍스트에서 opportunity_customer_accounts 엔터티 관계를 사용합니다.

/AccountSet(guid'[GUID value]')/opportunity_customer_accounts

관련 레코드에 대해 URL 주소만 필요할 경우 다음 예제에 표시된 $links 쿼리 옵션을 사용할 수 있습니다.

/AccountSet(guid'[GUID value]')/$links/opportunity_customer_accounts

각 관련 레코드에 대한 데이터에 URL만 반환합니다. 브라우저에서 볼 때 결과는 다음 예제와 비슷해야 합니다.

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<links xmlns="https://schemas.microsoft.com/ado/2007/08/dataservices">
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'a6713858-5e81-df11-afdb-00155dba380a')</uri>
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'1224342F-D024-4B47-A3F5-FB22D236E655')</uri>
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'7AF675A8-4FBE-42E7-8279-C32605D2B49B')</uri>
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'2DD9BA88-2A37-4F53-8946-68ABBDC73FC1')</uri>
</links>

레코드를 검색할 때 관련 레코드의 데이터를 포함하려면 $expand 시스템 쿼리 옵션을 사용합니다.

참고 항목

웹 리소스와 함께 OData 끝점 사용
OData 끝점을 사용하는 OData 시스템 쿼리 옵션
OData 끝점을 사용하여 기본 데이터 작업 수행
OData 끝점을 사용하여 추가 데이터 작업 수행
Ajax 및 JScript 웹 리소스와 함께 OData 끝점 사용
샘플: JavaScript 및 jQuery와 함께 OData 끝점을 사용하여 만들기, 검색, 업데이트 및 삭제
샘플: JavaScript와 함께 OData 끝점을 사용하여 만들기, 검색, 업데이트 및 삭제
샘플: OData 끝점 jQuery 연락처 편집기
개방형 데이터 프로토콜(OData)
기술 문서: REST 끝점과 함께 옵션 집합 옵션 사용 - JScript

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