Del via


Inspicere den konfigurerede ER-komponent for at undgå kørselsproblemer

Alle konfigurerede komponenter i ER (elektronisk rapportering)-format og modeltilknytningskomponenten kan valideres på designtidspunktet. Under denne validering foretages en konsistenskontrol for at forhindre kørselsproblemer, der kan opstå, f.eks. kørselsfejl og reduktion af ydeevnen. For hvert enkelt problem, der findes, angiver kontrollen stien til et problematisk element. I forbindelse med nogle problemer findes der en automatisk rettelse.

Som standard anvendes valideringen automatisk i følgende tilfælde for en ER-konfiguration, der indeholder de tidligere nævnte ER-komponenter:

  • Du importerer en ny version af en ER-konfiguration til din forekomst af Microsoft Dynamics 365 Finance.
  • Du ændrer status for den redigerbare ER-konfiguration fra Kladde til Fuldført.
  • Du rebaserer en redigerbar ER-konfiguration ved at anvende en ny basisversion.

Du kan køre denne validering eksplicit. Vælg en af følgende tre muligheder, og følg de trin, der er angivet:

  • Mulighed 1:

    1. Gå til Virksomhedsadministration > Elektronisk rapportering > Konfigurationer.
    2. Vælg den ønskede ER-konfiguration, der indeholder komponenten i ER-format eller komponten med ER-modeltilknytningen, i konfigurationstræet i venstre rude.
    3. I oversigtspanelet Versioner skal du vælge den ønskede version af den valgte ER-konfiguration.
    4. Vælg Valider i handlingsruden.
  • Mulighed 2 for ER-format:

    1. Gå til Virksomhedsadministration > Elektronisk rapportering > Konfigurationer.
    2. Vælg den ønskede ER-konfiguration, der indeholder komponenten i ER-format, i konfigurationstræet i venstre rude.
    3. I oversigtspanelet Versioner skal du vælge den ønskede version af den valgte ER-konfiguration.
    4. Vælg Designer i handlingsruden.
    5. I handlingsruden på siden Formatdesigner skal du vælge Valider.
  • Mulighed 3 for ER-modeltilknytning:

    1. Gå til Virksomhedsadministration > Elektronisk rapportering > Konfigurationer.
    2. Vælg den ønskede ER-konfiguration, der indeholder komponenten med ER-modeltilknytningen, i konfigurationstræet i venstre rude.
    3. I oversigtspanelet Versioner skal du vælge den ønskede version af den valgte ER-konfiguration.
    4. Vælg Designer i handlingsruden.
    5. Vælg Designer i handlingsruden på siden Tilknytning af model til datakilde.
    6. Vælg Valider i handlingsruden på siden Modeltilknytningsdesigner.

Hvis du vil springe valideringen over, når konfigurationen importeres, skal du følge disse trin.

  1. Gå til Virksomhedsadministration > Elektronisk rapportering > Konfigurationer.
  2. På siden Konfigurationer i handlingsruden skal du under fanen Konfigurationer i gruppen Avancerede indstillinger vælge Brugerparametre.
  3. Angiv indstillingen Valider konfiguration efter import til Nej.

Hvis du vil springe valideringen over, når du ændrer eller rebaserer versions status, skal du følge disse trin.

  1. Gå til Virksomhedsadministration > Elektronisk rapportering > Konfigurationer.
  2. På siden Konfigurationer i handlingsruden skal du under fanen Konfigurationer i gruppen Avancerede indstillinger vælge Brugerparametre.
  3. Angiv indstillingen Spring validering over ved ændring eller rebasering af konfigurations status til Ja.

ER bruger følgende kategorier til at gruppere inspektioner af konsistenskontrol:

  • Mulighed for udførelse – Inspektioner, der registrerer kritiske problemer, der kan opstå på kørselstidspunktet. Disse problemer er hovedsageligt af typen Fejl.
  • Ydeevne – Inspektioner, der registrerer problemer, der kan medføre ineffektiv udførelse af konfigurerede ER-komponenter. Disse problemer er hovedsageligt af typen Advarsel.
  • Dataintegritet – Inspektioner, der registrerer problemer, der kan medføre tab af data eller kørselsproblemer. Disse problemer er hovedsageligt af typen Advarsel.

Liste over inspektioner

I nedenstående tabel vises en oversigt over de inspektioner, ER tilbyder. Du kan finde flere oplysninger om disse inspektioner ved at bruge linkene i første kolonne til at gå til de relevante afsnit i denne artikel. I disse afsnit forklares de komponenttyper, som ER tilbyder inspektion af, og hvordan du kan omkonfigurere ER-komponenter for at undgå problemer.

Navn Kategori Niveau Melding
Typekonvertering Mulighed for udførelse Fejl

Et udtryk af typen <type> kan ikke konverteres til et felt af typen <type>.

Kørselsfejl: Undtagelse for type

Typekompatibilitet Mulighed for udførelse Fejl

Det konfigurerede udtryk kan ikke bruges som binding for elementet i det aktuelle format til en datakilde, da dette udtryk returnerer en værdi af datatypen <type>, der ligger uden for det område af datatyper, som understøttes af elementet i det aktuelle format af typen <type>.

Kørselsfejl: Undtagelsestype

Konfigurationselementet mangler Mulighed for udførelse Fejl

Stien blev ikke fundet <sti>.

Kørselsfejl: Der blev ikke fundet et element i konfigurations<stien>

Mulighed for udførelse af et udtryk med FILTER-funktion Mulighed for udførelse Fejl

Der kan ikke forespørges om FILTER-funktionens listeudtryk.

Kørselsfejl: Filtrering understøttes ikke. Valider konfigurationen for at få flere oplysninger om dette.

Mulighed for udførelse af en GROUPBY-datakilde Mulighed for udførelse Fejl Stien <sti> understøtter ikke forespørgsler.
Mulighed for udførelse Fejl

Funktionen Gruppér efter kan ikke udføres med forespørgslen.

Kørselsfejl: Funktionen Gruppér efter kan ikke udføres med forespørgslen.

Mulighed for udførelse af en JOIN-datakilde Mulighed for udførelse Fejl

Kan ikke joinforbinde en <sti> til en liste, der ikke er et filter i en forespørgsel.

Kørselsfejl: Den joinforbundne funktion skal være et filterudtryk. Det beregnede felt er kaldt forkert.

Funktionen FILTER foretrækkes frem for WHERE Ydeevne Advarsel! Det foretrækkes at bruge funktionen FILTER til udtrykket frem for WHERE fra et ydeevneperspektiv. Vælg Ret for at erstatte den automatisk.
Funktionen ALLITEMSQUERY foretrækkes frem for ALLITEMS Ydeevne Advarsel! Det foretrækkes at bruge funktionen ALLITEMSQUERY til udtrykket frem for ALLITEMS fra et ydeevneperspektiv. Vælg Ret for at erstatte den automatisk.
Overvejelse i forbindelse med sager med tom liste Mulighed for udførelse Advarsel!

Liste<stien> indeholder ikke kontrol af, om sagen har en tom liste. Det kan resultere i en fejl på kørselstidspunktet. Tilføj kontrol af, om sagen har en tom liste.

Kørselsfejl: Listen er tom på <stien>

Potentielt problem:: Linjen udfyldes én gang, mens en datakilde, som den er udfyldt fra, indeholder flere poster

Mulighed for udførelse af et udtryk med FILTER-funktion (cachelagring) Mulighed for udførelse Fejl

FILTER-funktionen kan ikke anvendes på den valgte type datakilde. En datakilde af tabelposttypen kan kun anvendes, hvis den ikke er cachelagret, og der ikke er tilføjet indlejrede datakilder manuelt.

Kørselsfejl: Filtrering understøttes ikke. Valider konfigurationen for at få flere oplysninger om dette.

Manglende binding Mulighed for udførelse Advarsel!

Stien <sti> har ingen binding til datakilder, når den bruger modellens tilknytning.

Kørselsfejl: Stien <sti> er ikke bundet

Ikke sammenkædet skabelon Dataintegritet Advarsel! Filens <navn> er ikke kædet sammen med nogen filkomponenter og fjernes, når status for konfigurationsversion er ændret.
Ikke synkroniseret format Dataintegritet Advarsel! Det definerede navn <komponentnavn> findes ikke i Excel-arket <arknavn>
Ikke synkroniseret format Dataintegritet Advarsel!

<Kodet kontrol af Word-indhold> kode findes ikke i Word-skabelonfilen

Kørselsfejl:<Kodet kontrol af Word-indhold> kode findes ikke i Word-skabelonfilen.

Ingen standardtilknytning Dataintegritet Fejl

Der findes mere end én modeltilknytning for datamodellen for <modelnavnet (rodbeskrivelsen)> i konfigurationers <konfigurationsnavne adskilt af komma>. Angiv en af konfigurationerne som standard

Kørselsfejl: Der findes mere end én modeltilknytning for datamodellen for <modelnavnet (rodbeskrivelsen)> i konfigurationer <konfigurationsnavne adskilt af komma>. Angiv en af konfigurationerne som standard.

Uoverensstemmende indstilling af komponenter i sidehoved eller sidefod Dataintegritet Fejl

Sidehoveder/sidefødder (<komponenttype: sidehoved eller sidefod>) er uoverensstemmende

Kørsel: Den sidste konfigurerede komponent bruges under kørsel, hvis kladdeversionen af det konfigurerede ER-format udføres.

Uoverensstemmende indstilling af sidekomponent Dataintegritet Fejl Der er mere end to områdekomponenter uden replikering. Fjern unødvendige komponenter.
Mulighed for udførelse af et udtryk med ORDERBY-funktion Mulighed for udførelse Fejl

Der kan ikke forespørges om ORDERBY-funktionens listeudtryk.

Kørselsfejl: Sortering understøttes ikke. Valider konfigurationen for at få flere oplysninger om dette.

Forældet applikationsgenstand Dataintegritet Alarm

Elementet <sti> er markeret som forældet.
eller
Elementet <sti> er markeret som forældet med meddelelsen <meddelelsestekst>.

Eksempel på kørselsfejl: Klasse '<sti>' blev ikke fundet.

Typekonvertering

ER undersøger, om datatypen for et datamodelfelt er kompatibel med datatypen for et udtryk, der er konfigureret som binding for dette felt. Hvis datatyperne ikke er kompatible, opstår der en valideringsfejl i ER-modeltilknytningsdesigneren. Den meddelelse, du modtager, angiver, at ER ikke kan konvertere et udtryk af typen A til et felt af typen B.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere komponenterne af typerne ER-datamodeller og ER-modeltilknytninger samtidigt.

  2. Tilføj et felt med navnet X i datamodeltræet, og vælg Heltal som datatype.

    X-felt og datatypen Heltal, der er føjet til datatilstandstræet på siden Datamodel.

  3. I ruden Datakilder for modeltilknytning skal du tilføje en datakilde af typen Beregnet felt.

  4. Navngiv den nye datakilde Y, og konfigurer den, så den indeholder udtrykket INTVALUE(100).

  5. Bind X til Y.

  6. I datamodeldesigneren skal du ændre datatypen for X-feltet fra Heltal til Int64.

  7. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner.

    Validere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner.

  8. Vælg Valider for at inspicere modeltilknytningskomponenten for den valgte ER-konfiguration på siden Konfigurationer.

    Inspektion af modeltilknytningskomponenten på siden Konfigurationer.

  9. Bemærk, at der opstår en valideringsfejl. Meddelelsen angiver, at værdien af den typen Heltal, som udtrykket INTVALUE(100) i Y-datakilden returnerer, ikke kan gemmes i datamodelfeltet X af typen Int64.

I følgende illustration vises den kørselsfejl, der opstår, hvis du ignorerer advarslen og vælger Kør for at køre et format, der er konfigureret til at bruge modeltilknytningen.

Kørselsfejl på siden Formatdesigner.

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Indstilling 1

Opdater datamodelstrukturen ved at ændre datatypen for datamodelfeltet, så den svarer til datatypen for det udtryk, der er konfigureret til bindingen af det pågældende felt. I det foregående eksempel skal datatypen for feltet X ændres tilbage til Heltal.

Indstilling 2

Opdater modeltilknytningen ved at ændre udtrykket for den datakilde, der er bundet til datamodelfeltet. I det foregående eksempel skal udtrykket for datakilden Y ændres til INT64VALUE(100).

Typekompatibilitet

ER undersøger, om datatypen for et formatelement er kompatibel med datatypen for et udtryk, der er konfigureret som binding for det pågældende formatelement. Hvis datatyperne ikke er kompatible, opstår der en valideringsfejl i ER-operationsdesigneren. Den meddelelse, du modtager, angiver, at det konfigurerede udtryk ikke kan bruges som binding for elementet i det aktuelle format til en datakilde, da udtrykket returnerer en værdi af datatypen A, der ligger uden for området af de datatyper, som understøttes af elementet i det aktuelle format af typen B.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere komponenterne af typerne ER-datamodel og ER-format samtidigt.

  2. Tilføj et felt med navnet X i datamodeltræet, og vælg Heltal som datatype.

  3. Tilføj et formatelement af typen Numerisk i formatstrukturtræet.

  4. Navngiv det nye formatelement Y. Vælg Heltal som datatype i feltet Numerisk type.

  5. Bind X til Y.

  6. Skift datatypen for Y-formatelementet fra Heltal til Int64 i formatstrukturtræet.

  7. Vælg Valider for at inspicere den redigerbare formatkomponent på siden Formatdesigner.

    Validere typekompatibilitet på siden Formatdesigner.

  8. Bemærk, at der opstår en valideringsfejl. Meddelelsen angiver, at det konfigurerede udtryk kun kan acceptere Int64-værdier. Derfor kan værdien af X-datamodelfeltet for typen Heltal ikke angives i formatelementet Y.

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Indstilling 1

Opdater formatstrukturen ved at ændre datatypen for formatelementet Numerisk, så den svarer til datatypen for det udtryk, du har konfigureret til bindingen af det pågældende element. I det foregående eksempel skal værdien Numerisk type for formatelementet X ændres tilbage til Heltal.

Indstilling 2

Opdater formattilknytningen for formatelementet X ved at ændre udtrykket fra model.X til INT64VALUE(model.X).

Konfigurationselementet mangler

ER kontrollerer, om bindingsudtrykkene kun indeholder datakilder, der er konfigureret i den redigerbare ER-komponent. For alle bindinger, der indeholder en datakilde, som mangler i den redigerbare ER-komponent, opstår der en valideringsfejl i ER-operationsdesigneren eller i ER-modeltilknytningsdesigneren.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere komponenterne af typerne ER-datamodeller og ER-modeltilknytninger samtidigt.

  2. Tilføj et felt med navnet X i datamodeltræet, og vælg Heltal som datatype.

    Datamodeltræ med feltet X og datatypen Heltal på siden Datamodel.

  3. I ruden Datakilder for modeltilknytning skal du tilføje en datakilde af typen Beregnet felt.

  4. Navngiv den nye datakilde Y, og konfigurer den, så den indeholder udtrykket INTVALUE(100).

  5. Bind X til Y.

  6. Slet datakilden Y i ruden Datakilder i modeltilknytningsdesigneren.

  7. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner.

    Inspektion af den redigerbare ER-modeltilknytningskomponent på siden Modeltilknytningsdesigner.

  8. Bemærk, at der opstår en valideringsfejl. Meddelelsen angiver, at bindingen af datamodelfeltet X indeholder den sti, der refererer til datakilden Y, men denne datakilde blev ikke fundet.

Automatisk løsning

Vælg Ophæv binding for at løse dette problem automatisk ved at fjerne den manglende datakildebinding.

Manuel løsning

Indstilling 1

Ophæv bindingen af datamodelfeltet X for at stoppe henvisningen til den ikke-eksisterende Y-datakilde.

Indstilling 2

I ruden Datakilder i ER-modeltilknytningsdesigneren skal du tilføje datakilden Y igen.

Mulighed for udførelse af et udtryk med FILTER-funktion

Den indbyggede ER-funktion FILTER bruges til at få adgang til programtabeller, visninger eller dataenheder ved at foretage et enkelt SQL-kald for at hente de nødvendige data som en liste over poster. En datakilde af typen Postliste bruges som argument for denne funktion og angiver programkilden for kaldet. ER kontrollerer, om der kan oprettes en direkte SQL-forespørgsel til en datakilde, der refereres til i FILTER-funktionen. Hvis der ikke kan oprettes en direkte forespørgsel, opstår der en valideringsfejl i ER-modeltilknytningsdesigneren. Den meddelelse, du modtager, angiver, at det ER-udtryk, der inkluderer FILTER-funktionen, ikke kan køres på kørselstidspunktet.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere ER-modeltilknytningskomponenten.

  2. Tilføj en datakilde af typen Dynamics 365 for Operations \ Tabelposter.

  3. Navngiv den nye datakilde Kreditor. I feltet Tabel skal du vælge VendTable for at angive, at denne datakilde vil anmode om tabellen VendTable.

  4. Tilføj en datakilde af typen Beregnet felt.

  5. Navngiv den nye datakilde FilteredVendor, og konfigurer den, så den indeholder udtrykket FILTER(Vendor, Vendor.AccountNum="US-101").

  6. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner, og kontroller, at udtrykket FILTER(Vendor, Vendor.AccountNum="US-101") i datakilden Kreditor kan forespørges.

  7. Rediger datakilden Kreditor ved at tilføje et indlejret felt af typen Beregnet felt for at få det relevante kreditorkontonummer.

  8. Navngiv det nye indlejrede felt $AccNumber, og konfigurer det, så det indeholder udtrykket TRIM(Vendor.AccountNum).

  9. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner, og kontroller, at udtrykket FILTER(Vendor, Vendor.AccountNum="US-101") i datakilden Kreditor kan forespørges.

    Kontrollere, at udtrykket med FILTER-funktionen kan forespørges på siden Modeltilknytningsdesigner.

  10. Bemærk, at der opstår en valideringsfejl, fordi datakilden Kreditor indeholder et indlejret felt af typen Beregnet felt, der ikke tillader, at udtrykket i datakilden FilteredVendor oversættes til den direkte SQL-sætning.

I følgende illustration vises den kørselsfejl, der opstår, hvis du ignorerer advarslen og vælger Kør for at køre et format, der er konfigureret til at bruge modeltilknytningen.

Der opstår kørselsfejl, når du kører det redigerbare format på siden Formatdesigner.

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Indstilling 1

I stedet for at føje et indlejret felt af typen Beregnet felt til datakilden Kreditor, skal du føje det indlejrede felt $AccNumber til datakilden FilteredVendor og konfigurere det, så det indeholder udtrykket TRIM(FilteredVendor.AccountNum). På denne måde kan udtrykket FILTER(Vendor, Vendor.AccountNum="US-101") køres på SQL-niveau og beregne det indlejrede felt $AccNumber bagefter.

Indstilling 2

Rediger udtrykket i datakilden FilteredVendor fra FILTER(Vendor, Vendor.AccountNum="US-101") til WHERE(Vendor, Vendor.AccountNum="US-101"). Det anbefales ikke, at du ændrer udtrykket for en tabel, der har en stor mængde data (transaktionstabel), fordi alle poster hentes, og valg af de nødvendige poster sker i hukommelsen. Denne fremgangsmåde kan derfor forårsage dårlig ydeevne. Yderligere oplysninger finder du i ER-funktionen WHERE.

Mulighed for udførelse af en GROUPBY-datakilde

Datakilden GROUPBY opdeler forespørgselsresultatet i grupper af poster, normalt med det formål at foretage en eller flere sammenlægninger af hver gruppe. Alle GROUPBY-datakilder kan konfigureres, så de køres enten på databaseniveau eller i hukommelsen. Når en GROUPBY-datakilde konfigureres, så den køres på databaseniveau, kontrollerer ER, om der kan oprettes en direkte SQL-forespørgsel til en datakilde, der henvises til i den pågældende datakilde. Hvis der ikke kan oprettes en direkte forespørgsel, opstår der en valideringsfejl i ER-modeltilknytningsdesigneren. Den meddelelse, du modtager, angiver, at den konfigurerede GROUPBY-datakilde ikke kan køres på kørselstidspunktet.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere ER-modeltilknytningskomponenten.

  2. Tilføj en datakilde af typen Dynamics 365 for Operations \ Tabelposter.

  3. Navngiv den nye datakilde Trans. I feltet Tabel skal du vælge VendTrans for at angive, at denne datakilde skal anmode om tabellen VendTrans.

  4. Tilføj en datakilde af typen Gruppér efter.

  5. Navngiv den nye datakilde GroupedTrans, og konfigurer den på følgende måde:

    • Vælg datakilden Trans som den postkilde, der skal grupperes.
    • Vælg Forespørgsel i feltet Udførselssted for at angive, at du vil køre denne datakilde på databaseniveau.

    Konfigurere datakilden på siden Rediger 'Gruppér efter'-parametre.

  6. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner, og kontroller, at den konfigurerede datakilde GroupedTrans kan forespørges.

  7. Rediger datakilden Trans ved at tilføje et indlejret felt af typen Beregnet felt for at få det relevante kreditorkontonummer.

  8. Navngiv den nye datakilde $AccNumber, og konfigurer den, så den indeholder udtrykket TRIM(Trans.AccountNum).

    Konfigurere datakilden på siden Modeltilknytningsdesigner.

  9. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner, og kontroller, at den konfigurerede datakilde GroupedTrans kan forespørges.

    Validering af ER-modeltilknytningskomponenten, og kontrol af den GroupedTrans-datakilde kan forespørges, på siden Modeltilknytningsdesigner.

  10. Bemærk, at der opstår en valideringsfejl, fordi datakilden Trans indeholder et indlejret felt af typen Beregnet felt, der ikke tillader, at kaldet til datakilden GroupedTrans oversættes til den direkte SQL-sætning.

I følgende illustration vises den kørselsfejl, der opstår, hvis du ignorerer advarslen og vælger Kør for at køre et format, der er konfigureret til at bruge modeltilknytningen.

Der opstår kørselsfejl, når advarslen ignoreres på siden Formatdesigner.

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Indstilling 1

I stedet for at føje et indlejret felt af typen Beregnet felt til datakilden Trans, skal du tilføje det indlejrede felt $AccNumber for elementet GroupedTrans.lines for datakilden GroupedTrans og konfigurere det, så det indeholder udtrykket TRIM(GroupedTrans.lines.AccountNum). På denne måde kan datakilden GroupedTrans køres på SQL-niveau og beregne det indlejrede felt $AccNumber bagefter.

Indstilling 2

Rediger værdien i feltet Udførselssted for datakilden GroupedTrans fra Forespørgsel til I hukommelsen. Det anbefales ikke, at du ændrer værdien for en tabel, der har en stor mængde data (transaktionstabel), fordi alle poster hentes, og gruppering og aggregering sker i hukommelsen. Denne fremgangsmåde kan derfor forårsage dårlig ydeevne.

Mulighed for udførelse af en JOIN-datakilde

Datakilden JOIN kombinerer poster fra to eller flere databasetabeller baseret på relaterede felter. Alle JOIN-datakilder kan konfigureres, så de køres enten på databaseniveau eller i hukommelsen. Når en JOIN-datakilde konfigureres, så den køres på databaseniveau, kontrollerer ER, om der kan oprettes en direkte SQL-forespørgsel til datakilder, der henvises til i den pågældende datakilde. Hvis der ikke kan oprettes en direkte SQL-forespørgsel med mindst én henvist datakilde, opstår der en valideringsfejl i ER-modeltilknytningsdesigneren. Den meddelelse, du modtager, angiver, at den konfigurerede JOIN-datakilde ikke kan køres på kørselstidspunktet.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere ER-modeltilknytningskomponenten.

  2. Tilføj en datakilde af typen Dynamics 365 for Operations \ Tabelposter.

  3. Navngiv den nye datakilde Kreditor. I feltet Tabel skal du vælge VendTable for at angive, at denne datakilde vil anmode om tabellen VendTable.

  4. Tilføj en datakilde af typen Dynamics 365 for Operations \ Tabelposter.

  5. Navngiv den nye datakilde Trans. I feltet Tabel skal du vælge VendTrans for at angive, at denne datakilde skal anmode om tabellen VendTrans.

  6. Tilføj en datakilde af typen Beregnet felt som det indlejrede felt for datakilden Kreditor.

  7. Navngiv den nye datakilde FilteredTrans, og konfigurer den, så den indeholder udtrykket FILTER(Trans, Trans.AccountNum=Vendor.AccountNum).

  8. Tilføj en datakilde af typen Join.

  9. Navngiv den nye datakilde JoinedList, og konfigurer den på følgende måde:

    1. Tilføj datakilden Kreditor som det første sæt poster, der skal joinforbindes.
    2. Tilføj datakilden Vendor.FilteredTrans som det andet sæt poster, der skal joinforbindes. Vælg INNER som type.
    3. Vælg Forespørgsel i feltet Udfør for at angive, at du vil køre denne datakilde på databaseniveau.

    Konfigurere datakilden på siden Joinforbindelsesdesigner.

  10. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner, og kontroller, at den konfigurerede datakilde JoinedList kan forespørges.

  11. Rediger udtrykket for datakilden Vendor.FilteredTrans fra FILTER(Trans, Trans.AccountNum=Vendor.AccountNum) til WHERE(Trans, Trans.AccountNum=Vendor.AccountNum).

  12. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner, og kontroller, at den konfigurerede datakilde JoinedList kan forespørges.

    Validering af den redigerbare modeltilknytningskomponent, og kontrol af, at datakilden JoinedList kan forespørges, på siden Modeltilknytningsdesigner.

  13. Bemærk, at der opstår valideringsfejl, fordi udtrykket for datakilden Vendor.FilteredTrans ikke kan oversættes til det direkte SQL-kald. Derudover gør det direkte SQL-kald det ikke muligt at oversætte kaldet for datakilden JoinedList til den direkte SQL-sætning.

    Kørselsfejl på grund af mislykket validering af datakilden JoinedList på siden Modeltilknytningsdesigner.

I følgende illustration vises den kørselsfejl, der opstår, hvis du ignorerer advarslen og vælger Kør for at køre et format, der er konfigureret til at bruge modeltilknytningen.

Køre det redigerbare format på siden Formatdesigner.

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Indstilling 1

Skift udtrykket for datakilden Vendor.FilteredTrans fra WHERE(Trans, Trans.AccountNum=Vendor.AccountNum) tilbage til FILTER(Trans, Trans.AccountNum=Vendor.AccountNum), som advarslen foreslår.

Updateret udtryk for datakilde på siden Modeltilknytningsdesigner.

Indstilling 2

Rediger værdien i feltet Udfør for datakilden JoinedList fra Forespørgsel til I hukommelsen. Det anbefales ikke, at du ændrer værdien for en tabel, der har en stor mængde data (transaktionstabel), fordi alle poster hentes, og joinforbindelse foregår i hukommelsen. Denne fremgangsmåde kan derfor forårsage dårlig ydeevne. Der vises en valideringsadvarsel, som oplyser dig om denne risiko.

Funktionen FILTER foretrækkes frem for WHERE

Den indbyggede ER-funktion FILTER bruges til at få adgang til programtabeller, visninger eller dataenheder ved at foretage et enkelt SQL-kald for at hente de nødvendige data som en liste over poster. Funktionen WHERE henter alle poster fra den givne kilde og vælger poster i hukommelsen. En datakilde af typen Postliste bruges som argument for begge funktioner og angiver en kilde til hentning af poster. ER kontrollerer, om der kan oprettes et direkte SQL-kald til en datakilde, der refereres til i WHERE-funktionen. Hvis der ikke kan oprettes et direkte kald, vises der en valideringsadvarsel i ER-modeltilknytningsdesigneren. Den meddelelse, du modtager, anbefaler, at du bruger funktionen FILTER i stedet for funktionen WHERE for at øge effektiviteten.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere ER-modeltilknytningskomponenten.

  2. Tilføj en datakilde af typen Dynamics 365 for Operations \ Tabelposter.

  3. Navngiv den nye datakilde Trans. I feltet Tabel skal du vælge VendTrans for at angive, at denne datakilde skal anmode om tabellen VendTrans.

  4. Tilføj en datakilde af typen Beregnet felt som det indlejrede felt for datakilden Kreditor.

  5. Navngiv den nye datakilde FilteredTrans, og konfigurer den, så den indeholder udtrykket WHERE(Trans, Trans.AccountNum="US-101").

  6. Tilføj en datakilde af typen Dynamics 365 for Operations \ Tabelposter.

  7. Navngiv den nye datakilde Kreditor. I feltet Tabel skal du vælge VendTable for at angive, at denne datakilde vil anmode om tabellen VendTable.

  8. Tilføj en datakilde af typen Beregnet felt.

  9. Navngiv den nye datakilde FilteredVendor, og konfigurer den, så den indeholder udtrykket WHERE(Vendor, Vendor.AccountNum="US-101").

  10. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner.

    Inspicere den redigerbare ER-modeltilknytningskomponent på siden Modeltilknytningsdesigner.

  11. Bemærk, at valideringsadvarsler anbefaler, at du bruger funktionen FILTER i stedet for funktionen WHERE for datakilderne FilteredVendor og FilteredTrans.

    Anbefaling at bruge funktionen FILTER i stedet for funktionen WHERE på siden Modeltilknytningsdesigner.

Automatisk løsning

Vælg Ret for automatisk at erstatte funktionen WHERE med funktionen FILTER i udtrykket for alle datakilder, der vises i gitteret under fanen Advarsler for denne type inspektion.

Du kan også vælge rækken for en enkelt advarsel i gitteret og derefter vælge Ret markeret. I dette tilfælde ændres udtrykket automatisk i den datakilde, der er nævnt i den valgte advarsel.

Vælge Ret for automatisk at erstatte funktionen WHERE med funktionen FILTER på siden Modeltilknytningsdesigner.

Manuel løsning

Du kan manuelt justere udtrykkene for alle datakilderne i valideringsgitteret ved at erstatte funktionen WHERE med funktionen FILTER.

Funktionen ALLITEMSQUERY foretrækkes frem for ALLITEMS

De indbyggede ER-funktioner ALLITEMS og ALLITEMSQUERY returnerer en flad værdi i Postliste, der består af en liste over poster, som repræsenterer alle elementer, som svarer til den angivne sti. ER kontrollerer, om der kan oprettes et direkte SQL-kald til en datakilde, der refereres til i ALLITEMS-funktionen. Hvis der ikke kan oprettes et direkte kald, vises der en valideringsadvarsel i ER-modeltilknytningsdesigneren. Den meddelelse, du modtager, anbefaler, at du bruger funktionen ALLITEMSQUERY i stedet for funktionen ALLITEMS for at øge effektiviteten.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere ER-modeltilknytningskomponenten.

  2. Tilføj en datakilde af typen Dynamics 365 for Operations \ Tabelposter.

  3. Navngiv den nye datakilde Kreditor. I feltet Tabel skal du vælge VendTable for at angive, at denne datakilde vil anmode om tabellen VendTable.

  4. Tilføj en datakilde af typen Beregnet felt for at få poster for flere kreditorer.

  5. Navngiv den nye datakilde FilteredVendor, og konfigurer den, så den indeholder udtrykket FILTER(Vendor, OR(Vendor.AccountNum="US-101",Vendor.AccountNum="US-102")).

  6. Tilføj en datakilde af typen Beregnet felt for at få transaktioner for alle filtrerede kreditorer.

  7. Navngiv den nye datakilde FilteredVendorTrans, og konfigurer den, så den indeholder udtrykket ALLITEMS(FilteredVendor.'<Relations'.'VendTrans.VendTable_AccountNum').

  8. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner.

    Inspektion af den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner.

  9. Bemærk, at der opstår en valideringsadvarsel. I meddelelsen anbefales det, at du bruger funktionen ALLITEMSQUERY i stedet for funktionen ALLITEMS for datakilden FilteredVendorTrans.

    Anbefaling at bruge funktionen ALLITEMSQUERY i stedet for funktionen ALLITEMS på siden Modeltilknytningsdesigner.

Automatisk løsning

Vælg Ret for automatisk at erstatte funktionen ALLITEMS med funktionen ALLITEMSQUERY i udtrykket for alle datakilder, der vises i gitteret under fanen Advarsler for denne type inspektion.

Du kan også vælge rækken for en enkelt advarsel i gitteret og derefter vælge Ret markeret. I dette tilfælde ændres udtrykket automatisk i den datakilde, der er nævnt i den valgte advarsel.

Vælg Ret på Siden Modeltilknytningsdesigner.

Manuel løsning

Du kan manuelt justere udtrykkene for alle de datakilder, der nævnes i valideringsgitteret, ved at erstatte funktionen ALLITEMS med funktionen ALLITEMSQUERY.

Overvejelse i forbindelse med sager med tom liste

Du kan konfigurere din ER-format- eller -modeltilknytningskomponent, så den får feltværdien for en datakilde til typen Postliste. ER kontrollerer, om designet overvejer det tilfælde, hvor en datakilde, der kaldes, ikke indeholder poster (dvs. den er tom), for at forhindre kørselsfejl, når en værdi hentes fra et felt i en post, der ikke findes.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere komponenterne af typerne ER-datamodel, ER-modeltilknytning og ER-format samtidigt.

  2. Tilføj et rodelement med navnet Root3 i datamodeltræet.

  3. Rediger elementet Root3s ved at tilføje et indlejret element af typen Postliste.

  4. Navngiv det nye indlejrede element Kreditor.

  5. Rediger elementet Kreditor på følgende måde:

    • Tilføj et indlejret felt af typen Streng, og giv det navnet Name.
    • Tilføj et indlejret felt af typen Streng, og giv det navnet AccountNumber.

    Tilføje indlejrede felter på siden Datamodel.

  6. I ruden Datakilder for modeltilknytning skal du tilføje en datakilde af typen Dynamics 365 for Operations \ Tabelposter.

  7. Navngiv den nye datakilde Kreditor. I feltet Tabel skal du vælge VendTable for at angive, at denne datakilde vil anmode om tabellen VendTable.

  8. Tilføj en datakilde af typen Generelt \ Brugerinputparameter for at søge efter en kreditorkonto i kørselsdialogboksen.

  9. Navngiv den nye datakilde RequestedAccountNum. Angiv Kreditors kontonummer i feltet Etiket. Behold standardværdien i feltet Navn på operationsdatatype, Beskrivelse.

  10. Tilføj en datakilde af typen Beregnet felt for at filtrere en kreditor, der forespørges om.

  11. Navngiv den nye datakilde FilteredVendor, og konfigurer den, så den indeholder udtrykket FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum).

  12. Bind datamodelelementerne til konfigurerede datakilder på følgende måde:

    • Bind FilteredVendor til Kreditor.
    • Bind FilteredVendor.AccountNum til Vendor.AccountNumber.
    • Bind FilteredVendor.'name()' til Vendor.Name.

    Binde datamodelelementer på siden Modeltilknytningsdesigner.

  13. Tilføj følgende elementer i formatstrukturtræet for at generere et udgående dokument i XML-format, der indeholder kreditoroplysningerne:

    1. Tilføj rod-XML-elementet Sætning.

    2. Tilføj det indlejrede XML-element Part for XML-elementet Sætning.

    3. Tilføj følgende indlejrede XML-attributter for XML-elementet Part:

      • Navn
      • AccountNum
  14. Bind formatelementer til de angivne datakilder på følgende måde:

    • Bind formatelementet Sætning\Part\Name til datakildefeltet model.Vendor.Name.
    • Bind formatelementet Sætning\Part\AccountNum til datakildefeltet model.Vendor.AccountNumber.
  15. Vælg Valider for at inspicere den redigerbare formatkomponent på siden Formatdesigner.

    Validere de formatelementer, du har bundet til datakilder på siden Formatdesigner.

  16. Bemærk, at der opstår en valideringsfejl. Meddelelsen angiver, at der muligvis udløses en fejl for de konfigurerede formatkomponenter Sætning\Part\Name og Sætning\Part\AccountNum på kørselstidspunktet, hvis listen model.Vendor er tom.

    Valideringsfejl, der giver besked om en mulig fejl i de konfigurerede formatkompontenter.

I følgende illustration vises den kørselsfejl, der opstår, hvis du ignorerer advarslen. Vælg Kør for at køre formatet, og vælg kontonummeret for en kreditor, der ikke findes. Da den ønskede kreditor ikke findes, vil listen model.Vendor være tom (dvs. at den ikke indeholder nogen poster).

Kørselsfejl, fordi det opstod under kørsel af formattilknytningen.

Automatisk løsning

Du kan vælge Ophæv binding for den valgte række i gitteret under fanen Advarsler. Den binding, der peges på i kolonnen Sti, fjernes automatisk fra formatelementerne.

Manuel løsning

Indstilling 1

Du kan binde formatelementet Sætning\Part\Name til datakildeelementet model.Vendor. På kørselstidspunktet kalder denne binding først datakilden model.Vendor. Når model.Vendor returnerer en tom postliste, køres de indlejrede formatelementer ikke. Derfor forekommer der ingen valideringsadvarsler for denne formatkonfiguration.

Binde formatelementet til datakildeelementet på siden Formatdesigner.

Indstilling 2

Skift bindingen for formatelementet Sætning\Part\Name fra model.Vendor.Name til FIRSTORNULL(model.Vendor).Name. Den opdaterede binding konverterer betinget den første post i datakilden model.Vendor typen Postliste til en ny datakilde af typen Post. Den nye datakilde indeholder det samme sæt felter.

  • Hvis mindst én post er tilgængelig i datakilden model.Vendor, udfyldes felterne i den pågældende post med værdierne fra felterne i den første post i datakilden model.Vendor. I dette tilfælde returnerer den opdaterede binding kreditorens navn.
  • Ellers udfyldes alle felter i den post, der oprettes, med standardværdien for datatypen i det pågældende felt. I dette tilfælde returneres den tomme streng som standardværdi for datatypen Streng.

Derfor forekommer der ingen valideringsadvarsler for Sætning\Part\Name, når det er bundet til udtrykket FIRSTORNULL(model.Vendor).Name.

Ændret binding løser valideringsadvarsler på siden Formatdesigner.

Indstilling 3

Hvis du eksplicit vil angive de data, der er angivet i et genereret dokument, når datakilden model.Vendor af typen Postliste ikke returnerer poster (teksten Ikke tilgængelig i dette eksempel), skal du ændre bindingen af formatelementet Sætning\Part\Name fra model.Vendor.Name til IF(NOT(ISEMPTY(model.Vendor)), model.Vendor.Name, "Not available"). Du kan også bruge udtrykket IF(COUNT(model.Vendor)=0, model.Vendor.Name, "Not available").

Yderligere overvejelser

I inspektionen får du også en advarsel om et andet potentielt problem. Efterhånden som du binder formatelementerne Sætning\Part\Name og Sætning\Part\AccountNum til de rette felter for datakilden model.Vendor af typen Postliste, køres disse bindinger og henter værdierne for de rette felter for den første i datakilden model.Vendor, hvis denne liste ikke er tom.

Da du ikke har bundet formatelementet Sætning\Part til datakilden model.Vendor, vil elementet Sætning\Part ikke blive gentager for hver post i datakilden model.Vendor under formatudførelse. Et genereret dokument vil i stedet kun blive udfyldt med oplysninger fra den første post på listen over poster, hvis den pågældende liste indeholder flere poster. Der kan derfor være et problem, hvis formatet er beregnet til at udfylde et genereret dokument med oplysninger om alle kreditorer fra datakilden model.Vendor. Du kan løse dette problem ved at binde elementet Sætning\Part til datakilden model.Vendor.

Mulighed for udførelse af et udtryk med FILTER-funktion (cachelagring)

Flere indbyggede ER-funktioner, herunder FILTER og ALLITEMSQUERY, bruges til at få adgang til programtabeller, visninger eller dataenheder ved at foretage et enkelt SQL-kald for at hente de nødvendige data som en liste over poster. En datakilde af typen Postliste bruges som argument for hver af disse funktioner og angiver en programkilde for kaldet. ER kontrollerer, om der kan oprettes et direkte SQL-kald til en datakilde, der refereres til i en af disse funktioner. Hvis der ikke kan oprettes et direkte kald, fordi datakilden var markeret som cachelagret, opstår der en valideringsfejl i ER-modeltilknytningsdesigneren. Den meddelelse, du modtager, angiver, at det ER-udtryk, der indeholder en af disse funktioner, ikke kan køres på kørselstidspunktet.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere ER-modeltilknytningskomponenten.

  2. Tilføj en datakilde af typen Dynamics 365 for Operations \ Tabelposter.

  3. Navngiv den nye datakilde Kreditor. I feltet Tabel skal du vælge VendTable for at angive, at denne datakilde vil anmode om tabellen VendTable.

  4. Tilføj en datakilde af typen Generelt \ Brugerinputparameter for at søge efter en kreditorkonto i kørselsdialogboksen.

  5. Navngiv den nye datakilde RequestedAccountNum. Angiv Kreditors kontonummer i feltet Etiket. Behold standardværdien i feltet Navn på operationsdatatype, Beskrivelse.

  6. Tilføj en datakilde af typen Beregnet felt for at filtrere en kreditor, der forespørges om.

  7. Navngiv den nye datakilde FilteredVendor, og konfigurer den, så den indeholder udtrykket FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum).

  8. Markér den konfigurerede Kreditor-datakilde som cachelagret.

    Konfigurere modeltilknytningskomponenten på siden Modeltilknytningsdesigner.

  9. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner.

    Validere den FILTER-funktion, der er anvendt på datakilden for den cachelagrede kreditor, på siden Modeltilknytningsdesigner.

  10. Bemærk, at der opstår en valideringsfejl. Meddelelsen angiver, at funktionen FILTER ikke kan anvendes på den cachelagrede Kreditor-datakilde.

I følgende illustration vises den kørselsfejl, der opstår, hvis du ignorerer advarslen og vælger Kør for at køre formatet.

Der opstod kørselsfejl under kørsel af formattilknytningen på siden Formatdesigner.

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Indstilling 1

Fjern flaget Cache fra datakilden Kreditor. Datakilden FilteredVendor bliver derefter eksekverbar, men datakilden Kreditor, der refereres til i tabellen VendTable, åbnes, hver gang datakilden FilteredVendor kaldes.

Indstilling 2

Rediger udtrykket i datakilden FilteredVendor fra FILTER(Vendor, Vendor.AccountNum="US-101") til WHERE(Vendor, Vendor.AccountNum="US-101"). I dette tilfælde åbnes datakilden Kreditor, der refereres til i tabellen VendTable, kun under det første opkald fra datakilden Kreditor. Valg af poster sker dog i hukommelsen. Denne fremgangsmåde kan derfor forårsage dårlig ydeevne.

Manglende binding

Når du konfigurerer en ER-formatkomponent, tilbydes ER-basisdatamodellen som standarddatakilde for ER-formatet. Når det konfigurerede ER-formatet køres, bruges standardmodeltilknytningen for basismodellen til at udfylde datamodellen med programdata. ER-formatdesigneren viser en advarsel, hvis du binder et formatelement til et datamodelelement, der ikke er bundet til en datakilde i den modeltilknytning, der aktuelt er valgt som standardmodeltilknytning for det redigerbare format. Denne bindingstype kan ikke køres på kørselstidspunktet, fordi det format, der køres, ikke kan udfylde et bundet element med programdata. Derfor opstår der en fejl på kørselstidspunktet.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere komponenterne af typerne ER-datamodel, ER-modeltilknytning og ER-format samtidigt.

  2. Tilføj et rodelement med navnet Root3 i datamodeltræet.

  3. Rediger elementet Root3s ved at tilføje et nyt indlejret element af typen Postliste.

  4. Navngiv det nye indlejrede element Kreditor.

  5. Rediger elementet Kreditor på følgende måde:

    • Tilføj et indlejret felt af typen Streng, og giv det navnet Name.
    • Tilføj et indlejret felt af typen Streng, og giv det navnet AccountNumber.

    Føje indlejrede felter til kreditorelementet på siden Datamodel.

  6. I ruden Datakilder for modeltilknytning skal du tilføje en datakilde af typen Dynamics 365 for Operations \ Tabelposter.

  7. Navngiv den nye datakilde Kreditor. I feltet Tabel skal du vælge VendTable for at angive, at denne datakilde vil anmode om tabellen VendTable.

  8. Tilføj en datakilde af typen Generelt \ Brugerinputparameter for at forespørge om en kreditorkonto i kørselsdialogboksen.

  9. Navngiv den nye datakilde RequestedAccountNum. Angiv Kreditors kontonummer i feltet Etiket. Behold standardværdien i feltet Navn på operationsdatatype, Beskrivelse.

  10. Tilføj en datakilde af typen Beregnet felt for at filtrere en kreditor, der forespørges om.

  11. Navngiv den nye datakilde FilteredVendor, og konfigurer den, så den indeholder udtrykket FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum).

  12. Bind datamodelelementerne til konfigurerede datakilder på følgende måde:

    • Bind FilteredVendor til Kreditor.
    • Bind FilteredVendor.AccountNum til Vendor.AccountNumber.

    Bemærk!

    Datamodelfeltet Vendor.Name forbliver ubundet.

    Datamodelelementer, der er bundet til konfigurerede datakilder, og et datatilstandselement, der forbliver på siden Modeltilknytningsdesigner.

  13. Tilføj følgende elementer i formatstrukturtræet for at generere et udgående dokument i XML-format, der indeholder oplysningerne om de kreditorer, der forespørges om:

    1. Tilføj rod-XML-elementet Sætning.

    2. Tilføj det indlejrede XML-element Part for XML-elementet Sætning.

    3. Tilføj følgende indlejrede XML-attributter for XML-elementet Part:

      • Navn
      • AccountNum
  14. Bind formatelementerne til de angivne datakilder på følgende måde:

    • Bind formatelementet Sætning\Part til datakildeelementet model.Vendor.
    • Bind formatelementet Sætning\Part\Name til datakildefeltet model.Vendor.Name.
    • Bind formatelementet Sætning\Part\AccountNum til datakildefeltet model.Vendor.AccountNumber.
  15. Vælg Valider for at inspicere den redigerbare formatkomponent på siden Formatdesigner.

    Validere ER-formatkomponenten på siden Formatdesigner.

  16. Bemærk, at der opstår en valideringsadvarsel. Meddelelsen angiver, at datakildefeltet model.Vendor.Name ikke er bundet til nogen datakilde i den modeltilknytning, der er konfigureret til at blive brugt af formatet. Formatelementet Sætning\Part\Name udfyldes muligvis ikke ved kørsel, og der kan forekomme en kørselsundtagelse.

    Validere ER-formatkomponenten på siden Formatdesigner.

I følgende illustration vises den kørselsfejl, der opstår, hvis du ignorerer advarslen og vælger Kør for at køre formatet.

Kørsel af det redigerbare format på siden Formatdesigner.

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Indstilling 1

Rediger den konfigurerede modeltilknytning ved at føje en binding til datakildefeltet model.Vendor.Name.

Indstilling 2

Rediger det konfigurerede format ved at fjerne en binding for formatelementet Sætning\Part\Name.

Ikke sammenkædet skabelon

Når du manuelt konfigurerer en ER-formatkomponent for at bruge en skabelon til at generere et udgående dokument, skal du tilføje elementet Excel\Fil manuelt, tilføje den ønskede skabelon som en vedhæftet fil til den redigerbare komponent og markere den vedhæftede fil i det tilføjede Excel\Fil-element. På denne måde angiver du, at det tilføjede element vil udfylde den valgte skabelon på kørselstidspunktet. Når du konfigurerer en version af formatkomponenten i Kladde-status, kan du føje flere skabeloner til den redigerbare komponent og derefter vælge hver skabelon i elementet Excel\Fil for at køre ER-formatet. På denne måde kan du se, hvordan de forskellige skabeloner udfyldtes på kørselstidspunktet. Hvis du har skabeloner, der ikke er valgt i nogen Excel\Fil-elementer, advarer ER-formatdesigneren dig om, at disse skabeloner slettes fra den version af ER-formatkomponenten, der kan redigeres, når dens status ændres fra Kladde til Fuldført.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere ER-formatkomponenten.

  2. Tilføj elementet Excel\Fil i formatstrukturtræet.

  3. I det Excel\Fil-element, du lige har tilføjet, kan du tilføje en Excel-projektmappefil, A.xlsx, som en vedhæftet fil. Brug den dokumenttype, der er konfigureret i ER-parametrene, til at angive lagringen af ER-formatskabeloner.

  4. I Excel\Fil-elementet skal du tilføje en anden Excel-projektmappefil, B.xlsx, som en vedhæftet fil. Brug den samme dokumenttype, der bruges til projektmappefilen A.

  5. Vælg projektmappefilen A i elementet Excel\Fil.

  6. Vælg Valider for at inspicere den redigerbare formatkomponent på siden Formatdesigner.

    Validere den redigerbare formatkomponent i projektmappefilen på siden Formatdesigner.

  7. Bemærk, at der opstår en valideringsadvarsel. Meddelelsen angiver, at projektmappefilen B.xlsx ikke er kædet sammen med nogen komponenter, og at den fjernes, når status for konfigurationsversionen ændres.

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Rediger det konfigurerede format ved at fjerne alle skabeloner, der ikke er sammenkædet med et Excel\Fil-element.

Ikke synkroniseret format

Når du konfigurerer en ER-formatkomponent for at bruge en Excel-skabelon til at generere et udgående dokument, kan du tilføje elementet Excel\Fil manuelt, tilføje den ønskede skabelon som en vedhæftet fil til den redigerbare komponent og markere den vedhæftede fil i det tilføjede Excel\Fil-element. På denne måde angiver du, at det tilføjede element vil udfylde den valgte skabelon på kørselstidspunktet. Da den tilføjede Excel-skabelon er designet eksternt, kan det redigerbare ER-format indeholde Excel-navne, der mangler i den tilføjede skabelon. ER-formatdesigneren advarer dig om eventuelle uoverensstemmelser mellem egenskaberne for de ER-formatelementer, der refererer til navne, som ikke er medtaget i den tilføjede Excel-skabelon.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere ER-formatkomponenten.

  2. Tilføj Excel\Fil-elementet Rapport i formatstrukturtræet.

  3. I det Excel\Fil-element, du lige har tilføjet, kan du tilføje en Excel-projektmappefil, A.xlsx, som en vedhæftet fil. Brug den dokumenttype, der er konfigureret i ER-parametrene, til at angive lagringen af ER-formatskabeloner.

    Vigtig

    Kontrollér, at den tilføjede Excel-projektmappe ikke indeholder navnet ReportTitle.

  4. Tilføj følgende Excel\Celle-element Titel som et indlejret element i elementet Rapport. I feltet Excel-interval skal du indtaste ReportTitle.

  5. Vælg Valider for at inspicere den redigerbare formatkomponent på siden Formatdesigner.

    Validere de indlejrede elementer og felter på siden Formatdesigner.

  6. Bemærk, at der opstår en valideringsadvarsel. Meddelelsen angiver, at navnet ReportTitle ikke findes på arket Ark1 i den Excel-skabelon, du bruger.

    Valideringsadvarsel om, at navnet ReportTitle ikke findes på Ark1 i Excel-skabelonen.

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Indstilling 1

Rediger det konfigurerede format ved at fjerne alle de elementer, der refererer til de Excel-navne, som mangler i skabelonen.

Indstilling 2

Opdater det redigerbare ER-format ved at importere en Excel-skabelon. Strukturen af det redigerbare ER-format synkroniseres med strukturen af den importerede Excel-skabelon.

Yderligere overvejelser

Hvis du vil vide, hvordan formatstrukturen kan synkroniseres med en ER-skabelon i skabeloneditoren for styring af forretningsdokumenter, skal du se Opdatere strukturen for en forretningsdokumentskabelon.

Ikke synkroniseret med et Word-skabelonformat

Når du konfigurerer en ER-formatkomponent for at bruge en Word-skabelon til at generere et udgående dokument, kan du tilføje elementet Excel\Fil manuelt, tilføje den ønskede Word-skabelon som en vedhæftet fil til den redigerbare komponent og markere den vedhæftede fil i det tilføjede Excel\Fil-element.

Bemærk!

Når Word-dokumentet er vedhæftet, viser ER-formatdesigneren det element, der kan redigeres, som Word\Fil.

På denne måde angiver du, at det tilføjede element vil udfylde den valgte skabelon på kørselstidspunktet. Da den tilføjede Word-skabelon er designet eksternt, kan det redigerbare ER-format indeholde Word-navne, der mangler i den tilføjede skabelon. ER-formatdesigneren advarer dig om eventuelle uoverensstemmelser mellem egenskaberne for de ER-formatelementer, der refererer til navne, som ikke er medtaget i den tilføjede Word-skabelon.

Du kan se et eksempel på, hvordan dette problem kan forekomme, under Konfigurere det format, der kan redigeres, hvis du vil udelade oversigtsafsnittet.

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Indstilling 1

Rediger det konfigurerede format ved at slette formlen Fjernet fra det formatelement, der nævnes i valideringsadvarslen.

Indstilling 2

Rediger brug af Word-skabelonen ved at tilføje den påkrævede mærkat til det relevante indhold i Word-kontrolelementet.

Ingen standardtilknytning

Når den Manglende bindende inspektion udføres, evalueres de inspicerede format bindinger i forhold til bindingerne fra den relevante modeltilknytningskomponent. Da du kan importere flere ER-modeltilknytningskonfigurationer til din finansforekomst, og hver konfiguration kan indeholde den relevante modeltilknytningskomponent, skal du vælge én konfiguration som standardkonfiguration. Ellers vil der forekomme en undtagelse, når du prøver at køre, redigere eller validere det inspicerede ER-format, og du vil modtage følgende meddelelse: "Der findes mere end én modeltilknytning for <model name (root descriptor)> datamodellen i konfigurationerne <configuration names separated by comma>. Angiv en af konfigurationerne som standard."

Du kan se et eksempel på, hvordan dette problem kan forekomme, og hvordan det kan rettes, under Administrer flere afledte tilknytninger for en enkelt modelrod.

Uoverensstemmende indstilling af komponenter i sidehoved eller sidefod

Når du konfigurerer en ER-formatkomponent til at bruge en Excel-skabelon til at generere et udgående dokument, kan du tilføje komponenten Excel\overskrift for at indsætte overskrifter øverst i et regneark i en Excel-projektmappe. Du kan også tilføje komponenten Excel\sidefod, hvis du vil udfylde sidefødder nederst i et regneark. For hver komponent i Excel\sidehoved eller Excel\sidefod, du tilføjer, skal du angive de Sidehoved-/sidefod-egenskaber, der skal angive de sider, komponenten skal føres for. Da du kan konfigurere flere komponenter i Excel\sidehoved eller Excel\sidefod til en komponent i et enkelt ark, og du kan generere forskellige sidehoveder eller sidefødder til forskellige typer sider i et Excel-regneark, skal du konfigurere en enkelt komponent i Excel\sidehoved eller Excel\sidefod for en bestemt værdi af egenskaben for udseende som sidehoved/sidefod. Hvis der er konfigureret mere end én komponent i Excel\sidehoved eller Excel\sidefod til en bestemt værdi af egenskaben for sidehovedets/sidefodens udseende, opstår der en valideringsfejl, og du modtager følgende fejlmeddelelse: "Sidehoveder/sidefødder (<komponenttype: sidehoved eller sidefod>) er uoverensstemmende."

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Indstilling 1

Rediger det konfigurerede format ved at slette en af de uoverensstemmende komponenter Excel\sidehoved eller Excel\sidefod.

Indstilling 2

Rediger værdien for egenskaben for udseendet af sidehovedet eller sidefoden for en af de uoverensstemmende komponenter i Excel\sidehoved eller Excel\sidefod.

Uoverensstemmende indstilling af sidekomponent

Når du konfigurerer en ER-formatkomponent til at bruge en Excel-skabelon til at generere et udgående dokument, kan du tilføje Excel\-side komponenten for at sideopdele et genereret dokument ved at bruge ER-formler. For hver Excel\-side-komponent, du tilføjer, kan du tilføje mange indlejrede område-komponenter og stadig være kompatibel med følgende struktur:

  • Den første indlejrede Område-komponent kan konfigureres, så egenskaben Replikeringsretning angives til Ingen replikering. Dette område bruges til at oprette sidehoveder i genererede dokumenter.
  • Du kan tilføje mange andre indlejrede område-komponenter, hvor egenskaben Replikeringsretning er angivet som Lodret. Disse områder bruges til at udfylde genererede dokumenter.
  • Den sidste indlejrede Område-komponent kan konfigureres, så egenskaben Replikeringsretning angives til Ingen replikering. Dette område bruges til at oprette sidefodsfødder i genererede dokumenter og til at tilføje de nødvendige sideskift.

Hvis du ikke følger denne struktur for et ER-format i ER-formatdesigneren på designtidspunktet, opstår der en valideringsfejl, og du modtager følgende fejlmeddelelse: "Der er mere end to områdekomponenter uden replikering. Fjern unødvendige komponenter."

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Indstilling 1

Rediger det konfigurerede format ved at ændre egenskaben Replikeringsretning for alle uoverensstemmende Excel\-område-komponenter.

Mulighed for udførelse af et udtryk med ORDERBY-funktion

Den indbyggede ORDERBY ER-funktion bruges til at sortere posterne i en ER-datakilde for den Postlistetype, der er angivet som et argument for funktionen.

Argumenter til ORDERBY-funktionen kan angives for at sortere poster til programtabeller, visninger eller dataenheder ved at foretage et kald til en enkelt database for at få de sorterede data som en liste over poster. En datakilde af typen Postliste bruges som argument for denne funktion og angiver programkilden for kaldet.

ER kontrollerer, om der kan oprettes en direkte databaseforespørgsel til en datakilde, der refereres til i ORDERBY-funktionen. Hvis der ikke kan oprettes en direkte forespørgsel, opstår der en valideringsfejl i ER-modeltilknytningsdesigneren. Den meddelelse, du modtager, angiver, at det ER-udtryk, der inkluderer ORDERBY-funktionen, ikke kan køres på kørselstidspunktet.

Følgende fremgangsmåde viser, hvordan dette problem kan opstå.

  1. Start med at konfigurere ER-modeltilknytningskomponenten.

  2. Tilføj en datakilde af typen Dynamics 365 for Operations \ Tabelposter.

  3. Navngiv den nye datakilde Kreditor. I feltet Tabel skal du vælge VendTable for at angive, at denne datakilde vil anmode om tabellen VendTable.

  4. Tilføj en datakilde af typen Beregnet felt.

  5. Navngiv den nye datakilde OrderedVendors, og konfigurer den, så den indeholder udtrykket ORDERBY("Query", Vendor, Vendor.AccountNum).

    Konfigurere datakilder på siden Modeltilknytningsdesigner.

  6. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner, og kontrollér, at udtrykket i datakilden OrderedVendors kan forespørges.

  7. Rediger datakilden Kreditor ved at tilføje et indlejret felt af typen Beregnet felt for at få det relevante kreditorkontonummer.

  8. Navngiv det nye indlejrede felt $AccNumber, og konfigurer det, så det indeholder udtrykket TRIM(Vendor.AccountNum).

  9. Vælg Valider for at inspicere den redigerbare modeltilknytningskomponent på siden Modeltilknytningsdesigner, og kontrollér, at udtrykket i datakilden Vendor kan forespørges.

    Kontrollere, at udtrykket i datakilden Vendor kan forespørges på siden Modeltilknytningsdesigner.

  10. Bemærk, at der opstår en valideringsfejl, fordi datakilden Vendor indeholder et indlejret felt af typen Beregnet felt, der ikke tillader, at udtrykket i datakilden OrderedVendors oversættes til den direkte SQL-sætning. Samme fejl opstår under kørslen, hvis du ignorerer valideringsfejlen og vælger Kør for at køre denne modeltilknytning.

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Indstilling 1

I stedet for at føje et indlejret felt af typen Beregnet felt til datakilden Vendor, skal du føje det indlejrede felt $AccNumber til datakilden FilteredVendors og konfigurere feltet, så det indeholder udtrykket TRIM(FilteredVendor.AccountNum). På denne måde kan udtrykket ORDERBY("Query", Vendor, Vendor.AccountNum) køres på databaseniveau, og beregningen af det indlejrede felt $AccNumber kan foretages bagefter.

Indstilling 2

Rediger udtrykket i datakilden FilteredVendors fra ORDERBY("Query", Vendor, Vendor.AccountNum) til ORDERBY("InMemory", Vendor, Vendor.AccountNum). Det anbefales ikke, at du ændrer udtrykket for en tabel, der har en stor mængde data (transaktionstabel), fordi alle poster hentes, og sortering af de nødvendige poster sker i hukommelsen. Denne fremgangsmåde kan derfor forårsage dårlig ydeevne.

Forældet applikationsgenstand

Når du designer en ER-modeltilknytningskomponent eller en ER-formatkomponent, kan du konfigurere et ER-udtryk til at kalde en applikationsgenstande i ER, f.eks. en databasetabel, en klassemetode osv. I Finans-version 10.0.30 og senere kan du tvinge ER til at advare dig om, at den applikationsgenstande, der henvises til, er markeret som forældet i kildekoden. Denne advarsel kan være nyttig, fordi forældede genstande til sidst fjernes fra kildekoden. Når du får besked om statussen for en genstand, kan det stoppe dig at bruge den forældede genstand i ER-komponenten, før den fjernes fra kildekoden, hvilket hjælper dig med at forhindre fejl i at kalde ikke-eksisterende applikationsgenstande fra en ER-komponent under kørslen.

Aktiver funktionen Valider forældede elementer i datakilder for elektronisk rapportering i arbejdsområdet til funktionsstyring for at begynde at evaluere den forældede attribut af programgenstande under inspektionen af en ER-komponent, der kan redigeres. Den forældede attribut evalueres i øjeblikket for følgende typer applikationsgenstande:

  • Databasetabel
    • Tabelfelt
    • Tabelmetode
  • Applikationsklasse
    • Klassemetode

Bemærk!

Der vises en advarsel under inspektionen af den redigerbare ER-komponent for en datakilde, der kun henviser til en forældet genstand, når denne datakilde bruges i mindst én binding af denne ER-komponent.

Tip!

Når SysObsoleteAttribute-klassen bruges til at give kompileren besked om at udstede advarselsmeddelelser i stedet for fejl, viser inspektionsadvarslen den, der er angivet i kildekodeadvarslen på designtid i oversigtspanelet Detaljerpå modeltilknytningsdesigner eller Formatdesigner-siden.

I følgende illustration vises den valideringsadvarsel, der vises, når det forældede DEL_Email-felt i CompanyInfo-programtabellen er bundet til et datamodelfelt ved hjælp af den konfigurerede company-datakilde.

Gennemgå advarsler om validering i Oversigtspanelet Detaljer på siden Designer for modeltilknytning.

Automatisk løsning

Det er ikke muligt at løse dette problem automatisk.

Manuel løsning

Rediger den konfigurerede modeltilknytning eller det konfigurerede format ved at fjerne alle bindinger til en datakilde, der henviser til en forældet applikationsgenstande.

Yderligere ressourcer

ER-funktionen ALLITEMS

ER-funktionen ALLITEMSQUERY

ER-funktionen INT64VALUE

ER-funktionen INTVALUE

ER-funktionen FILTER

ER-funktionen WHERE

Bruge JOIN-datakilder til at hente data fra flere programtabeller i ER-modeltilknytninger

Spore kørslen af ER-formater til fejlfinding af problemer med ydeevnen

Oversigt over styring af forretningsdokumenter

Skjule Word-indhold i genererede rapporter

Administrere flere afledte tilknytninger for en enkelt modelrod