Del via


Brug FetchXML til at oprette en forespørgsel

 

Udgivet: januar 2017

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

Når du vil udføre en FetchXML-forespørgsel i Microsoft Dynamics 365 og Microsoft Dynamics 365 (online), skal du først bygge XML-forespørgselsstrengen. Når du opretter forespørgselsstrengen, skal du bruge IOrganizationService.RetrieveMultiple-metoden til at afvikle forespørgselsstrengen. Rettighederne for den bruger, der er logget på, påvirker det sæt poster, der returneres. Kun poster, som den bruger, der er logget på, har læseadgang til, returneres.

FetchXML-forespørgselsstrengen skal overholde skemadefinitionen for FetchXML-sproget. Du kan finde flere oplysninger under FetchXML schema.

Du kan gemme en forespørgsel ved at oprette en SavedQuery-post, som vist i Eksempel: Valider og udfør en gemt forespørgsel. Indstil visible i link-entity-noden til false for at skjule det tilknyttede objekt i brugergrænsefladen Avanceret søgning. Det vil stadig deltage i udførelsen af forespørgslen og returnerer de relevante resultater.

System_CAPS_warningAdvarsel

Hent ikke alle attributter i en forespørgsel på grund af den negative effekt på ydeevnen. Dette gælder især, hvis forespørgslen bruges som en parameter til en opdateringsforespørgsel. I en opdatering angives alle feltværdier, hvis alle attributter er inkluderet, selvom de er uændret og ofte udløser overlappende opdateringer til underordnede poster.

Opret forespørgselsstrengen

I følgende eksempel henter FetchXML-sætningen alle konti:

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

I følgende eksempel henter FetchXML-sætningen alle konti, hvor efternavnet på den bruger, der ejer, ikke er lig med Cannon:

<fetch mapping='logical'>
   <entity name='account'> 
      <attribute name='accountid'/> 
      <attribute name='name'/> 
      <link-entity name='systemuser' to='owninguser'> 
         <filter type='and'> 
            <condition attribute='lastname' operator='ne' value='Cannon' /> 
          </filter> 
      </link-entity> 
   </entity> 
</fetch>  

I følgende eksempel bruger FetchXML-sætningen count til at angive det maksimale antal poster, der returneres af forespørgslen. I dette tilfælde returneres de 3 første konti fra forespørgslen.

<fetch mapping='logical' count='3'>
  <entity name='account'>
   <attribute name='name' alias='name'/>
  </entity></fetch>

Dette eksempel viser en indre joinforbindelse mellem EntityMap og AttributeMap, hvor EntityMapID matcher.

<fetch version='1.0' mapping='logical' distinct='false'>
   <entity name='entitymap'>
      <attribute name='sourceentityname'/>
      <attribute name='targetentityname'/>
      <link-entity name='attributemap' alias='attributemap' to='entitymapid' from='entitymapid' link-type='inner'>
         <attribute name='sourceattributename'/>
         <attribute name='targetattributename'/>
      </link-entity>
   </entity>
 </fetch>

Udfør forespørgslen

Følgende kode viser, hvordan du udfører en FetchXML-forespørgsel:

// Retrieve all accounts owned by the user with read access rights to the accounts and 
// where the last name of the user is not Cannon. 
string fetch2 = @"
   <fetch mapping='logical'>
     <entity name='account'> 
        <attribute name='accountid'/> 
        <attribute name='name'/> 
        <link-entity name='systemuser' to='owninguser'> 
           <filter type='and'> 
              <condition attribute='lastname' operator='ne' value='Cannon' /> 
           </filter> 
        </link-entity> 
     </entity> 
   </fetch> "; 

EntityCollection result = _serviceProxy.RetrieveMultiple(new FetchExpression(fetch2));foreach (var c in result.Entities)   {   System.Console.WriteLine(c.Attributes["name"]);   }

Resultater af forespørgslen

Når du udfører en FetchXML-forespørgsel ved hjælp af metoden RetrieveMultiple, er returværdien en EntityCollection, der indeholder resultaterne af forespørgslen. Du kan derefter gentage gennem objektsamlingen. I det forrige eksempel bruges foreach-løkken til at gentage gennem resultatsamlingen af FetchXML-forespørgslen.

Se også

Oprette forespørgsler med FetchXML
Brug af FetchXML-aggregering
FetchXML schema

Microsoft Dynamics 365

© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret