Del via


Hente og køre foruddefinerede forespørgsler

 

Udgivet: januar 2017

Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Microsoft Dynamics 365 gør muligt for administratorer at oprette systemvisninger, der er tilgængelige for alle brugere. Individuelle brugere kan gemme de avancerede søgeforespørgsler, så de kan genbruges i programmet. Begge disse repræsenterer foruddefinerede forespørgsler, du kan hente og afvikle ved hjælp af web-API'et. Du kan også oprette en forespørgsel ved hjælp af FetchXml og bruge den til at hente data.

Dette emne indeholder

Foruddefinerede forespørgsler

Brug brugerdefineret FetchXML

Foruddefinerede forespørgsler

Microsoft Dynamics 365 gør det muligt at definere, gemme og afvikle to typer forespørgsler, som vises her.

Forespørgselstype

Beskrivelse

Gemt forespørgsel

Systemdefinerede visninger for et objekt. Disse visninger gemmes i savedquery EntityType.Flere oplysninger:Tilpasse objektvisninger

Brugerforespørgsel

Søgninger med Avanceret søgning, der gemmes af brugere for et objekt. Disse visninger gemmes i userquery EntityType.Flere oplysninger:UserQuery-objekt (gemt visning)

Poster for begge disse typer objekter indeholder FetchXML-definitionen for de data, der skal returneres. Du kan forespørge den respektive objekttype for at hente den primære nøgleværdi. Med den primære nøgleværdi kan du afvikle forespørgslen ved at overføre den primære nøgleværdi. Hvis du f.eks. vil udføre den gemte forespørgsel Aktive konti, skal du første hente den primære nøgle ved hjælp af en forespørgsel som denne.

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

Du kan derefter bruge savedqueryid-værdien og sende den som værdien til savedQuery-parameteren til accounts-objektsættet.

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

Brug den samme fremgangsmåde til at få userqueryid og sende den som værdien til userQuery-parameteren til det objektivsæt, der matcher den tilsvarende returnedtypecode for den gemte forespørgsel.

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

Anvend en forespørgsel til en samling af den rette type

Ud over blot at anvende den gemte forespørgsel til hovedsætsamlingen af objekter kan du også bruge en gemt forespørgsel eller en brugerforespørgsel til at anvende den samme filtrering på en samling af objekter af den relevante type. Hvis du f.eks. vil anvende en forespørgsel mod blot de objekter, der er relateret til et bestemt objekt, kan du anvende det samme mønster. F.eks. anvender følgende URL forespørgslen Åbne salgsmuligheder i forhold til de salgsmuligheder, der er relateret til en bestemt konti, via opportunity_parent_account-navigationsegenskaben med gruppeværdi.

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

Brug brugerdefineret FetchXML

FetchXML er et beskyttet forespørgselssprog, der indeholder funktioner til at udføre sammenlægning. De gemte forespørgsler og brugerforespørgsler, der er gemt i henholdsvis savedquery EntityType og userquery EntityType, omfatter en fetchxml-egenskab, der definerer forespørgslen. Du kan bruge FetchXML direkte sammen med IOrganizationService.RetrieveMultiple-metoden eller med RetrieveMultipleRequest.Flere oplysninger:Oprette forespørgsler med FetchXML

Du kan sende URL-kodet FetchXML som en forespørgsel til det objektsæt, der svarer til forespørgslens rodobjekt, ved hjælp af FetchXML-parameteren for at returnere resultaterne fra web-API'et. Du kan f.eks. have følgende FetchXML, der har firma som objektet.

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

Den URL-kodede værdi for denne FetchXML er vist her.

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

De fleste programmeringssprog omfatter en funktion til at URL-kode en streng. F.eks. kan du i JavaScript bruge encodeURI-funktionen. Du skal URL-kode enhver anmodning, du sender til en RESTful-webtjeneste. Hvis du indsætter en URL-adresse i adresselinjen i din browser, skal den URL-kode adressen automatisk. Følgende eksempel viser en GET-anmodning med den tidligere viste FetchXML ved hjælp af objektsætstien for konti.

  • Anmodning

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

    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."
        }
      ]
    }
    

    Bemærk

    Svar på FetchXML-forespørgsler, som indeholder linkobjekter, og deres attributter indeholder Unicode-specialtegn som '.', der bliver '_x002e_' og '@' bliver '_x0040_'.

Sideopdeling med FetchXML

Med FetchXML kan du anvende sideopdeling ved at indstille page- og count-attributterne for fetch-elementet. Du kan f.eks. indstille en forespørgsel for konti og begrænse antallet af objekter til 2 og til blot at returnere den første side, med følgende 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>

Med en anmodning, der anvender fetchXML, kan du også anmode om en sideopdelingscookie og inkludere den i din forespørgsel.Flere oplysninger:Sideopdele store resultatsæt med FetchXML

En sideopdelingscookie skal anmodes om som en anmærkning. Angiv odata.include-annotations-indstillingen, der skal bruges (eller medtages) Microsoft.Dynamics.CRM.fetchxmlpagingcookie, og der returneres en @Microsoft.Dynamics.CRM.fetchxmlpagingcookie-egenskab sammen med resultatet.

Se også

Eksempel på Web API-forespørgselsdata (C#)
Eksempel på Web API-forespørgselsdata (JavaScript på klientsiden)
Udføre operationer ved hjælp af web-API
Skrive HTTP-anmodninger og håndtere fejl
Forespørg på data ved hjælp af Web-API'en
Oprette et objekt ved hjælp af Web-API
Hente et objekt ved hjælp af web-API'et
Opdatere og slette objekter ved hjælp af web-API'et
Tilknytte og fjerne tilknytningen af objekter ved hjælp af web-API'et
Bruge Web-API-funktioner
Brug Web API-handlinger
Udføre batchhandlinger ved hjælp af Web-API
Efterligne en anden bruger ved hjælp af Web-API'en
Udfør betingede operationer ved hjælp af web-API

Microsoft Dynamics 365

© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret