Gruppere poster og aggregere beregninger ved hjælp af GROUPBY-datakilder
Under konfiguration af ER-modeltilknytninger eller -formater kan du tilføje nødvendige datakilder af GroupBy-typen.
På designtidspunktet er en GroupBy-datakilde konfigureret til at identificere følgende elementer:
- En basisdatakilde, der indeholder poster, som skal grupperes under kørsel
- Grupperingsfelter i basisdatakilden, som bruges til postgruppering under kørsel
- Aggregatfunktioner, der angiver de aggregatberegninger, der skal udføres for hver opdaget gruppe under kørslen
Under kørsel grupperer en konfigureret GroupBy-datakilde poster, der har samme værdier i grupperingsfelterne, og returnerer en liste over poster. Hver post repræsenterer en enkelt gruppe. Datakilden viser for hver gruppe de feltværdier, som de første poster er grupperet efter, værdierne i de beregnede aggregatfunktioner og listen over poster i den basisdatakilde, der tilhører gruppen.
Aggregatfunktioner
Under kørslen udføres hver aggregatberegning for hver gruppe af poster. Denne beregning udføres ved at bruge værdien på et enkelt felt eller et udtryk i posterne i en datakilde, der blev valgt til gruppering i den redigerbare datakilde af typen GroupBy. Følgende aggregatfunktioner understøttes i øjeblikket:
- AVG – Denne funktion returnerer gennemsnittet af værdierne i en gruppe. Den kan kun bruges i forbindelse med numeriske felter.
- COUNT – Denne funktion returnerer antallet af elementer, der blev fundet i en gruppe.
- Min – Denne funktion returnerer minimumværdien mellem værdierne i en gruppe.
- Max – Denne funktion returnerer maksimumværdien mellem værdierne i en gruppe.
- SUM – Denne funktion returnerer summen af alle værdierne i en gruppe. Den kan kun bruges i forbindelse med numeriske felter.
Sted for udførelse
Når du redigerer en GroupBy-datakilde og angiver den basisdatakilde, der indeholder de poster, der skal grupperes, registrerer systemet automatisk den mest effektive placering til udførelsen af den pågældende GroupBy-datakilde. Hvis der kan forespørges på basisdatakilden (dvs. hvis den kan køres på databaseniveau), angives programdatabasen også som udførelsessted for den GroupBy-datakilde, der kan redigeres. Ellers angives programserverens hukommelse som udførelsesplacering.
Du kan manuelt ændre den automatisk registrerede udførelsesplacering ved at vælge den placering, der gælder for den konfigurerede datakilde. Hvis den udførelsesplacering, der er valgt, ikke kan anvendes, vil der blive udløst en valideringsfejl i forbindelse med design.
Tip!
Det anbefales, at du bruger databaseplaceringen til at gruppere datakilder, der viser et stort antal poster.
Hukommelsesforbrug
Hvis en GroupBy-datakilde køres i hukommelsen, bruges programserverens hukommelse som standard til at gemme poster fra den basisdatakilde, der tilhører hver af de fundne grupper, som poster i en enkelt gruppe. For at reducere forbruget af hukommelse kan du udelade lagring af poster for GroupBy-datakilder, hvis de er konfigureret til kun at beregne aggregerede funktioner, og deres gruppes poster ikke bruges under kørslen. På denne måde kan du reducere forbruget af hukommelse ved at aktivere funktionen Reducer hukommelsesforbruget i ER, når gruppering af poster kun bruges til at beregne aggregeringer i arbejdsområdet Funktionsstyring.
Alternativer
Lignende aggregeringer kan beregnes ved hjælp af forskellige typer datakilder eller indbyggede ER-funktioner.
Hvis du vil vide mere om denne funktion, skal du fuldføre eksemplet nedenfor.
Eksempel: Gruppere poster og aggregere beregninger ved hjælp af en GROUPBY-datakilde
Dette eksempel viser, hvordan en bruger med rollen Systemadministrator eller Funktionel konsulent for elektronisk rapportering kan konfigurere em ER-modeltilknytning, der har en GROUPBY-datakilde, som bruges til at beregne aggregatfunktioner og gruppere poster. Denne modeltilknytning bruges til at udskrive kontrolrapporten, når Intrastat-opgørelsen genereres. Denne rapport giver dig mulighed for at gennemgå rapporterede Intrastat-transaktioner.
Procedurerne i dette eksempel kan fuldføres for DEMF-firmaet i Microsoft Dynamics 365 Finance.
Forberede eksempeldata
Du skal først sørge for, at du har Intrastat-transaktioner til rapportering på Intrastat-siden. Du skal have posteringer for forskellige transportkoder, da du skal gruppere posteringer efter feltet Transport i dette eksempel.
Konfigurere ER-strukturen
Følg trinnene i Konfigurere ER-strukturen for at konfigurere det minimale sæt af ER-parametre. Du skal fuldføre denne opsætning, før du begynder at bruge ER-strukturen til at designe en ER-modeltilknytning.
Importere standardkonfigurationen af ER-format
Følg trinnene i Importere standardkonfigurationen af ER-format for at føje ER-standardkonfigurationerne til den aktuelle forekomst af Dynamics 365 Finance. Importér version 1 af konfigurationen Intrastat-model fra lageret.
Oprette en brugerdefineret datamodelkonfiguration
Benyt fremgangsmåden i Tilføje en brugerdefineret datamodelkonfiguration for manuelt at tilføje en ny Intrastat-model (Litware) som ER-datamodelkonfiguration, som du udleder af den importerede Intrastat-modelkonfiguration.
Konfigurere en brugerdefineret datamodelkomponent
Følg disse trin for at foretage de nødvendige ændringer af den afledte Intrastat-model (Litware)-datamodel, så den kan bruges til at vise transportkoder, der indeholder de nødvendige oplysninger.
Gå til Virksomhedsadministration>Elektronisk rapportering>Konfigurationer.
På siden Konfigurationer skal du i konfigurationstræet vælge Intrastat-model (Litware).
Vælg Designer.
Vælg Intrastat i modeltræet på siden Datamodeldesigner.
Vælg Ny for at tilføje en ny indlejret node for den valgte Intrastat-node. Udfør følgende fremgangsmåde i rulledialogboksen til tilføjelse af en datamodelnode:
- I feltet Navn skal du angive Transport.
- Vælg Liste over poster i feltet Varetype.
- Vælg Tilføj for at tilføje en ny node.
Vælg Ny for at tilføje en ny indlejret node til den Transport-node, du netop har tilføjet. Udfør følgende fremgangsmåde i rulledialogboksen til tilføjelse af en datamodelnode:
- Angiv Kode i feltet Navn.
- Vælg Streng i feltet Varetype.
- Vælg Tilføj for at tilføje en ny node.
Vælg Ny for at tilføje endnu en indlejret node til Transport-noden. Udfør følgende fremgangsmåde i rulledialogboksen til tilføjelse af en datamodelnode:
- I feltet Navn skal du angive TotalInvoicedAmount.
- Vælg Kommatal i feltet Varetype.
- Vælg Tilføj for at tilføje en ny node.
Vælg Ny for at tilføje endnu en indlejret node til Transport-noden. Udfør følgende fremgangsmåde i rulledialogboksen til tilføjelse af en datamodelnode:
- Angiv NumberOfTransactions i feltet Navn.
- Vælg Heltal i feltet Elementtype.
- Vælg Tilføj for at tilføje en ny node.
Vælg Ny for at tilføje endnu en indlejret node til Transport-noden. Udfør følgende fremgangsmåde i rulledialogboksen til tilføjelse af en datamodelnode:
- I feltet Navn skal du angive Transaktion.
- Vælg Liste over poster i feltet Varetype.
- Vælg Tilføj for at tilføje en ny node.
Vælg Skift varereference for den Transaktion-node, du netop har tilføjet, i oversigtspanelet Node.
Vælg CommodityRecord i datamodeltræet i dialogboksen Skift varereference. Vælg derefter OK.
Fuldføre designet af den brugerdefinerede datamodel
Udfør trinnene i Fuldføre designet af datamodellen for at færdiggøre designet af den afledte datamodel Intrastat-model (Litware).
Oprette en ny konfiguration af modeltilknytning
Benyt fremgangsmåden i Oprette en ny konfiguration af modeltilknytning for manuelt at tilføje en ny Intrastat-eksempeltilknytning som ER-modelkonfiguration for den afledte Intrastat-model (Litware)-konfiguration.
Tilføje en ny modeltilknytningskomponent
- Gå til Virksomhedsadministration>Elektronisk rapportering>Konfigurationer.
- På siden Konfigurationer skal du i konfigurationstræet udvide konfigurationen Intrastat-model.
- Vælg konfigurationen Tilknytning af Intrastat-eksempel.
- Vælg Designer for at åbne listen over tilknytninger.
- Vælg Slet for at fjerne den eksisterende tilknytningskomponent.
- Vælg Ny for at tilføje en ny komponent.
- I feltet Definition skal du vælge Intrastat.
- Angiv Intrastat-tilknytning i feltet Navn.
- Vælg Designer for at konfigurere den nye tilknytning.
Designe den tilføjede komponent til modeltilknytning
Tilføje en datakilde for at få adgang til en programtabel
Du skal konfigurere datakilder for at få adgang til de programtabeller, der indeholder detaljerne om Intrastat-transaktioner.
- Vælg Dynamics 365 for Operations\Tabelposter på siden Modeltilknytningsdesigner i ruden Datakildetyper.
- Vælg Tilføj rod i ruden Datakilder for at tilføje en ny datakilde, der skal bruges til at få adgang til Intrastat-tabellen. Hver post i Intrastat-tabellen repræsenterer en enkelt Intrastat-transaktion.
- Angiv Transaktion i feltet Navn i dialogboksen Egenskaber for datakilde.
- Indtast Intrastat i feltet Tabel.
- Vælg OK for at tilføje den nye datakilde.
Føje en datakilde til gruppering af Intrastat-posteringer
Konfigurer en GroupBy-datakilde for at gruppere Intrastat-posteringer og beregne aggregatfunktioner.
Vælg Funktioner\Gruppér efter i ruden Datakildetyper på siden Modeltilknytningsdesigner.
Vælg Tilføj rod i ruden Datakilder for at tilføje en ny datakilde, der skal bruges til at gruppere Intrastat-transaktioner og beregne aggregatfunktioner.
Angiv TransportRecord i feltet Navn i dialogboksen Egenskaber for datakilde.
Vælg Rediger gruppér efter for at konfigurere grupperingsbetingelser.
På siden Rediger 'Gruppér efter'-parametre på listen over datakilder i højre rude skal du vælge datakilden Transaktion og udvide den.
Vælg Føj felt til > Hvad skal grupperes for at angive, at datakilden Transaktion er valgt som basisdatakilde for den konfigurerede GroupBy-datakilde. Posterne i datakilden Transaktion grupperes, og feltværdierne i denne datakilde bruges til beregninger i aggregatfunktioner.
Markér feltet Transaktion\Transport, og vælg derefter Føj felt til > Feltet Grupperet for at angive,at Transport-feltet for basisdatakilden er valgt som grupperingskriterium for den konfigurerede GroupBy-datakilde. Det vil sige, at posterne i datakilden Transaktion grupperes på basis af værdien i feltet Transport. Alle poster i den konfigurerede GroupBy-datakilde vil repræsentere en enkelt transportkode, der findes i poster i basisdatakilden.
Markér feltet Transaction\AmountMST, og benyt derefter følgende fremgangsmåde:
- Vælg Føj felt til > Aggregatfelter for at angive, at der skal beregnes en aggregatfunktion for dette felt.
- Vælg funktionen Sum i feltet Metode i den post, der er føjet til det valgte felt Transaction\AmountMST i ruden Aggregeringer.
- I feltet Navn skal du angive TotalInvoicedAmount.
Disse indstillinger angiver, at for hver transportgruppe beregnes det samlede beløb i feltet Transaction\AmountMST.
Markér feltet Transaction\RecId, og benyt derefter følgende fremgangsmåde:
- Vælg Føj felt til > Aggregatfelter for at angive, at der skal beregnes en aggregatfunktion for dette felt.
- Vælg funktionen Antal i feltet Metode i den post, der er føjet til det valgte felt Transaction\RecId i ruden Aggregeringer.
- I feltet Navn skal du angive NumberOfTransactions.
Disse indstillinger angiver, at for hver transportgruppe beregnes antallet af transaktioner i gruppen.
Vælg Gem.
Gennemgå udførelsesparametrene for den datakilde, der kan redigeres. Bemærk, at Automatisk søgning er valgt automatisk i feltet Udførselssted, og feltet Udførelse ved indeholder værdien SQL. Disse indstillinger angiver, at den valgte Transaktion-basisdatakilde i øjeblikket kan forespørges på, og du kan køre den GroupBy-datakilde, der kan redigeres, på databaseniveau.
Åbn opslaget for feltet Udførselssted for at gennemse listen over tilgængelige værdier. Bemærk, at du kan vælge Forespørgsel eller I hukommelse for at tvinge denne GroupBy-datakilde til at blive kørt på databaseniveau eller i programserverens hukommelse.
Vælg Gem, og luk derefter siden Rediger 'Gruppér efter'-parametre.
Vælg OK for at udføre indstillingerne for GroupBy-datakilden.
Binde GroupBy-datakilden til datamodelfelter
Bind den konfigurerede datakilde til felterne i datamodellen for at angive, hvordan datamodellen skal udfyldes med programdata under kørsel.
Udvid noden Transport på siden Modeltilknytningsdesigner i ruden Datamodel.
Udvid datakilden TransportRecord i ruden Datakilder.
Tilføj en binding for at vise listen over fundne transportgrupper:
- Vælg Transport i ruden Datamodel.
- Vælg datakilden TransportRecord i ruden Datakilder.
- Vælg Bind.
Tilføj en binding for at vise transportkoden for hver fundne transportgruppe:
- Vælg datamodelelementet Transport.Code.
- Vælg det grupperede felt TransportRecord.grouped.TransportMode.
- Vælg Bind.
Tilføj en binding for at vise værdierne af beregnede aggregatfunktioner for hver opdaget transportgruppe:
- Vælg datamodelelementet Transport.NumberOfTransactions.
- Vælg det aggregerede felt TransportRecord.aggregated.NumberOfTransactions.
- Vælg Bind.
- Vælg datamodelelementet Transport.TotalInvoicedAmount.
- Vælg det aggregerede felt TransportRecord.aggregated.TotalInvoicedAmount.
- Vælg Bind.
Tilføj en binding, der viser transaktionsposter, der tilhører hver af de fundne transportgrupper:
- Vælg datamodelelementet Transport.Transaction.
- Vælg feltet TransportRecord.lines.
- Vælg Bind.
Du kan fortsætte med at konfigurere bindinger for de indlejrede elementer i datamodelelementet Transport.Transaction og datakildefeltet TransportRecord.lines for at vise oplysninger om Intrastat-posteringer, der tilhører hver enkelt opdaget transportgruppe, under kørslen.
Foretage fejlfinding af den tilføjede komponent til modeltilknytning
Brug ER-datakildefejlfindingen til at teste den konfigurerede modeltilknytning.
Vælg Start fejlfinding på siden Modeltilknytningsdesigner.
I ruden til venstre på siden Foretag fejlfinding af datakilder skal du vælge datakilden TransportRecord og derefter vælge Læs alle poster.
Udvid datakilden TransportRecord, og benyt derefter følgende fremgangsmåde:
- Vælg datakilden TransportRecord.grouped.TransportMode.
- Vælg Hent værdi.
- Vælg datakilden TransportRecord.grouped.NumberOfTransactions.
- Vælg Hent værdi.
- Vælg datakilden TransportRecord.grouped.TotalInvoicedAmount.
- Vælg Hent værdi.
Vælg Udvid alle i højre rude.
Datakilden TransportRecord viser to poster og præsenterer to transportkoder. Antallet af posteringer og det samlede fakturerede beløb beregnes for hver transportkode.
Bemærk!
Tilgangen "lazy reading" (afslappet lægning) bruges, når en GroupBy-datakilde kaldes for at optimere databasekald. Derfor beregnes nogle af feltværdierne i en GroupBy-datakilde kun i ER-datakilders fejlfindingsprogram, når de er bundet til datamodelfelter.
Ofte stillede spørgsmål
Er der nogen måde at beregne samlede totaler på, når gruppetotalerne beregnes?
Ja. Hvis du vil beregne samlede totaler, skal du konfigurere en anden GroupBy-datakilde, hvor den GroupBy-datakilde, du tidligere konfigurerede, bruges som basisdatakilde. I følgende illustration vises datakilden Totaler for typen GroupBy, som bruges til at beregne den samlede SUM-funktion på baggrund af SUM-aggregeringen af TransportRecord-datakilden for typen GroupBy.
I følgende illustration vises resultaterne af fejlfinding af datakilden Totaler.
Yderligere ressourcer
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: I hele 2024 udfaser vi GitHub-problemer som feedbackmekanisme for indhold og erstatter det med et nyt feedbacksystem. Du kan få flere oplysninger under:Indsend og få vist feedback om