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 |
Microsoft.Crm.Sdk.Data.Services.EntityReference |
EntityReference |
Microsoft.Crm.Sdk.Data.Services.OptionSetValue |
OptionSetValue |
Microsoft.Crm.Sdk.Data.Services.Money |
|
Microsoft.Crm.Sdk.Data.Services.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