Condividi tramite


Recupera e esegui le query predefinite

 

Data di pubblicazione: gennaio 2017

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Microsoft Dynamics 365 offre agli amministratori un modo per creare visualizzazioni di sistema disponibili a tutti gli utenti. Singoli utenti possono salvare le query di ricerca avanzate da riutilizzare nell'applicazione. Entrambi rappresentano le query predefinite che puoi recuperare ed eseguire tramite l'API Web. Puoi inoltre creare una query utilizzando FetchXml e utilizzarla per recuperare i dati.

In questo argomento

Query predefinite

Utilizza FetchXML personalizzato

Query predefinite

Microsoft Dynamics 365 consente di definire, salvare ed eseguire due tipi di query come indicato di seguito.

Tipo di query

Descrizione

Query salvata

Visualizzazioni definite dal sistema per un'entità. Queste visualizzazioni sono archiviate in savedquery EntityType.Ulteriori informazioni:Personalizzare visualizzazioni entità

Query utente

Ricerche avanzate salvate dagli utenti per un'entità. Queste visualizzazioni sono archiviate in userquery EntityType.Ulteriori informazioni:Entità UserQuery (visualizzazione salvata)

I record per entrambi i tipi di entità contengono la definizione FetchXML per i dati da restituire. Puoi eseguire una query al rispettivo tipo di entità per recuperare il valore della chiave primaria. Con il valore della chiave primaria, puoi eseguire la query passando il valore della chiave primaria. Ad esempio, per eseguire la query Account attivi salvata, è necessario innanzitutto ottenere la chiave primaria utilizzando una query.

GET cc_WebAPI_ServiceURI/savedqueries?$select=name,savedqueryid&$filter=name eq 'Active Accounts'

Puoi utilizzare il valore savedqueryid e passarlo come valore al parametro savedQuery al set di entità accounts.

GET cc_WebAPI_ServiceURI/accounts?savedQuery=00000000-0000-0000-00aa-000010001002

Utilizza lo stesso approccio per ottenere userqueryid e passarlo come valore al parametro userQuery al il set di entità corrispondente al returnedtypecode della query salvata.

GET cc_WebAPI_ServiceURI/accounts?userQuery=121c6fd8-1975-e511-80d4-00155d2a68d1

Applica una query a qualsiasi raccolta del tipo appropriato

Oltre ad applicare semplicemente la query salvata nella raccolta principale del set di entità, puoi inoltre utilizzare una query salvata o una query utente per applicare lo stesso filtro in qualsiasi raccolta del tipo di entità appropriato. Ad esempio, se desideri applicare una query solo alle entità correlate a un'entità specifica, puoi applicare lo stesso modello. Ad esempio, il seguente URL applicherà la query Apri opportunità alle opportunità correlate a un account specifico tramite la proprietà di navigazione con valori della raccolta opportunity_parent_account.

GET cc_WebAPI_ServiceURI/accounts(8f390c24-9c72-e511-80d4-00155d2a68d1)/opportunity_parent_account/?savedQuery=00000000-0000-0000-00aa-000010003001

Utilizza FetchXML personalizzato

FetchXML è un linguaggio di query di proprietà che offre funzionalità per eseguire l'aggregazione. Le query salvate e le query utente archiviate in savedquery EntityType e userquery EntityType rispettivamente includono una proprietà fetchxml che definisce la query. Puoi utilizzare FetchXML direttamente con IOrganizationService. Metodo RetrieveMultiple o con RetrieveMultipleRequest.Ulteriori informazioni:Creare query con FetchXML

È possibile passare FetchXML codificato con URL come query per il set di entità corrispondente all'entità principale della query utilizzando il parametro FetchXML per restituire i risultati dall'API Web. Ad esempio, puoi avere il seguente FetchXML con un account come l'entità.

<fetch mapping='logical'> 
   <entity name='account'>
      <attribute name='accountid'/> 
      <attribute name='name'/> 
</entity>
</fetch>

Il valore codificato URL di questo FetchXML viene illustrato di seguito.

%3Cfetch%20mapping='logical'%3E%3Centity%20name='account'%3E%3Cattribute%20name='accountid'/%3E%3Cattribute%20name='name'/%3E%3C/entity%3E%3C/fetch%3E

La maggior parte dei linguaggi di programmazione include una funzione per la codifica URL di una stringa. Ad esempio, in JavaScript utilizza la funzione encodeURI. Devi eseguire la codifica URL di qualsiasi richiesta inviata al servizio web RESTful. Se incolli un URL nella barra degli indirizzi del browser, devi eseguire la codifica URL dell'indirizzo automaticamente. Nell'esempio seguente viene illustrata una richiesta GET che utilizza FetchXML visualizzata in precedenza utilizzando il percorso del set di entità per gli account.

  • Richiesta

    GET cc_WebAPI_ServiceURI/accounts?fetchXml=%3Cfetch%20mapping='logical'%3E%3Centity%20name='account'%3E%3Cattribute%20name='accountid'/%3E%3Cattribute%20name='name'/%3E%3C/entity%3E%3C/fetch%3E HTTP/1.1
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • Risposta

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    
    {
      "@odata.context":"cc_WebAPI_ServiceURI/$metadata#accounts(accountid,name)","value":[
        {
          "@odata.etag":"W/\"506678\"","accountid":"89390c24-9c72-e511-80d4-00155d2a68d1","name":"Fourth Coffee (sample)"
        },{
          "@odata.etag":"W/\"502172\"","accountid":"8b390c24-9c72-e511-80d4-00155d2a68d1","name":"Litware, Inc. (sample)"
        },{
          "@odata.etag":"W/\"502174\"","accountid":"8d390c24-9c72-e511-80d4-00155d2a68d1","name":"Adventure Works (sample)"
        },{
          "@odata.etag":"W/\"506705\"","accountid":"8f390c24-9c72-e511-80d4-00155d2a68d1","name":"Fabrikam, Inc. (sample)"
        },{
          "@odata.etag":"W/\"506701\"","accountid":"91390c24-9c72-e511-80d4-00155d2a68d1","name":"Blue Yonder Airlines (sample)"
        },{
          "@odata.etag":"W/\"502180\"","accountid":"93390c24-9c72-e511-80d4-00155d2a68d1","name":"City Power & Light (sample)"
        },{
          "@odata.etag":"W/\"502182\"","accountid":"95390c24-9c72-e511-80d4-00155d2a68d1","name":"Contoso Pharmaceuticals (sample)"
        },{
          "@odata.etag":"W/\"506704\"","accountid":"97390c24-9c72-e511-80d4-00155d2a68d1","name":"Alpine Ski House (sample)"
        },{
          "@odata.etag":"W/\"502186\"","accountid":"99390c24-9c72-e511-80d4-00155d2a68d1","name":"A. Datum Corporation (sample)"
        },{
          "@odata.etag":"W/\"502188\"","accountid":"9b390c24-9c72-e511-80d4-00155d2a68d1","name":"Coho Winery (sample)"
        },{
          "@odata.etag":"W/\"504177\"","accountid":"0a3238d4-f973-e511-80d4-00155d2a68d1","name":"Litware, Inc."
        }
      ]
    }
    

    Nota

    La risposta di query FetchXML contenenti entità di collegamento e i relativi attributi contiene caratteri speciali Unicode, ad esempio "." diventa "_x002e_" e "@" diventa "_x0040_".

Paging con FetchXML

Con fetchXML puoi applicare il paging impostando gli attributi page e count dell'elemento fetch. Ad esempio, per impostare una query per gli account e limitare il numero di entità a 2 e per tornare solo alla prima pagina, è necessario il seguente fetchXML:

<fetch mapping="logical" page="1" count="2">
 <entity name="account">
  <attribute name="accountid" />
  <attribute name="name" />
  <attribute name="industrycode" />
 <order attribute="name" />
 </entity>
</fetch>

Con una richiesta che utilizza fetchXML puoi anche richiedere un cookie di paging e includerlo con la query.Ulteriori informazioni:Set di risultati di grandi dimensioni della pagina con FetchXML

Un cookie di paging deve essere richiesto come annotazione. Imposta le preferenze odata.include-annotations da utilizzare (o includere) Microsoft.Dynamics.CRM.fetchxmlpagingcookie e una proprietà @Microsoft.Dynamics.CRM.fetchxmlpagingcookie sarà restituita al risultato.

Vedere anche

Esempio di dati di query API Web (C#)
Esempio di dati di query API Web (JavaScript lato client)
Eseguire operazioni tramite l'API Web
Comporre richieste HTTP e gestire gli errori
Query di dati tramite l'API Web
Creare un'entità utilizzando l'API Web
Recupera un'entità utilizzando l'API Web
Aggiorna ed elimina le entità con l'API Web
Associa e annulla associazione entità con l'API Web
Utilizzare le funzioni API Web
Utilizzare le azioni API Web
Eseguire operazioni in batch usando l'API Web
Rappresentare un altro utente usando l'API Web
Eseguire operazioni condizionali tramite l'API Web

Microsoft Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright