Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
[Denne artikel er dokumentation til en foreløbig version og er med forbehold for ændringer.]
FetchXML er Dataverses oprindelige forespørgselssprog, der gør det muligt for oprettere at skrive datafiltre som XML-kode, ligesom at skrive en formel, men mere effektiv. Brug FetchXML-editoren til at optimere komplekse profiler for at opnå bedre ydeevne og undgå synkroniseringstimeout for store tabeller (100.000+ poster).
Denne funktion er bedst egnet til avancerede oprettere og udviklere, der er komfortable med at arbejde med XML og har brug for mere kontrol, end hvad den visuelle filtergenerator giver.
Vigtig
- Dette er en forhåndsversionsfunktion.
- Prøveversionsfunktioner er ikke beregnet til produktionsbrug og kan have begrænset funktionalitet. Disse funktioner er underlagt supplerende vilkår for anvendelse og er tilgængelige før en officiel udgivelse, så kunderne kan få tidlig adgang og give feedback.
- Denne funktion overføres gradvist til flere områder og er muligvis ikke tilgængelig i dit område endnu.
Fordele ved FetchXML-editoren
FetchXML-editoren giver flere fordele i forhold til visualudtryksgeneratoren til definition af offlinedatafiltre.
Understøttelse af hierarkiske betingelser:
FetchXML-editoren understøtter oprettelse af komplekse, hierarkiske betingelser, f.eks
under. ,eq-or-under,aboveogeq-or-abovepå hierarkiaktiverede opslag. Få mere at vide om at forespørge om hierarkiske data<fetch> <entity name="account"> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> </filter> <link-entity name="businessunit" from="businessunitid" to="owningbusinessunit" link-type="any"> <filter type="and"> <condition attribute="businessunitid" operator="eq-or-under" value="{YOUR-PARENT-BU-GUID}" /> </filter> </link-entity> </entity> </fetch>Understøttelse af kontrol af ikke-relaterede tabeller:
Med FetchXML-editoren kan du linke til andre tabeller, selvom de ikke har en direkte relation til den primære tabel, forudsat at du angiver gyldige fra og til attributter. Denne funktion er især nyttig i komplekse offlinescenarier, hvor flere enheder deler en fælles fremmed nøgle, men ikke er direkte relateret.
<fetch distinct="false" latematerialize="true" options="DisableRowGoal, EnableOptimizerHotfixes"> <entity name="cr57f_producttranslation"> <filter type="and"> <link-entity name="cr57f_userlanguagepreference" from="cr57f_language_id" to="cr57f_language_id" link-type="any"> <filter type="and"> <condition attribute="cr57f_user_id" operator="eq" value="user_002" /> </filter> </link-entity> </filter> </entity> </fetch>Understøttelse af forespørgselsoptimering ved hjælp af sen materialisering og forespørgselstip:
Editoren viser avancerede optimeringskontrolelementer direkte på elementet
<fetch>, herunder:latematerialize="true": Ved hjælp aflatematerialize="true"optimerer du forespørgselsydeevnen ved at indsnævre matchende poster, før du henter alle deres kolonnedata. Denne attribut reducerer belastningen, når store tabeller synkroniseres under offlinesynkronisering. Få mere at vide om brug af sen materialisering<fetch distinct="false" latematerialize="true" options="OptimizeForUnknown,ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS"> <entity name="msdyn_workorder"> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> <condition attribute="msdyn_systemstatus" operator="in"> <value>690970000</value> <value>690970001</value> </condition> </filter> <!-- Booking chain --> <link-entity name="bookableresourcebooking" from="msdyn_workorder" to="msdyn_workorderid" link-type="any"> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> <filter type="or"> <condition attribute="starttime" operator="today" /> <condition attribute="starttime" operator="next-seven-days" /> </filter> </filter> <link-entity name="bookingstatus" from="bookingstatusid" to="bookingstatus" link-type="any"> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> </filter> </link-entity> <link-entity name="bookableresource" from="bookableresourceid" to="resource" link-type="any"> <filter type="and"> <condition attribute="userid" operator="eq-userid" /> </filter> </link-entity> </link-entity> <!-- Customer asset --> <link-entity name="msdyn_customerasset" from="msdyn_customerassetid" to="msdyn_customerasset" link-type="any"> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> </filter> <!-- Account --> <link-entity name="account" from="accountid" to="msdyn_account" link-type="any"> <filter type="and"> <condition attribute="statecode" operator="eq" value="0" /> </filter> </link-entity> </link-entity> </entity> </fetch>Attributten
optionsoverfører SQL Server forespørgselstip. Få mere at vide om brug af disse indstillinger
Sådan fungerer FetchXML-editoren
Du får adgang til FetchXML-editoren via konfigurationsoplevelsen for offlineprofilen i Power Apps. Du skriver eller indsætter en FetchXML-forespørgsel, og editoren validerer den i realtid, før du gemmer den.
I Power Apps skal du gå til miljøets indstillinger og åbne siden Offline Profiles. Vælg en eksisterende offlineprofil, eller opret en ny, og vælg derefter Rediger profil.
I offlineprofileditoren skal du tilføje eller vælge den tabel, hvis data du vil filtrere til offlinebrug.
Under Filter skal du vælge Brugerdefinerede eller Relaterede rækker og derefter vælge Rediger filter.
Rul ned i filtereditoren, og vælg Vis/Rediger FetchXML for at åbne FetchXML-kodeeditoren.
Rediger den eksisterende FetchXML-forespørgsel, eller indsæt en ny. Editoren validerer automatisk syntaks og struktur, når du redigerer, og kontrollerer, om:
- Et obligatorisk
<fetch>rodelement med mindst ét<entity>element - Kun understøttede FetchXML-koder
- Elementer, der er placeret i de korrekte overordnede elementer
- Maksimalt 500 filterklausuler
Hvis editoren registrerer et problem, f.eks. et manglende påkrævet element eller et ikke-understøttet
<link-entity>forbrug, vises der en klar fejlmeddelelse, så du kan løse det, før du gemmer.- Et obligatorisk
Når fetchXML-forespørgslen er gyldig, skal du vælge Anvend for at konvertere filteret og derefter gemme offlineprofilen.
Vigtig
Vælg altid Anvend og derefter Gem , når du har redigeret FetchXML. Hvis du ikke gemmer, slettes dine ændringer.
Når offlineprofilen er gemt, bruges dit brugerdefinerede FetchXML-filter til datasynkronisering. Hvis din forespørgsel kun bruger funktioner, der understøttes af Visual Builder, vises disse filtre fortsat i brugergrænsefladen i Udtryksgenerator. Hvis du bruger avancerede funktioner kun for FetchXML, gengiver brugergrænsefladen for visualiseringsfilteret muligvis ikke dem. Brug FetchXML-editoren til eventuelle fremtidige ændringer af filteret.
Bedste praksis
- Anvend ydelsestip som
latematerialize="true"ellerhint="union"for store datasæt. - Valider FetchXML ved hjælp af de indbyggede editorkontroller, før du gemmer.
- Gem din offlineprofil umiddelbart efter anvendelse af FetchXML-ændringer.
- Brug kun understøttede FetchXML-konstruktioner til offlineprofiler, f.eks
link-type="any". ellerlink-type="not any". - Undgå ikke-understøttede jointyper som
innerellerouteri offlinefiltre. - Bevar filterdelsætninger under grænsen på 500-delsætninger pr. forespørgsel.
- Ignorer ikke valideringsfejl. Forespørgsler skal være korrekt udformet og fuldført.
Begrænsninger
- Forespørgsler skal starte med et
<fetch>rodelement og indeholde mindst ét<entity>element. - Kun understøttede FetchXML-elementer er tilladt. Ukendte eller ikke-understøttede koder udløser valideringsfejl.
- Elementer skal følge de korrekte overordnede/underordnede indlejringsregler.
-
<link-entity>i<filter>skal brugelink-type="any"ellerlink-type="not any". Indre og ydre joinforbindelser understøttes ikke. - FetchXML-koder
<attribute>bruges ikke til valg af kolonner i offlinesynkronisering. Brug i stedet indstillingen Filtrer kolonner . - Eksplicitte pagineringsattributter såsom
pageogcountignoreres i offline-profiler. - Forespørgsler er begrænset til maksimalt 500 filterklausuler.