Gruppera poster och aggregera beräkningar med hjälp av GROUPBY-datakällor
När du konfigurerar modellmappningar Elektronisk rapportering (ER) eller format kan du lägga till nödvändiga datakällor av typen GroupBy.
Vid designtiden konfigureras en GroupBy-datakälla för identifiering av följande element:
- En grunddatakälla som innehåller poster som ska grupperas under körning
- Grupperingsfält för basdatakällan, som används för postgruppering när den körs
- Sammansatta funktioner som specificerar de aggregerade beräkningar som ska utföras för varje upptäcktsgrupp vid körning
Under körning grupperar en konfigurerad GroupBy-datakällgrupp poster som har samma värden i grupperingsfälten och returnerar sedan en lista med poster. Varje post representerar en enskild grupp. För varje grupp visar datakällan de fältvärden som de ursprungliga posterna har grupperats efter, värdena för de beräknade sammansatta funktionerna och listan över poster i basdatakällan som tillhör gruppen.
Sammansatta funktioner
Vid körning utförs alla sammanställda beräkningar för varje grupp av poster. Denna beräkning görs med hjälp av värdet för ett enskilt fält eller ett uttryck i posterna för en datakälla som valts för gruppering i den redigerbara datakällan av typen GroupBy . Följande typer av sammansatta funktioner stöds nu:
- AVG – Den här funktionen returnerar medelvärdet för värdena i en grupp. Den kan bara användas med numeriska fält.
- COUNT – Den här funktionen returnerar antalet artiklar som hittades i en grupp.
- Min – Den här funktionen returnerar det lägsta värdet bland värdena i en grupp.
- Max – Den här funktionen returnerar det högsta värdet bland värdena i en grupp.
- SUM – Den här funktionen returnerar summan av alla värdena i en grupp. Den kan bara användas med numeriska fält.
Plats för körning
När du redigerar en GroupBy-datakälla och anger den grunddatakälla som innehåller de poster som måste grupperas, identifierar systemet automatiskt den mest effektiva platsen för körning av den GroupBy-datakällan . Om grunddatakällan är frågningsbart (det vill säga om den kan köras på databasnivå), anges även appdatabasen som exekveringsplats för den redigerbara datakällan GroupBy. Annars anges appserverminnet som körningsplats.
Du kan manuellt ändra den plats för körning som upptäckts automatiskt genom att välja den plats som gäller för den konfigurerade datakällan. Om den valda körningsplatsen inte ska användas, beror det på ett valideringsfel vid designtid.
Tips!
Vi rekommenderar att du använder databasplatsen när du vill gruppera datakällor som visar ett stort antal poster.
Minnesförbrukning
Om en GroupBy-datakälla körs i minnet används som standard programserverminnet för att lagra poster i basdatakällan som tillhör varje upptäckt grupp som poster i en enda grupp. För att minska minnesförbrukningen kan du utelämna postlagring för GroupBy-datakällor om de konfigurerats till att endast beräkna aggregerade funktioner och gruppens poster inte används när de körs. Du minskar minnesförbrukningen på det här sättet genom att aktivera Minska minnesanvändningen i ER när postgruppering bara används för att beräkna sammansättningar i arbetsytan Funktionshantering.
Alternativ
Liknande aggregeringar kan beräknas med hjälp av olika typer av datakällor eller inbyggda funktioner för ER.
Om du vill veta mer om den här funktionen fyller du i det exempel som följer.
Exempel: Använd en GROUPBY datakälla för aggregera beräkningar postgruppering
I det här exemplet visas hur en användare med rollen Systemadministratör eller Funktionskonsult för elektronisk rapportering kan konfigurera en ER-modellmappning som har datakällan GROUPBY som används för att beräkna aggregerade funktioner och grupposter. Modellmappningen används för att skriva ut kontrollrapporten när Intrastat-deklarationen genereras. Den rapporten låter dig granska rapporterade Intrastat-transaktioner.
Procedurerna i detta exempel kan slutföras i DEMF-företaget DEMF i Microsoft Dynamics 365 Finance.
Förbered exempeldata
Kontrollera att du har Intrastat-transaktioner för rapportering på Intrastat-sidan. Det måste finnas transaktioner för olika transportkoder, eftersom transaktioner grupperas efter fältet Transport i det här exemplet.
Konfigurera ER-ramverket
Följ stegen i Konfigurera ER-ramverket för att ställa in den minimala uppsättningen ER-parametrar. Du måste slutföra de här inställningarna innan du börjar använda ER-ramverket för att designa en ER-modellmappning.
Importera standardkonfiguration av ER-format
Följ stegen i Importera standardkonfiguration för ER-format för att lägga till ER-standardkonfigurationerna i din nuvarande instans av Dynamics 365 Finance. Importera version 1 av konfigurationen för Intrastat-modell från databasen.
Skapa en anpassad konfiguration för datamodell
Följ stegen i Lägg till en anpassad datamodellkonfiguration för att manuellt lägga till en ny Intrastat-modell (Litware) ER-datamodellkonfiguration som du härleder från den importerade konfigurationen Intrastat-modell.
Konfigurera en anpassad datamodellkomponent
Följ dessa steg för att göra de nödvändiga ändringarna av den härledda Intrastat-modell (Litware) datamodell, så att den kan användas för att exponera transportkoder som har de nödvändiga detaljerna.
Gå till Organisationsadministration>Elektronisk rapportering>Konfigurationer.
På sidan konfigurationer i konfigurationsträdet väljer du artikeln Intrastat-modell (Litware).
Välj Designer.
På sidan Sidan Datamodelldesigner i modellträdet, välj Intrastat.
Välj Ny om du vill lägga till en ny kapslad nod för den valda Intrastat noden. Gör så här i listrutan för att lägga till en datamodellnod:
- I fältet Namn ange Transport.
- Välj Postlista i fältet Artikeltyp.
- Välj Lägg till för att lägga till en ny nod.
Välj Ny om du vill lägga till en ny kapslad nod för den Transport nod som du just lagt till. Gör så här i listrutan för att lägga till en datamodellnod:
- I fältet Namn, ange Kod.
- Välj Sträng i fältet Artikeltyp.
- Välj Lägg till för att lägga till en ny nod.
Välj Ny om du vill lägga till en annan ny kapslad nod för den Transport nod. Gör så här i listrutan för att lägga till en datamodellnod:
- I fältet Namn anger du TotalInvoicedAmount.
- Välj Realtal i fältet Artikeltyp.
- Välj Lägg till för att lägga till en ny nod.
Välj Ny om du vill lägga till en annan ny kapslad nod för den Transport nod. Gör så här i listrutan för att lägga till en datamodellnod:
- I fältet Namn anger du NumberOfTransactions.
- I fältet Artikeltyp välj Heltal.
- Välj Lägg till för att lägga till en ny nod.
Välj Ny om du vill lägga till en annan ny kapslad nod för den Transport nod. Gör så här i listrutan för att lägga till en datamodellnod:
- I fältet Namn anger du Transaktion.
- Välj Postlista i fältet Artikeltyp.
- Välj Lägg till för att lägga till en ny nod.
För den Transaktion nod som du just lagt till, på snabbflikarna Nod, välj Byt artikelreferens.
I dialogrutan Switch-artikelreferens väljer du CommodityRecord i datamodellträdet. Välj sedan OK.
Färdigställa utformning av anpassad datamodell
Följ stegen i Slutför design av datamodellen för att slutföra utformningen av den härledda datamodellen Intrastat-modell (Litware).
Skapa en ny konfiguration av modellmappning
Följ stegen i Skapa en ny modellmappningskonfiguration för att manuellt lägga till en ny konfiguration av Intrastat-exempelmappning ER-modellmappningskonfiguration för den härledda Intrastat-modell (Litware).
Lägg till en ny komponent för modellmappning
- Gå till Organisationsadministration>Elektronisk rapportering>Konfigurationer.
- På sidan konfigurationer i konfigurationsträdet expanderar du konfigurationen Intrastat-modell.
- Välj konfigurationen Intrastat-exempelmappning.
- Välj designer om du vill öppna listan över mappningar.
- Välj Ta bort om du vill ta bort den befintliga mappningskomponenten.
- Klicka på Ny om du vill lägga till mappningskomponent.
- I fältet Definition, välj Intrastat.
- Ange Namn i fältet Intrastat-namn.
- Välj Designer för att konfigurera den nya mappningen.
Designa den tillagda modellmappningskomponent
Lägg till en datakälla för att komma åt en apptabell
Konfigurera en datakälla för att komma åt apptabellerna som innehåller information om Intrastat-transaktioner.
- På sidan Modellmappingsdesigner i fönstret Datakälltyper väljer du Dynamics 365 for Operations\Tabellregister.
- I fönstret Datakällor, välj Lägg till rot för att lägga till en ny datakälla som kommer att användas för att komma åt tabellen Intrastat. Varje post i Intrastat-tabell representerar en enda Intrastat-transaktion.
- I dialogrutan Datakällegenskaper i fältet Namn, ange Transaktion.
- I fältet Tabell ange Intrastat.
- Klicka på OK om du vill lägga till den nya datakällan.
Lägga till en datakälla för att gruppera Intrastat-transaktioner
Konfigurera en GroupBy-datakälla om du vill gruppera Intrastat-transaktioner och beräkna sammansatta funktioner.
På sidan Modellmappingsdesigner i fönstret Datakälltyper väljer du Funktioner\gruppera efter.
I fönstret Datakällor, välj Lägg till rot för att lägga till en ny datakälla som kommer att användas för att gruppera Intrastat-transaktioner och beräkna aggregerade funktioner.
I dialogrutan Datakällegenskaper i fältet Namn, ange TransportRecord.
Välj Redigera grupp efter genom att konfigurera grupperingsvillkor.
På sidan Parameter redigera "Gruppera efter" i listan med datakällor i den högra rutan, välj Transaktion datakälla och expandera den.
Välj Lägg till fält i > Vad du ska gruppera för att indikera att datakällan Transaktion väljs som basdatakällan för den konfigurerade GroupBy-datakällan. Posterna i datakällan Transaktion kommer att grupperas och fältvärdena för denna datakälla kommer att användas för beräkningar i aggregerade funktioner.
Välj fältet Transaction\Transport och välj sedan Lägg till fält till > Grupperat fält för att indikera att Transport för basdatakällan väljs som grupperingskriterium för den konfigurerade datakällan GroupBy. Med andra ord grupperas posterna i Transaktion datakällan efter värdet i fältet Transport. Varje post i den konfigurerade GroupBy-datakällan representerar en enda transportkod som har hittats i poster för basdatakällan.
Välj fältet Transaction\AmountMST och gör så här:
- Välj Lägg till fält till > Aggregera fält om du vill ange att en aggregerad funktion kommer att beräknas för det här fältet.
- I fönstret Sammansättningar, i posten som har lagts till för det valda fältet Transaction\AmountMST i fältet Metod, välj funktion Sum.
- I det valfria fältet Namn anger du TotalInvoicedAmount.
Dessa inställningar anger att det totala beloppet i fältet Transaction\AmountMST ska beräknas för varje transportgrupp.
Välj fältet Transaction\RecId och gör så här:
- Välj Lägg till fält till > Aggregera fält om du vill ange att en aggregerad funktion kommer att beräknas för det här fältet.
- I fönstret Sammansättningar, i posten som har lagts till för det valda fältet Transaction\RecId i fältet Metod, välj funktion Count.
- I det valfria fältet Namn anger du NumberOfTransactions.
Dessa inställningar anger att för varje transportgrupp kommer antalet transaktioner i gruppen att beräknas.
Välj Spara.
Granska parametrarna körning för den redigerbara datakällan. Observera att Automatisk identifiering har valts automatiskt i fältet Körningsplats och fältet Körning på innehåller värdet SQL. Dessa inställningar anger att den valda basdatakällan Transaktion för närvarande kan frågas och du kan köra den redigerbara datakällan GroupBy på databasnivå.
Öppna sökfältet Körningsplats om du vill granska listan med tillgängliga värden. Lägg märke till att du kan välja Fråga eller I minne för att tvinga denna GroupBy-datakälla att köras på databasnivå eller i programserverminnet.
Välj Spara och stäng sidan Redigera parametern för "Gruppera efter".
Välj OK för att slutföra inställningarna för datakällan GroupBy.
Binda GroupBy datakälla till fält för datamodell
Binda den konfigurerade datakällan till fälten i datamodellen för att ange hur datamodellen ska fyllas i med programdata vid körning.
På sidan Modellmappingsdesigner i fönstret Datamodell expanderar du noden Transport.
I rutan Datakällor, expandera datakällan TransportRecord.
Lägg till en bindande för att visa listan med upptäckta transportgrupper:
- I fönstret Datamodell välj artikeln Transport.
- I rutan Datakällor, välj datakällan TransportRecord.
- Välj bind.
Lägg till en bindande för att visa transportkod för varje upptäckt transportgrupp:
- Välj datamodellobjektet Transport.Code.
- Välj det grupperade fältet TransportRecord.grouped.TransportMode.
- Välj bind.
Lägg till en bindande funktion för att visa värdena för beräknade sammansatta funktioner för varje upptäckt transportgrupp:
- Välj datamodellobjektet Transport.NumberOfTransactions.
- Välj det aggregerade fältet TransportRecord.aggregated.NumberOfTransactions.
- Välj bind.
- Välj datamodellobjektet Transport.TotalInvoicedAmount.
- Välj det aggregerade fältet TransportRecord.aggregated.TotalInvoicedAmount.
- Välj bind.
Lägg till en bindande för att exponera transaktionsposter som hör till varje upptäckt transportgrupp:
- Välj datamodellobjektet Transport.Transaction.
- Markera fältet TransportRecord.lines.
- Välj bind.
Du kan fortsätta att konfigurera bindningar för de kapslade objekten i datamodellobjektet Transport.Transaction och datakällfältet TransportRecord.lines för att under körning visa detaljer om Intrastat-transaktioner som tillhör varje upptäckt transportgrupp.
Felsöka den tillagda modellmappningskomponent
Använda ER-datakällans felsökare för att testa den konfigurerade modellmappningen.
På sidan Modellmappningsdesigner, välj Starta felsökning.
På sidan Felsök datakällor i vänstra fönstret, välj datakälla TransportRecord och välj sedan Läs alla poster.
Expandera datakällan TransportRecord och följer sedan de här stegen:
- Välj det grupperade datakällan TransportRecord.grouped.TransportMode.
- Välj Hämta värde.
- Välj det grupperade datakällan TransportRecord.grouped.NumberOfTransactions.
- Välj Hämta värde.
- Välj det grupperade datakällan TransportRecord.grouped.TotalInvoicedAmount.
- Välj Hämta värde.
Välj Expandera alla i höger fönster.
Datakällan TransportRecord visar två poster och visar två transportkoder. För varje transportkod beräknas antalet transaktioner och det totala fakturerade beloppet.
Notering
Metoden "läs" används när en GroupBy-datakälla anropas för att optimera databassamtal. Därför beräknas några av fältvärdena i en datakällan GroupBy beräknas i ER-datakällans felsökning endast när de är bundna till datamodellfält.
Vanliga frågor och svar
Kan slutsummor beräknas när gruppsummor beräknas?
Ja. För att beräkna totalsummor, konfigurera en annan datakälla GroupBy när GroupBy som du tidigare konfigurerat används som basdatakälla. I följande bild visas datakällan Summor av typen GroupBy som används för att beräkna funktionen SUM baserad på sammansättningen SUM för datakällan TransportRecord av typen GroupBy.
I följande bild visas resultatet av felsökningen av datakällan Summor.