Condividi tramite


Eseguire una query sui dati di Microsoft Dynamics CRM 2015 tramite l'endpoint OData

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics CRM 2015

Per individuare e recuperare i dati con l'endpoint OData, è necessario modificare URI. Tutte le azioni richiedono di iniziare con l'URI radice del servizio. In Aggiornamento di Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 l'URI radice del servizio è riportato nell'esempio seguente.

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

Nota

L'URL radice dell'organizzazione deve includere il nome dell'organizzazione. Fare riferimento alla radice del servizio utilizzando la funzione getClientUrl nell'oggetto del contesto. Se una risorsa Web è ospitata in un modulo, è possibile fare riferimento a Xrm.Page.context per chiamare getClientUrl. In caso contrario, è necessario includere un riferimento alla pagina ClientGlobalContext.js.aspx in modo da poter utilizzare Funzione GetGlobalContext per ottenere l'oggetto del contesto.

Dall'URI radice del servizio identificare le risorse specifiche utilizzando un percorso della risorsa e raffinando ulteriormente la query mediante le opzioni della query di sistema.

In questo argomento

Accedere ai dati di entità di Microsoft Dynamics CRM

Limitazioni del numero di record restituiti

Proprietà delle entità

Tipi complessi di Microsoft Dynamics CRM

  • EntityReference

  • OptionSetValue

  • Money

  • BooleanManagedProperty

Entità correlate

Accedere ai dati di entità di Microsoft Dynamics CRM

Ogni entità di Microsoft Dynamics 365 è rappresentata in CSDL (Conceptual Schema Definition Language) come una raccolta che utilizza l'elemento <EntitySet>. Il nome di ogni raccolta segue la convenzione di denominazione di [Nome schema di entità] + Set. Questo nome viene utilizzato in URL per accedere a una raccolta di record di entità. È possibile ottenere un elenco di tutte le raccolte disponibili quando si visualizza l'URI radice del servizio. Per creare una query è necessario aggiungere i criteri al percorso della risorsa.

Ad esempio, nel browser è possibile visualizzare i record dell'entità account ATOM (denominati "voci") utilizzando il percorso dell'esempio seguente.

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

Dopo la visualizzazione dell'elenco dei record di account, è possibile vedere come sia possibile fare riferimento singolarmente a ciascuno di essi tramite la sintassi URL dell'esempio seguente.

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

Nota

Per visualizzare i dati in Internet Explorer, è prima necessario assicurarsi che Internet Explorer non sia abilitato per formattare i feed RSS. Nella scheda Contenuto delle Opzioni internet. selezionare Impostazioni nel gruppo Feed e Web Slice. Quindi, fare clic per deselezionare l'opzione Attiva visualizzazione di lettura feed. Chiudere e riaprire Internet Explorer.

Limitazioni del numero di record restituiti

Ogni volta che si recuperano i record, vengono restituiti solo i 50 record principali nella query. Se sono presenti più di 50 record, sarà presente un nodo <link rel="next" href="<url to next set of records>" > in XML o una proprietà JSON**__next** alla fine del set di risultati. È possibile utilizzare il valore URL in tale nodo o proprietà per continuare con il set di record successivo. L'URL contiene un parametro $skiptoken che offre informazioni sul limite di paging.

Per recuperare record aggiuntivi è necessario creare un metodo che rilevi l'esistenza di questo nodo o proprietà e utilizzare l'URL specificato per recuperare il set di record successivo. Per ulteriori informazioni, vedere: Esempio: Recuperare più record utilizzando l'endpoint OData con JavaScript.

Proprietà delle entità

Ogni CSDL (Conceptual Schema Definition Language) <EntitySet> fa riferimento a un elemento <EntityType> in cui sono descritte le proprietà e le relazioni per un'entità. Negli elementi <EntityType> gli elementi <Property> corrispondono ad attributi di entità di Microsoft Dynamics 365. A ogni proprietà è assegnato un tipo di dati che corrisponde a uno dei tipi di dati primitivi di Entity Data Model (EDM) o a un <ComplexType> appositamente predefinito per Microsoft Dynamics 365. Nella seguente tabella sono elencati i tipi di dati.

Tipo OData

Tipo di dati di 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

Money

Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty

BooleanManagedProperty

Tipi complessi di Microsoft Dynamics CRM

Alcuni tipi di dati utilizzati da Microsoft Dynamics 365 non possono utilizzare i tipi di dati di EDM semplici.

Nota

Per impostare valori di tipo complesso di Microsoft Dynamics 365 su null, impostare ogni proprietà di tipo complesso su null. Per ulteriori informazioni, vedere Impostazione dei tipi complessi su null.

EntityReference

Il tipo Microsoft.Crm.Sdk.Data.Services.EntityReference rappresenta una ricerca. Corrisponde a EntityReference. Nella tabella seguente sono elencate le proprietà.

Nome

Tipo

Descrizione

Id

GUID

ID univoco del record associato nella ricerca.

LogicalName

String

Nome dell'entità.

Name

String

Valore dell'attributo primario del record associato nella ricerca.

Di seguito è riportato un esempio di un elemento EntityReference ATOM XML:

<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>

Di seguito è riportato un esempio di un elemento EntityReference JSON:

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

OptionSetValue

Il tipo Microsoft.Crm.Sdk.Data.Services.OptionSetValue rappresenta un attributo di elenco a discesa. Corrisponde a OptionSetValue. Nella tabella seguente sono elencate le proprietà.

Nome

Tipo

Descrizione

Value

Number

Valore selezionato dell'attributo OptionSet.

Di seguito è riportato un elemento ATOMXMLOptionSetValue di esempio.

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

Di seguito è riportato un esempio di un elemento OptionSetValue JSON:

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

Money

Il tipo Microsoft.Crm.Sdk.Data.Services.Money rappresenta un attributo Money. Corrisponde a Money Nella tabella seguente sono elencate le proprietà.

Nome

Tipo

Descrizione

Value

Number

Somma di denaro.

Di seguito è riportato un elemento ATOMXMLMoney di esempio.

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

Di seguito è riportato un esempio di un elemento Money JSON:

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

BooleanManagedProperty

Alcune entità di proprietà dell'organizzazione hanno record che è possibile includere in una soluzione, ad esempio WebResource. Esempi di proprietà gestite includono IsCustomizable, IsHidden e CanBeDeleted. Corrisponde a BooleanManagedProperty Queste proprietà Boolean controllano il comportamento dei componenti della soluzione gestita. Per ulteriori informazioni, vedere Utilizzare proprietà gestite. Nella tabella seguente solo elencate le proprietà BooleanManagedProperty.

Nome

Tipo

Descrizione

Value

Boolean

Indica se la proprietà gestita è valida.

CanBeChanged

Boolean

Indica se il valore della proprietà gestita può essere modificato.

ManagedPropertyLogicalName

String

Specifica il nome della proprietà gestita.

Questa proprietà è di sola lettura.

Di seguito è riportato un elemento ATOMXMLBooleanManagedProperty di esempio.

<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>

Di seguito è riportato un esempio di un elemento BooleanManagedProperty JSON:

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

Entità correlate

L' elemento<NavigationProperty> di CSDL (Conceptual Schema Definition Language) include qualsiasi relazione 1: N e N: N per l'entità. Se la relazione rappresenta una relazione autoreferenziale, vi sono due elementi <NavigationProperty> per tale relazione. Il nome della relazione utilizza il prefisso Referenced e Referencing per differenziare il ruolo che un record specifico svolge nella relazione. Per ulteriori informazioni, vedere Tipi di relazioni di entità.

Utilizzare <NavigationProperty> se si desidera creare una query per recuperare i record correlati. Nell'esempio seguente se si desidera recuperare un elenco delle opportunità dove un determinato account è il cliente, utilizzare la relazione di entità opportunity_customer_accounts nel contesto di un account specifico:

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

Se sono necessari solo gli indirizzi URL dei record correlati è possibile utilizzare l'opzione di query $links mostrata nell'esempio seguente.

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

Questo restituirà solo gli URL dei dati per ogni record correlato. Quando visualizzati nel browser, i risultati saranno simili all'esempio seguente.

<?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>

Se si desidera includere i dati dei record correlati quando si recupera un record, utilizzare l'opzione di query di sistema $expand.

Vedere anche

Utilizzare l'endpoint OData con risorse Web
Opzioni query di sistema OData utilizzando l'endpoint OData
Eseguire operazioni sui dati di base utilizzando l'endpoint OData
Eseguire operazioni sui dati aggiuntive utilizzando l'endpoint OData
Utilizzare l'endpoint OData con risorse Web Ajax e JScript
Esempio: creare, recuperare, aggiornare e eliminare utilizzando l'endpoint OData con JavaScript e jQuery
Esempio: creare, recuperare, aggiornare e eliminare utilizzando l'endpoint OData con JavaScript
Esempio: editor contatti jQuery endpoint OData
Open Data Protocol (OData)
Articolo tecnico: Utilizzo delle opzioni Set di opzioni con l'endpoint REST - JScript

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright