JOIN-gegevensbronnen gebruiken om gegevens uit meerdere toepassingstabellen op te halen in ER-modeltoewijzingen (elektronische rapportage)
Tijdens het configureren van ER-modeltoewijzingen of -indelingen (elektronische rapportage) kunt u vereiste gegevensbronnen van het type Jointoevoegen. Tijdens de ontwerpfase wordt een Join-gegevensbron geconfigureerd als een set van verschillende gegevensbronnen die elk een lijst met records als resultaat geven. Voor elke gegevensbron, met uitzondering van de eerste, moet u de noodzakelijke voorwaarden definiëren om records van de huidige en eerdere gegevensbronnen samen te voegen. Tijdens runtime retourneert een geconfigureerde gegevensbron van het type Join een enkele gekoppelde lijst met records die velden bevatten uit de records van geneste gegevensbronnen.
Momenteel worden de volgende typen joins ondersteund:
- Outer (left) join:
- Hierbij worden alle records van de eerste (meest linkse) gegevensbron samengevoegd gevolgd door eventuele overeenkomsten op basis van geconfigureerde voorwaardenrecords van de tweede (meest rechtse) gegevensbron.
- Inner (right) join:
- Hierbij worden alleen records van de eerste (meest linkse) gegevensbron samengevoegd en alleen records van de tweede (meest rechtse) gegevens die overeenkomen op basis van geconfigureerde voorwaarden.
Wanneer in de geconfigureerde Join-gegevensbron alle gegevensbronnen van het type Tabelrecords zijn, kan de uitvoering van de Join-gegevensbron worden uitgevoerd op databaseniveau via een enkele SQL-instructie. Door deze instructie wordt het aantal databaseaanroepen verminderd, waardoor de prestaties van de modeltoewijzing verbeteren. Anders wordt de uitvoering de Join-gegevensbron in het geheugen uitgevoerd.
Notitie
Het gebruik van de functie VALUEIN in ER-expressies die voorwaarden specificeren voor het samenvoegen van records in gegevensbronnen van het type Join wordt nog niet ondersteund. Bezoek de pagina Formuleontwerper in elektronische rapportage voor meer informatie.
Voor meer informatie over deze functie kunt u het voorbeeld in dit artikel uitvoeren.
Voorbeeld: JOIN-gegevensbronnen gebruiken in ER-modeltoewijzingen
In de volgende stappen wordt uitgelegd hoe de systeembeheerder of de ontwikkelaar van elektronische rapportage een ER-modeltoewijzing (elektronische rapportage) kan configureren om gegevens uit meerdere toepassingstabellen tegelijk op te halen door gegevensbronnen van het type Join te gebruiken om de gegevenstoegang te verbeteren. Deze stappen kunnen worden uitgevoerd voor elk bedrijf van Dynamics 365 Finance of in Regulatory Configuration Services (RCS).
Vereisten
Als u de voorbeelden in dit artikel wilt voltooien, moet u toegang hebben tot een van de volgende services, afhankelijk van de service die wordt gebruikt om deze stappen uit te voeren:
Toegang tot Financiën voor een van de volgende rollen:
- Ontwikkelaar elektronische rapportage
- Functioneel consultant elektronische rapportage
- Systeembeheerder
Toegang tot RCS voor een van de volgende rollen:
- Ontwikkelaar elektronische rapportage
- Functioneel consultant elektronische rapportage
- Systeembeheerder
U moet ook eerst de stappen in de procedure Een configuratieprovider maken en deze als actief markeren voltooien.
Van tevoren moet u ook de volgende voorbeeldbestanden met ER-configuraties downloaden en opslaan:
Omschrijving inhoud | Bestandsnaam |
---|---|
Voorbeeld van configuratiebestand voor ER-gegevensmodel, dat wordt gebruikt als de gegevensbron voor de voorbeelden. | Model voor het leren van JOIN-gegevensbronnen.versie.1.1.xml |
Voorbeeld van configuratiebestand voor ER-modeltoewijzing, dat het ER-gegevensmodel implementeert voor de voorbeelden. | Toewijzing voor het leren van JOIN-gegevensbronnen.versie.1.1.xml |
Voorbeeld van configuratiebestand van ER-indeling. In dit bestand worden de gegevens beschreven om het onderdeel van de ER-indeling te vullen voor de voorbeelden. | Indeling voor het leren van JOIN-gegevensbronnen.versie.1.1.xml |
Een configuratieprovider activeren
Open Finance of RCS in de eerste sessie van uw webbrowser.
Ga naar Organisatiebeheer > Werkgebieden > Elektronische rapportage.
Controleer op de pagina Lokalisatieconfiguraties in de sectie Configuratieproviders of de configuratieprovider voor het voorbeeldbedrijf Litware, Inc. wordt vermeld en of het is gemarkeerd als Actief. Als u deze configuratieprovider niet ziet, voltooit u de stappen in de procedure Een configuratieprovider maken en deze als actief markeren.
Voorbeeld van ER-configuratiebestanden importeren
Selecteer Rapportageconfiguraties.
Importeer het configuratiebestand voor het ER-gegevensmodel.
- Selecteer Uitwisselen.
- Selecteer Laden uit XML-bestand.
- Selecteer bladeren om het bestand Model voor het leren van JOIN-gegevensbronnen.versie.1.1.xml te zoeken.
- Selecteer OK.
Importeer het configuratiebestand voor de ER-modeltoewijzing.
- Selecteer Uitwisselen.
- Selecteer Laden uit XML-bestand.
- Selecteer bladeren om het bestand Toewijzing voor het leren van JOIN-gegevensbronnen.versie.1.1.xml te zoeken.
- Selecteer OK.
Importeer het configuratiebestand voor ER-indeling.
- Selecteer Uitwisselen.
- Selecteer Laden uit XML-bestand.
- Selecteer bladeren om het bestand Indeling voor het leren van JOIN-gegevensbronnen.versie.1.1.xml te zoeken.
- Selecteer OK.
Vouw in de configuratiestructuur het item Model voor het leren van JOIN-gegevensbronnen en andere modelitems uit (indien beschikbaar).
Bekijk de lijst met ER-configuraties in de structuur en de versiegegevens op het sneltabblad Versies. Deze worden gebruikt als gegevensbron voor uw voorbeeldrapport.
Opties voor uitvoeringstracering inschakelen
Selecteer CONFIGURATIES.
Selecteer Gebruikersparameters.
Stel parameters voor uitvoeringstracering zoals in de onderstaande schermopname worden weergegeven.
Wanneer deze parameters zijn ingeschakeld, wordt voor elke uitvoering van het geïmporteerde ER-indelingsbestand de uitvoeringstracering gegenereerd. Met behulp van details van gegenereerde uitvoeringstraceringen kunt u de uitvoering van onderdelen van de ER-indeling en ER-modeltoewijzing analyseren. Ga naar de pagina Uitvoering van ER-indeling traceren om prestatieproblemen op te lossen voor meer informatie over de functie voor ER-uitvoeringstracering.
ER-modeltoewijzing controleren (deel 1)
Controleer de instellingen van het onderdeel voor ER-modeltoewijzing. Het onderdeel is geconfigureerd om toegang te krijgen tot informatie over versies van ER-configuraties, details van configuraties en configuratieproviders zonder gegevensbronnen van het type Join te gebruiken.
Selecteer de configuratie Toewijzing voor het leren van JOIN-gegevensbronnen.
Selecteer Ontwerper om de lijst met toewijzingen te openen.
Selecteer Ontwerper om de toewijzingsdetails te controleren.
Selecteer Details weergeven.
Vouw in de configuratiestructuur de gegevensmodelitems Set1 en Set1.Details uit:
- Binding Details: Record list = Versions geeft aan dat het item Set1.Details is gebonden aan de gegevensbron Versions die records uit de tabel ERSolutionVersionTable retourneert. Elke record van deze tabel vertegenwoordigt een enkele versie van een ER-configuratie. De inhoud van deze tabel wordt weergegeven op het sneltabblad Versies op de pagina Configuraties.
- Binding ConfigurationVersion: String = @.PublicVersionNumber houdt in dat de waarde van de openbare versie van elke versie van de ER-configuratie wordt opgehaald uit het veld PublicVersionNumber van de tabel ERSolutionVersionTable en in het item ConfigurationVersion geplaatst.
- Binding ConfigurationTitle: String = @.'>Relations'.Solution.Name geeft aan dat de naam van een ER-configuratie wordt opgehaald uit het veld Naam van de tabel ERSolutionTable met beoordeling van de veel-op-één-relatie ('>Relations') tussen de tabellen ERSolutionVersionTable en ERSolutionTable. Namen van de ER-configuraties van het huidige toepassingsexemplaar worden weergegeven in de configuratiestructuur op de pagina Configuraties.
- Binding @.'>Relations'.Solution.'>Relations'.SolutionVendor.Name geeft aan dat de naam van de configuratieprovider die eigenaar is van de huidige configuratie wordt opgehaald uit het veld Naam van de tabel ERVendorTable met beoordeling van de veel-op-één-relatie tussen de tabellen ERSolutionTable en ERVendorTable. Namen van de ER-configuratieproviders worden weergegeven in de configuratiestructuur op de pagina Configuraties in de paginakoptekst voor elke configuratie. De volledige lijst van ER-configuratieproviders is te vinden op de tabelpagina Organisatiebeheer > Elektronische rapportage > Configuratieprovider.
Vouw in de configuratiestructuur het gegevensmodelitem Set1.Summary uit:
- Binding VersionsNumber: Integer = VersionsSummary.aggregated.VersionsNumber geeft aan dat het item Set1.Summary.VersionsNumber is gebonden aan het aggregatieveld VersionsNumber van de gegevensbron VersionsSummary van het type GroupBy dat is geconfigureerd om het aantal records van de tabel ERSolutionVersionTable te retourneren via de gegevensbron Versions.
Sluit de pagina.
ER-modeltoewijzing controleren (deel 2)
Controleer de instellingen van het onderdeel voor ER-modeltoewijzing. Het onderdeel is geconfigureerd om toegang te krijgen tot informatie over versies van ER-configuraties, details van configuraties en configuratieproviders door een gegevensbron van het type Join te gebruiken.
Vouw in de configuratiestructuur de gegevensmodelitems Set2 en Set2.Details uit. De binding Details: Record list = Details geeft aan dat het item Set2.Details is gekoppeld aan de gegevensbron Details die is geconfigureerd als gegevensbron van het type Join.
De Join-gegevensbron kan worden toegevoegd door de gegevensbron Functions\Join te selecteren:
Selecteer de gegevensbron Details.
Selecteer Bewerken in het deelvenster Gegevensbronnen.
Selecteer Join bewerken.
Selecteer Details weergeven.
Deze pagina wordt gebruikt om de vereiste gegevensbron van het Join-type te ontwerpen. Tijdens runtime maakt deze gegevensbron een enkele gekoppelde lijst met records uit de gegevensbronnen in het raster Gecombineerde lijst. Het koppelen van records begint bij de gegevensbron ConfigurationProviders die zich als eerste in het raster bevindt (de kolom Type is hiervoor leeg). Records van elke andere gegevensbron worden vervolgens samengevoegd met de records van de bovenliggende gegevensbron op basis van de volgorde in dit raster. Elke gegevensbron voor samenvoegen moet worden geconfigureerd als een gegevensbron die is genest onder een doelgegevensbron (gegevensbron
1Versions
is genest onder1Configurations
; gegevensbron1Configurations
is genest onder ConfigurationProviders). Elke geconfigureerde gegevensbron moet de voorwaarden voor de join bevatten. In de gegevensbron voor deze specifieke Join worden de volgende joins gedefinieerd:- Elke record van de gegevensbron ConfigurationProviders (waarnaar wordt verwezen in de tabel ERVendorTable) wordt samengevoegd met alleen records van de gegevensbron 1Configurations (waarnaar wordt verwezen in de tabel ERSolutionTable) met dezelfde waarde in de velden SolutionVendor en RecId. Het type Inner join wordt voor deze join en voor de volgende voorwaarden voor overeenkomende records gebruikt:
FILTER (Configurations, Configurations.SolutionVendor = ConfigurationProviders.RecId)
- Elke record van de gegevensbron 1Configurations (waarnaar wordt verwezen in de tabel ERSolutionTable) wordt samengevoegd met alleen records van de gegevensbron 1Versions (waarnaar wordt verwezen in de tabel ERSolutionVersionTable) met dezelfde waarde in de velden Solution en RecId. Het type Inner join wordt voor deze join en voor de volgende voorwaarden voor overeenkomende records gebruikt:
FILTER (ConfigurationVersions, ConfigurationVersions.Solution = ConfigurationProviders.'1Configurations'.RecId)
- De optie Uitvoeren is geconfigureerd als Query, wat betekent dat deze join-gegevensbron tijdens runtime als een directe SQL-oproep wordt uitgevoerd op databaseniveau.
Als u records wilt samenvoegen van gegevensbronnen die toepassingstabellen vertegenwoordigen, kunt u join-voorwaarden opgeven door andere veldenparen te gebruiken die bestaande AOT-relaties tussen deze tabellen beschrijven. Dit type join kan ook worden geconfigureerd voor uitvoering op databaseniveau.
Sluit de pagina.
Selecteer Annuleren.
Vouw in de configuratiestructuur het gegevensmodelitem Set2.Summary uit:
- Binding VersionsNumber: Integer = DetailsSummary.aggregated.VersionsNumber geeft aan dat het item Set2.Summary.VersionsNumber is gebonden aan het aggregatieveld VersionsNumber van de gegevensbron DetailsSummary van het type GroupBy dat is geconfigureerd om het aantal samengevoegde records van de gegevensbron Details van het type Join te retourneren.
- De locatieoptie Uitvoering is geconfigureerd als Query, wat betekent dat deze GroupBy-gegevensbron tijdens runtime als een directe SQL-oproep wordt uitgevoerd op databaseniveau. Dit gedrag is mogelijk omdat de basisgegevensbron Details van het type Join wordt geconfigureerd als uitgevoerd op databaseniveau.
Sluit de pagina.
Selecteer Annuleren.
ER-indeling uitvoeren
Open Finance of RCS in de tweede sessie van uw webbrowser met dezelfde referenties en hetzelfde bedrijf als bij de eerste sessie.
Ga naar Organisatiebeheer > Elektronische rapportage > Configuraties.
Vouw de configuratie Model voor het leren van JOIN-gegevensbronnen uit.
Selecteer de configuratie Indeling voor het leren van JOIN-gegevensbronnen.
Selecteer Ontwerper.
Selecteer Details weergeven.
Selecteer Toewijzing.
Selecteer Uitvouwen/samenvouwen.
Deze indeling is bedoeld voor het vullen van een gegenereerd tekstbestand met een nieuwe regel voor elke versie van een ER-configuratie (Version-reeks). Elke gegenereerde regel bevat de naam van een configuratieprovider die eigenaar is van de huidige configuratie, de configuratienaam en de configuratieversie, gescheiden door puntkomma's. De laatste regel van het gegenereerde bestand bevat het aantal ontdekte versies van de ER-configuraties (Summary-reeks).
De gegevensbronnen Data en Summary worden gebruikt om de details van de configuratieversie in te vullen voor het gegenereerde bestand:
- Informatie uit het Set1-gegevensmodel wordt gebruikt wanneer u Nee kiest voor de gegevensbron Selector tijdens runtime op de pagina met de gebruikersdialoog bij het uitvoeren van een ER-indeling.
- Informatie uit het Set2-gegevensmodel wordt gebruikt wanneer u Ja kiest voor de gegevensbron Selector tijdens runtime op de pagina met de gebruikersdialoog bij het uitvoeren van een ER-indeling.
Selecteer Uitvoeren.
Selecteer op de dialoogpagina de optie Nee in het veld JOIN-gegevensbron gebruiken.
Selecteer OK.
Gegenereerd bestand controleren
Uitvoeringstracering van ER-indeling analyseren
Selecteer Ontwerper in de eerste sessie van Finance of RCS.
Selecteer Prestatietracering.
Selecteer in het raster Prestatietracering de bovenste record van de meest recente uitvoeringstracering van een ER-indeling die het huidige onderdeel voor modeltoewijzing heeft gebruikt.
Selecteer OK.
In de uitvoeringsstatistieken wordt u op de hoogte gesteld van dubbele aanroepen van toepassingstabellen:
- ERSolutionTable is zo vaak aangeroepen als u configuratieversierecords hebt in de tabel ERSolutionVersionTable, terwijl het aantal van dergelijke aanroepen op bepaalde momenten kan worden teruggebracht voor prestatieverbetering.
- ERVendorTable is tweemaal aangeroepen voor elke configuratieversierecords die is gedetecteerd in de tabel ERSolutionVersionTable, terwijl het aantal van dergelijke aanroepen eveneens kan worden teruggebracht.
Sluit de pagina.
ER-indeling uitvoeren
Ga naar het tabblad in uw webbrowser met de tweede sessie van Finance of RCS.
Selecteer Uitvoeren.
Selecteer op de dialoogpagina de optie Ja in het veld JOIN-gegevensbron gebruiken.
Selecteer OK.
Gegenereerd bestand controleren
Uitvoeringstracering van ER-indeling analyseren
Selecteer Ontwerper in de eerste sessie van Finance of RCS.
Selecteer Prestatietracering.
Selecteer in het raster Prestatietracering de bovenste record die de meest recente uitvoeringstracering van een ER-indeling aangeeft die het huidige onderdeel voor modeltoewijzing heeft gebruikt.
Selecteer OK.
In de statistieken wordt het volgende weergegeven:
- De toepassingsdatabase is eenmaal aangeroepen om records op te halen uit de tabellen ERVendorTable, ERSolutionTable en ERSolutionVersionTable om toegang te krijgen tot vereiste velden.
- De toepassingsdatabase wordt eenmaal aangeroepen om het aantal configuratieversies te berekenen met behulp van joins die zijn geconfigureerd in de gegevensbron Details.
Beperkingen
Zoals u kunt zien in het voorbeeld in dit artikel, kan de JOIN-gegevens bron worden opgebouwd uit verschillende gegevensbronnen waarin de afzonderlijke gegevenssets worden beschreven van de records die uiteindelijk moeten worden gekoppeld. U kunt deze gegevensbronnen configureren met de ingebouwde ER FILTER-functie. Wanneer u de gegevensbron zo configureert dat deze buiten de JOIN-gegevensbron wordt aangeroepen, kunt u bedrijfsbereikwaarden gebruiken als onderdeel van de voorwaarde voor het selecteren van gegevens. De eerste implementatie van de JOIN-gegevensbron biedt geen ondersteuning voor gegevensbronnen van dit type. Wanneer u bijvoorbeeld een gegevensbron op basis van een FILTER aanroept binnen het uitvoeringsbereik van een JOIN-gegevensbron, wordt een uitzondering gegenereerd als de aangeroepen gegevensbron bedrijfsreeksen bevat als onderdeel van de voorwaarde voor het selecteren van gegevens.
In Microsoft Dynamics 365 Finance versie 10.0.12 (augustus 2020) kunt u bedrijfsbereikwaarden gebruiken als onderdeel van de voorwaarde voor gegevensselectie in op FILTER gebaseerde gegevensbronnen die worden aangeroepen binnen het uitvoeringsbereik van een JOIN-gegevensbron. Vanwege de beperkingen van de opbouwfunctie voor toepassingsquery's, worden de bedrijfsbereikwaarden alleen ondersteund voor de eerste gegevensbron van een JOIN-gegevensbron.
Voorbeeld
U moet bijvoorbeeld één aanroep naar de toepassingsdatabase uitvoeren om de lijst met buitenlandse handelstransacties van meerdere bedrijven weer te geven, en de details van het voorraadartikel waarnaar wordt verwezen in die transacties.
In dit geval configureert u de volgende artefacten in uw ER-modeltoewijzing:
- Intrastat-hoofdgegevensbron die de Intrastat-tabel vertegenwoordigt.
- Items-hoofdgegevensbron die de InventTable-tabel vertegenwoordigt.
- Hoofdgegevensbron van bedrijven met als retourwaarde de lijst met bedrijven (DEMF en GBSI in dit voorbeeld) waar transacties moeten worden geopend. De bedrijfscode is beschikbaar via het veld Companies.Code.
- X1-hoofdgegevensbron met de expressie
FILTER (Intrastat, VALUEIN(Intrastat.dataAreaId, Companies, Companies.Code))
. Als onderdeel van de voorwaarde voor het selecteren van gegevens bevat deze expressie de definitie van het bedrijfsbereikVALUEIN(Intrastat.dataAreaId, Companies, Companies.Code)
. - X2-gegevensbron als een genest item van de X1-gegevensbron. Deze bevat de expressie
FILTER (Items, Items.ItemId = X1.ItemId)
.
Tot slot kunt u een JOIN-gegevensbron configureren waarbij X1 de eerste gegevensbron is en X2 de tweede gegevensbron. U kunt Query opgeven als de optie voor Uitvoeren zodat ER deze gegevensbron op databaseniveau uitvoert als een directe SQL-aanroep.
Wanneer de geconfigureerde gegevensbron wordt uitgevoerd terwijl de ER-uitvoering wordt getraceerd, wordt de volgende instructie weergegeven in de ontwerper voor ER-modeltoewijzingen als onderdeel van de prestatietracering.
SELECT ... FROM INTRASTAT T1 CROSS JOIN INVENTTABLE T2 WHERE ((T1.PARTITION=?) AND (T1.DATAAREAID IN (N'DEMF',N'GBSI') )) AND ((T2.PARTITION=?) AND (T2.ITEMID=T1.ITEMID AND (T2.DATAAREAID = T1.DATAAREAID) AND (T2.PARTITION = T1.PARTITION))) ORDER BY T1.DISPATCHID,T1.SEQNUM
Notitie
Er treedt een fout op als u een JOIN-gegevensbron uitvoert die zo is geconfigureerd dat deze gegevensselectievoorwaarden bevat met bedrijfsbereiken voor extra gegevensbronnen van de uitgevoerde JOIN-gegevensbron.
Aanvullende bronnen
Formuleontwerper in elektronische aangifte
Uitvoering van ER-indeling traceren om prestatieproblemen op te lossen