Records groeperen en aggregatieberekeningen met behulp van GROUPBY-gegevensbronnen
Tijdens het configureren van ER-modeltoewijzingen of -indelingen (elektronische rapportage) kunt u vereiste gegevensbronnen toevoegen van het type GroupBy.
Tijdens het ontwerpen wordt een GroupBy-gegevensbron geconfigureerd om de volgende elementen te identificeren:
- Een basisgegevensbron die records bevat die worden gegroepeerd tijdens runtime
- Groeperingsvelden van de basisgegevensbron die worden gebruikt voor recordgroepering tijdens runtime
- Aggregatiefuncties waarmee de aggregatieberekeningen worden opgegeven die worden uitgevoerd voor elke gevonden groep tijdens runtime
Tijdens runtime worden met een geconfigureerde GroupBy-gegevensbron records gegroepeerd met dezelfde waarden in de groeperingsvelden, en wordt vervolgens een lijst met records geretourneerd. Elke record vertegenwoordigt één groep. Voor elke groep geeft de gegevensbron de veldwaarden weer waarop de initiële records zijn gegroepeerd, de waarden van de berekende aggregatiefuncties en de lijst met records van de basisgegevensbron die bij de groep hoort.
Aggregatiefuncties
Tijdens runtime wordt elke aggregatieberekening uitgevoerd voor elke groep records. Deze berekening wordt uitgevoerd met behulp van de waarde van één veld of een expressie in de records van een gegevensbron die is geselecteerd om te worden gegroepeerd in de bewerkbare gegevensbron van het type GroupBy. Momenteel worden de volgende aggregatiefuncties ondersteund:
- AVG: met deze functie retourneert u het gemiddelde van de waarden in een groep. Deze functie kan alleen worden gebruikt met numerieke velden.
- COUNT: met deze functie wordt het aantal in een groep gevonden artikelen geretourneerd.
- Min: met deze functie wordt de minimumwaarde van de waarden in een groep geretourneerd.
- Max: met deze functie wordt de maximumwaarde van de waarden in een groep geretourneerd.
- SUM: met deze functie wordt de som van alle waarden in een groep geretourneerd. Deze functie kan alleen worden gebruikt met numerieke velden.
Locatie van uitvoering
Wanneer u een GroupBy-gegevensbron bewerkt en de basisgegevensbron opgeeft die de records bevat die moeten worden gegroepeerd, wordt automatisch de meest efficiënte locatie voor uitvoering van die GroupBy-gegevensbron gedetecteerd. Als op de basisgegevensbron een query kan worden uitgevoerd (als deze kan worden uitgevoerd op databaseniveau), wordt de toepassingsdatabase ook opgegeven als de uitvoeringslocatie van de bewerkbare GroupBy-gegevensbron. Anders wordt het toepassingsservergeheugen opgegeven als de uitvoeringslocatie.
U kunt de automatisch gedetecteerde uitvoeringslocatie handmatig wijzigen door de locatie te selecteren die van toepassing is op de geconfigureerde gegevensbron. Als de uitvoeringslocatie die is geselecteerd niet van toepassing is, wordt een validatiefout tijdens het ontwerpen gegeven.
Tip
Het wordt aangeraden de databaselocatie te gebruiken om gegevensbronnen te groeperen die een groot aantal records weergeven.
Geheugenverbruik
Als een GroupBy-gegevensbron in het geheugen wordt uitgevoerd, wordt het toepassingsservergeheugen standaard gebruikt om records van de basisgegevensbron op te slaan die hoort bij elke aangetroffen groep als records van één groep. Als u het geheugenverbruik wilt verlagen, kunt u de recordopslag voor GroupBy-gegevensbronnen onderdrukken als deze zijn geconfigureerd om alleen samengevoegde functies te berekenen en de records van de groep niet tijdens runtime worden gebruikt. Als u op deze manier het geheugenverbruik wilt verminderen, moet u de functie Geheugengebruik in ER verminderen wanneer recordgroepering alleen wordt gebruikt om aggregaties te berekenen inschakelen in het werkgebied Functiebeheer.
Alternatieven
Vergelijkbare aggregaties kunnen worden berekend met behulp van verschillende typen gegevensbronnen of ingebouwde functies voor ER.
Voor meer informatie over deze functie kunt u het volgende voorbeeld uitvoeren.
Voorbeeld: gebruik een GROUPBY-gegevensbron voor aggregatieberekeningen en recordgroepering
Dit voorbeeld laat zien hoe een gebruiker met de rol Systeembeheerder of Functioneel consultant voor elektronische rapportage een ER-modeltoewijzing kan configureren met een GROUPBY-gegevensbron die wordt gebruikt om aggregatiefuncties te berekenen en records te groeperen. Deze modeltoewijzing wordt gebruikt om het controlerapport af te drukken wanneer de Intrastat-aangifte wordt gegenereerd. Met dit rapport kunt u gerapporteerde Intrastat-transacties bekijken.
De procedures in dit voorbeeld kunnen in het bedrijf DEMF worden uitgevoerd in Microsoft Dynamics 365 Finance.
Voorbeeldgegevens voorbereiden
Zorg ervoor dat er Intrastat-transacties voor rapportage op de pagina Intrastat staan. U moet transacties hebben voor verschillende transportcodes, omdat u transacties in dit voorbeeld groepeert op het veld Transport.
Het ER-raamwerk configureren
Voer de stappen in Het ER-raamwerk configureren uit om de minimale set ER-parameters in te stellen. U moet deze instellingen voltooien voordat u het ER-raamwerk gaat gebruiken om een ER-modeltoewijzing te ontwerpen.
Standaardconfiguratie voor ER-indeling importeren
Volg de stappen in Standaardconfiguratie voor ER-indeling importeren om de standaard ER-configuraties toe te voegen aan de actuele instantie van Dynamics 365 Finance. Importeer versie 1 van de configuratie Intrastat-model uit de opslagplaats.
Een aangepaste gegevensmodelconfiguratie maken
Voer de stappen in Configuratie van een aangepast gegevensmodel toevoegen uit om handmatig de nieuwe ER-gegevensmodelconfiguratie Intrastat-model (Litware) toe te voegen die u afleidt van de geïmporteerde configuratie Intrastat-model.
Een aangepast gegevensmodelonderdeel configureren
Voer de volgende stappen uit om de vereiste wijzigingen aan te brengen in het afgeleide gegevensmodel Intrastat-model (Litware), zodat het kan worden gebruikt om transportcodes met de vereiste details weer te geven.
Ga naar Organisatiebeheer>Elektronische rapportage>Configuraties.
Selecteer op de pagina Configuraties in de configuratiestructuur het item Intrastat-model (Litware).
Selecteer Ontwerper.
Selecteer op de pagina Ontwerper gegevensmodel in de modelstructuur de optie Intrastat.
Selecteer Nieuw om een nieuw genest knooppunt voor het geselecteerde Intrastat-knooppunt toe te voegen. Voer de volgende stappen uit in het vervolgkeuzemenu voor het toevoegen van een knooppunt voor een gegevensmodel:
- Voer in het veld NaamTransport in.
- Selecteer in het veld ItemtypeRecordlijst.
- Selecteer Toevoegen om het nieuwe knooppunt toe te voegen.
Selecteer Nieuw om een nieuw genest knooppunt toe te voegen voor het knooppunt Transport dat u zojuist hebt toegevoegd. Voer de volgende stappen uit in het vervolgkeuzemenu voor het toevoegen van een knooppunt voor een gegevensmodel:
- Voer in het veld NaamCode in.
- Selecteer in het veld ItemtypeTekenreeks.
- Selecteer Toevoegen om het nieuwe knooppunt toe te voegen.
Selecteer Nieuw om een ander genest knooppunt toe te voegen voor het knooppunt Transport. Voer de volgende stappen uit in het vervolgkeuzemenu voor het toevoegen van een knooppunt voor een gegevensmodel:
- Voer in het veld NaamTotalInvoicedAmount in.
- Selecteer in het veld ItemtypeWerkelijk.
- Selecteer Toevoegen om het nieuwe knooppunt toe te voegen.
Selecteer Nieuw om een ander genest knooppunt toe te voegen voor het knooppunt Transport. Voer de volgende stappen uit in het vervolgkeuzemenu voor het toevoegen van een knooppunt voor een gegevensmodel:
- Voer in het veld NaamNumberOfTransactions in.
- Selecteer in het veld Itemtype de waarde Geheel getal.
- Selecteer Toevoegen om het nieuwe knooppunt toe te voegen.
Selecteer Nieuw om een ander genest knooppunt toe te voegen voor het knooppunt Transport. Voer de volgende stappen uit in het vervolgkeuzemenu voor het toevoegen van een knooppunt voor een gegevensmodel:
- Voer in het veld NaamTransactie in.
- Selecteer in het veld ItemtypeRecordlijst.
- Selecteer Toevoegen om het nieuwe knooppunt toe te voegen.
Selecteer voor het knooppunt Transactie dat u zojuist hebt toegevoegd op het sneltabblad Knooppunt de optie Artikelverwijzing omschakelen.
Selecteer in het dialoogvenster Artikelverwijzing omschakelenin de gegevensmodelstructuur CommodityRecord. Selecteer vervolgens OK.
Het ontwerp van een aangepast gegevensmodel voltooien
Voer de volgende stappen uit in Het ontwerp van het gegevensmodel voltooien om het ontwerp van het afgeleide gegevensmodel Intrastat-model (Litware) te voltooien.
Een nieuwe configuratie voor de modeltoewijzing maken
Voer de volgende stappen uit in Een nieuwe modeltoewijzingsconfiguratie maken om handmatig een nieuwe ER-modeltoewijzingsconfiguratie Intrastat-voorbeeldtoewijzing toe te voegen voor de afgeleide configuratie Intrastat-model (Litware).
Een nieuw modeltoewijzingsonderdeel toevoegen
- Ga naar Organisatiebeheer>Elektronische rapportage>Configuraties.
- Vouw op de pagina Configuraties in de configuratiestructuur de configuratie Intrastat-model uit.
- Selecteer de configuratie Intrastat-voorbeeldtoewijzing.
- Selecteer Ontwerper om de lijst met toewijzingen te openen.
- Selecteer Verwijderen om het bestaande toewijzingsonderdeel te verwijderen.
- Selecteer Nieuw om een nieuw toewijzingsonderdeel toe te voegen.
- Selecteer Intrastat in het veld Definitie.
- Voer in het veld NaamIntrastat-toewijzing in.
- Selecteer Ontwerper om de nieuwe toewijzing te configureren.
Het toegevoegde modeltoewijzingsonderdeel ontwerpen
Een gegevensbron toevoegen voor toegang tot een toepassingstabel
Configureer een gegevensbron om toegang te krijgen tot de toepassingstabellen die de details van Intrastat-transacties bevatten.
- Selecteer op de pagina Ontwerper modeltoewijzing in het deelvenster Typen gegevensbronnenDynamics 365 for Operations\Tabelrecords.
- Selecteer Basis toevoegen in het deelvenster Gegevensbronnen om een nieuwe gegevensbron toe te voegen die wordt gebruikt om de tabel Intrastat te openen. Elke record in de tabel Intrastat vertegenwoordigt één Intrastat-transactie.
- Voer in het dialoogvenster Gegevensbroneigenschappen in het veld NaamTransactie in.
- Voer in het veld TabelIntrastat in.
- Klik op OK om de nieuwe gegevensbron toe te voegen.
Een gegevensbron toevoegen om Intrastat-transacties te groeperen
Configureer een GroupBy-gegevensbron om Intrastat-transacties te groeperen en aggregatiefuncties te berekenen.
Selecteer op de pagina Ontwerper modeltoewijzing in het deelvenster Typen gegevensbronnenFuncties\Groeperen op.
Selecteer Basis toevoegen in het deelvenster Gegevensbronnen om een nieuwe gegevensbron toe te voegen die wordt gebruikt om Intrastat-transacties te groeperen en aggregatiefuncties te berekenen.
Voer in het dialoogvenster Gegevensbroneigenschappen in het veld NaamTransportRecord in.
Selecteer Groeperen op bewerken om groeperingsvoorwaarden te configureren.
Selecteer op de pagina Groeperen op-parameters bewerken in de lijst met gegevensbronnen in het rechterdeelvenster de gegevensbron Transactie en vouw deze uit.
Selecteer Veld Toevoegen aan > Wat groeperen om aan te geven dat de gegevensbron Transactie is geselecteerd als de basisgegevensbron voor de geconfigureerde GroupBy-gegevensbron. De records van de gegevensbron Transactie worden gegroepeerd en de veldwaarden van deze gegevensbron worden gebruikt voor berekeningen in aggregatiefuncties.
Selecteer het veld Transaction\Transport en selecteer vervolgens Veld toevoegen aan > Gegroepeerd veld om aan te geven dat het veld Transport van de basisgegevensbron is geselecteerd als het groeperingscriterium voor de geconfigureerde GroupBy-gegevensbron. Met andere woorden, de records van de gegevensbron Transactie worden gegroepeerd op basis van de waarde van het veld Transport. Elke record van de geconfigureerde GroupBy-gegevensbron vertegenwoordigt één transportcode die is gevonden in records van de basisgegevensbron.
Selecteer het veld Transaction\AmountMST en voer vervolgens de volgende stappen uit:
- Selecteer Veld toevoegen aan > Aggregatievelden om aan te geven dat een aggregatiefunctie voor dit veld wordt berekend.
- Selecteer de functie Sum in het deelvenster Aggregaties in de record die is toegevoegd voor het geselecteerde veld Transaction\AmountMST in het veld Methode.
- Voer in het optionele veld NaamTotalInvoicedAmount in.
Deze instellingen bepalen dat voor elke transportgroep het totaalbedrag van het veld Transaction\AmountMST wordt berekend.
Selecteer het veld Transaction\RecId en voer vervolgens de volgende stappen uit:
- Selecteer Veld toevoegen aan > Aggregatievelden om aan te geven dat een aggregatiefunctie voor dit veld wordt berekend.
- Selecteer de functie Count in het deelvenster Aggregaties in de record die is toegevoegd voor het geselecteerde veld Transaction\RecId in het veld Methode.
- Voer in het optionele veld NaamNumberOfTransactions in.
Deze instellingen bepalen dat voor elke transportgroep het aantal transacties in de groep wordt berekend.
Selecteer Opslaan.
Bekijk de uitvoeringsparameters van de bewerkbare gegevensbron. In het veld Uitvoeringslocatie is Automatisch detecteren automatisch geselecteerd en bevat het veld Uitvoering de waarde SQL. Met deze instellingen wordt aangegeven dat op de geselecteerde Transactie-basisgegevensbron momenteel een query kan worden uitgevoerd en u kunt de bewerkbare GroupBy-gegevensbron op databaseniveau uitvoeren.
Open de zoekactie voor het veld Uitvoeringslocatie om de lijst met beschikbare waarden te bekijken. U kunt Query of In geheugen selecteren als u wilt dat deze GroupBy-gegevensbron op databaseniveau of in het toepassingsservergeheugen wordt uitgevoerd.
Selecteer Opslaan en sluit de pagina Groeperen op-parameters bewerken.
Selecteer OK om de instellingen van de gegevensbron GroupBy in te vullen.
De GroupBy-gegevensbron verbinden aan gegevensmodelvelden
Verbind de geconfigureerde gegevensbron aan de velden van het gegevensmodel om op te geven hoe het gegevensmodel tijdens runtime moet worden gevuld met toepassingsgegevens.
Vouw op de pagina Ontwerper modeltoewijzing in het deelvenster Gegevensmodel het knooppunt Transport uit.
Vouw in het deelvenster Gegevensbronnen de gegevensbron TransportRecord uit.
Een binding toevoegen om de lijst met ontdekte transportgroepen weer te geven:
- Selecteer het item Transport in het deelvenster Gegevensmodel.
- Selecteer in het deelvenster Gegevensbronnen de gegevensbron TransportRecord.
- Selecteer Binden.
Een binding toevoegen om de transportcode van elke ontdekte transportgroep weer te geven:
- Selecteer het gegevensmodelitem Transport.Code.
- Selecteer het gegroepeerde veld TransportRecord.grouped.TransportMode.
- Selecteer Binden.
Voeg een binding toe om de waarden van berekende aggregatiefuncties voor elke ontdekte transportgroep weer te geven:
- Selecteer het gegevensmodelitem Transport.NumberOfTransactions.
- Selecteer het aggregatieveld TransportRecord.aggregated.NumberOfTransactions.
- Selecteer Binden.
- Selecteer het gegevensmodelitem Transport.TotalInvoicedAmount.
- Selecteer het aggregatieveld TransportRecord.aggregated.TotalInvoicedAmount.
- Selecteer Binden.
Een binding toevoegen om transactierecords die bij elke ontdekte transportgroep horen weer te geven:
- Selecteer het gegevensmodelitem Transport.Transaction.
- Selecteer het veld TransportRecord.lines.
- Selecteer Binden.
U kunt bindingen blijven configureren voor de geneste items van het gegevensmodelitem Transport.Transaction en het gegevensbronveld TransportRecord.lines om tijdens runtime details weer te geven van de Intrastat-transacties die bij elke ontdekte transportgroep horen.
Fouten opsporen in het toegevoegde modeltoewijzingsonderdeel
Gebruik Foutopsporing voor ER-gegevensbronnen om de geconfigureerde modeltoewijzing te testen.
Selecteer Foutopsporing starten op de pagina Ontwerper modeltoewijzing.
Selecteer op de pagina Fouten opsporen in gegevensbronnen in het linkerdeelvenster de gegevensbron TransportRecord en selecteer vervolgens Alle records lezen.
Vouw de gegevensbron TransportRecord uit en voer vervolgens de volgende stappen uit:
- Selecteer de gegevensbron TransportRecord.grouped.TransportMode.
- Selecteer Waarde ophalen.
- Selecteer de gegevensbron TransportRecord.grouped.NumberOfTransactions.
- Selecteer Waarde ophalen.
- Selecteer de gegevensbron TransportRecord.grouped.TotalInvoicedAmount.
- Selecteer Waarde ophalen.
Selecteer Alles uitvouwen in het rechterdeelvenster.
Met de gegevensbron TransportRecord worden twee records weergegeven en twee transportcodes. Voor elke transportcode worden het aantal transacties en het totale gefactureerde bedrag berekend.
Notitie
De methode 'lui lezen' wordt gebruikt wanneer een GroupBy-gegevensbron wordt aangeroepen om databaseoproepen te optimaliseren. Daarom worden sommige veldwaarden in een GroupBy-gegevensbron alleen berekend in de foutopsporing voor ER-gegevensbronnen wanneer deze zijn verbonden met gegevensmodelvelden.
Veelgestelde vragen
Is er een manier om eindtotalen te berekenen wanneer de groepstotalen worden berekend?
Ja. Als u eindtotalen wilt berekenen, configureert u een andere GroupBy-gegevensbron waarbij de eerder geconfigureerde GroupBy-gegevensbron wordt gebruikt als basisgegevensbron. Hieronder ziet u een voorbeeld van de gegevensbron Totalen van het type GroupBy dat wordt gebruikt om de aggregatiefunctie SUM te berekenen op basis van de SUM-aggregatie van de gegevensbron TransportRecord van het type GroupBy.
In de volgende afbeelding ziet u de resultaten van de foutopsporing van de gegevensbron Totalen.