Condividi tramite


Opzioni query di sistema OData utilizzando l'endpoint OData

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics CRM 2015

È possibile ridefinire i risultati della query utilizzando le opzioni query di sistema. Nella tabella seguente sono elencate le opzioni stringa di query definite nel protocollo OData che sono implementate nell'endpoint OData per Aggiornamento di Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015.

Opzione

Descrizione

$expand

Ordina che i record correlati dovrebbero essere recuperati nel record o nella raccolta che viene recuperata.

$filter

Specifica un'espressione o funzione che deve restituire true perché un record sia restituito nella raccolta.

$orderby

Determina quali valori vengono utilizzati per ordinare una raccolta di record.

$select

Specifica un sottoinsieme di proprietà da restituire.

$skip

Imposta il numero di record da saltare prima di recuperare i record in una raccolta.

$top

Determina il numero massimo di record da restituire.

$expand

Ordina che i record correlati dovrebbero essere recuperati nel record o nella raccolta che viene recuperata.

Se si desidera recuperare i record correlati, individuare il nome della relazione di entità che definisce la relazione. Può essere necessario visualizzare le informazioni sulle relazioni di entità nell'applicazione per identificare correttamente la relazione o il linguaggio CSDL per il Servizio dati organizzazione.

Ad esempio, per recuperare i record di opportunità correlati agli account, utilizzare la relazione di entità opportunity_customer_accounts. La query /AccountSet?$expand=opportunity_customer_accounts restituisce i record di opportunità e i record di account.

Se si stanno limitando le colonne restituite, è necessario includere anche il nome della proprietà di navigazione nella query. Ad esempio, la query /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts restituisce solo il nome account e i record di opportunità espansi.

Aggiornamento di Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 non supporta l'esecuzione di query su una proprietà di relazione a più livelli. Ad esempio, la query, progettata per recuperare informazioni sull'utente proprietario delle opportunità correlate agli account, non funzionerà: /AccountSet?$expand=opportunity_customer_accounts/opportunity_owning_user.

Per impostazione predefinita, è possibile definire un massimo di sei relazioni da espandere. La query, espandendo sia le opportunità che l'utente di sistema che è proprietario dell'account, funzionerà, /AccountSet?$select=Name,opportunity_customer_accounts,user_accounts&$expand=opportunity_customer_accounts,user_accounts.

Nota

Il numero di record correlati restituiti è soggetto alla stessa limitazione nel numero di record restituiti. Per ulteriori informazioni, vedere Limitazioni del numero di record restituiti. È possibile aumentare il numero di relazioni in modo che si espanda modificando il valore di impostazione ServerSettingsMaxExpandCount.

Ulteriori informazioni:OData: opzione query di sistema del filtro ($expand)

$filter

Specifica un'espressione o funzione che deve restituire true per un record per essere restituito nella raccolta.

Se si stanno recuperando i set di dati aggiuntivi utilizzando il collegamento next, non è consigliabile modificare il valore di opzione query $filter perché questo causa risultati imprevedibili.

La specifica OData per l'opzione query di sistema del filtro descrive gli operatori utilizzati per creare un'espressione da restituire nel filtro.Microsoft Dynamics 365 utilizza tutti gli operatori logici e un sottoinsieme delle funzionalità disponibili, ma non supporta l'utilizzo degli operatori aritmetici. I filtri possono utilizzare le condizioni raggruppate indicate tra parentesi. I confronti dei valori di ora devono utilizzare il formato seguente: datetime’<time value>’, ad esempio datetime'2010-07-15' o datetime'2010-07-15T16:19:54Z'.

La seguente tabella elenca gli operatori supportati da Microsoft Dynamics 365.

Operatore

Descrizione

Esempio

eq

Uguale a

/AccountSet?$filter=Address1_City eq 'Redmond'

ne

Diverso da

/AccountSet?$filter=Address1_City ne null

gt

Maggiore di

/AccountSet?$filter=CreditLimit/Value gt 1000

ge

Maggiore di o uguale a

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

Lt

Minore di

/AccountSet?$filter=CreditLimit/Value lt 1000

le

Minore di o uguale a

/AccountSet?$filter=CreditLimit/Value le 1000

and

Logica e

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

or

Logica o

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

not

Negazione logica

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

È possibile utilizzare l'opzione query $filter per filtrare il valore di un attributo EntityReference. Ad esempio, se si dispone del valore Id per un record SystemUser, è possibile recuperare un elenco di tutti i record di account cui un utente è assegnato utilizzando il filtro seguente:

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

La seguente tabella elenca le funzioni supportate da Microsoft Dynamics 365.

Funzione

Esempio

startswith

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

substringof

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

endswith

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

Ulteriori informazioni:OData: opzione query di sistema del filtro ($filter)

$orderby

Determina quali valori vengono utilizzati per ordinare una raccolta di record. Per impostazione predefinita, l'ordine è ascendente. Utilizzare desc per invertire l'ordine o asc per impostare in modo esplicito l'impostazione predefinita.

Se si stanno recuperando i set di dati aggiuntivi utilizzando il collegamento next, non è consigliabile modificare il valore di opzione query $orderby perché questo causa risultati imprevedibili.

Nota

È possibile selezionare fino a 12 colonne utilizzando $orderby.

Quando si ordina per tipi complessi, come EntityReference o OptionSetValue, solo il nome attributo deve essere specificato. Ad esempio, per ordinare per contatto primario di un account, utilizzare la query $orderby=PrimaryContactId. Specificando $orderby=PrimaryContactId/Name darà un errore Richiesta non valida HTTP (HTTP codice errore 400).

Nell'esempio seguente sono elencati i record di account per paese in ordine crescente e per città in ordine decrescente:

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

Ulteriori informazioni:OData: opzione query di sistema del filtro ($orderby)

$select

Specifica un sottoinsieme di proprietà da restituire e l'ordine in cui le colonne dei dati saranno organizzate. L'impostazione predefinita restituisce tutte le colonne corrispondenti a $select=*.

Se si utilizza $expand per includere dati correlati e si utilizza $select per limitare le colonne restituite, è necessario includere anche il nome della proprietà di navigazione nella query. Ad esempio, la query seguente /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts restituisce solo il nome account e i record di opportunità espansi.

Nota

Esiste una lunghezza di percorso massima di 2048 caratteri per le richieste POST e GET in Internet Explorer. È possibile ottenere questo limite facilmente se si dovesse includere ogni attributo nell'entità account nell'opzione $select. Per ulteriori informazioni, vedere Microsoft KB 208427

Ulteriori informazioni:OData: opzione query di sistema del filtro ($select)

$skip

Imposta il numero di record da saltare prima di recuperare i record in una raccolta.

Se si stanno recuperando i set di dati aggiuntivi utilizzando il collegamento next, non è consigliabile modificare il valore di opzione query $skip perché questo causa risultati imprevedibili.

Ulteriori informazioni:OData: opzione query di sistema del filtro ($skip)

$top

Determina un numero massimo di record da restituire.

Se si stanno recuperando i set di dati aggiuntivi utilizzando il collegamento next, non è consigliabile modificare il valore di opzione query $top perché questo causerà risultati imprevedibili.

Ulteriori informazioni:OData: opzione query di sistema del filtro ($top)

Opzioni query di sistema non supportate

Aggiornamento di Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 non supporta l'utilizzo delle seguenti opzioni query di sistema:

  • $inlinecount

  • $count

  • $format

Vedere anche

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

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright