Kontrollere den konfigurerte ER-komponenten for å forhindre kjøretidsproblemer
Alle konfigurerte komponenter i ER-format og modelltilordning kan valideres på utformingstidspunktet. Under denne valideringen kjører en konsekvenskontroll for å forhindre kjøretidsproblemer som kan oppstå, for eksempel kjøringsfeil og ytelsesreduksjon. For hvert problem som blir funnet, vises banen til et problemelement. For enkelte problemer er en automatisk reparasjon tilgjengelig.
Som standard brukes valideringen automatisk i følgende tilfeller for en ER-konfigurasjon som inneholder de tidligere nevnte ER-komponentene:
- Du importerer en ny versjon av en ER-konfigurasjon i din forekomst av Microsoft Dynamics 365 Finance.
- Du endrer statusen til den redigerbare ER-konfigurasjonen fra Utkast til Fullført.
- Du rebaserer en redigerbar ER-konfigurasjon ved å bruke en ny baseversjon.
Du kan eksplisitt kjøre denne valideringen. Velg ett av følgende tre alternativer, og følg fremgangsmåten som er angitt:
Alternativ 1:
- Gå til Organisasjonsstyring > Elektronisk rapportering > Konfigurasjoner.
- I konfigurasjonstreet i venstre rute velger du den ønskede ER-konfigurasjonen som inneholder ER-format- eller ER-modelltilordningskomponenten.
- I Versjoner-hurtigfanen velger du den ønskede versjonen av den valgte ER-konfigurasjonen.
- Velg Valider i handlingsruten.
Alternativ 2, for et ER-format:
- Gå til Organisasjonsstyring > Elektronisk rapportering > Konfigurasjoner.
- I konfigurasjonstreet i venstre rute velger du den ønskede ER-konfigurasjonen som inneholder ER-formatkomponenten.
- I Versjoner-hurtigfanen velger du den ønskede versjonen av den valgte ER-konfigurasjonen.
- Velg Utforming i handlingsruten.
- På siden Formatutforming, i handlingsruten, velger du Valider.
Alternativ 3, for en ER-modelltilordning:
- Gå til Organisasjonsstyring > Elektronisk rapportering > Konfigurasjoner.
- I konfigurasjonstreet i venstre rute velger du den ønskede ER-konfigurasjonen som inneholder ER-modelltilordningskomponenten.
- I Versjoner-hurtigfanen velger du den ønskede versjonen av den valgte ER-konfigurasjonen.
- Velg Utforming i handlingsruten.
- På siden Tilordning av modell til datakilde velger du Utforming i handlingsruten.
- På siden Modelltilordningsutforming i handlingsruten velger du Valider.
Hvis du vil hoppe over valideringen når konfigurasjonen importeres, følger du disse trinnene.
- Gå til Organisasjonsstyring > Elektronisk rapportering > Konfigurasjoner.
- På Konfigurasjoner-siden, i handlingsruten i fanen Konfigurasjoner i gruppen Avanserte innstillinger, velger du Brukerparametere.
- Sett alternativet Valider konfigurasjonen etter import til Nei.
Hvis du vil hoppe over valideringen når du endrer eller rebaserer versjonsstatusen, følger du disse trinnene.
- Gå til Organisasjonsstyring > Elektronisk rapportering > Konfigurasjoner.
- På Konfigurasjoner-siden, i handlingsruten i fanen Konfigurasjoner i gruppen Avanserte innstillinger, velger du Brukerparametere.
- Sett Hopp over validering ved konfigurasjonens statusendring og rebasering til Ja.
ER bruker følgende kategorier til å gruppere kontrollinspeksjoner for konsekvens:
- Kjøring – Inspeksjoner som oppdager kritiske problemer som kan forekomme under kjøring. Disse problemene er for det meste på feil-nivå.
- Ytelse – Inspeksjoner som oppdager problemer som kan føre til ineffektiv kjøring av konfigurerte ER-komponenter. Disse problemene er for det meste på Advarsel-nivå.
- Dataintegritet – Inspeksjoner som oppdager problemer som kan føre til datatap eller kjøretidsproblemer. Disse problemene er for det meste på Advarsel-nivå.
Liste over inspeksjoner
Tabellen nedenfor gir en oversikt over inspeksjonene som ER gir. Hvis du vil ha mer informasjon om disse inspeksjonene, bruker du koblingene i den første kolonnen for å gå til de relevante delene i denne artikkelen. Disse delene forklarer typene av komponenter som ER gir inspeksjoner for, og hvordan du kan konfigurere ER-komponenter på nytt for å forhindre problemer.
Navn | Kategori | Nivå | Melding |
---|---|---|---|
Typekonvertering | Kjøring | Feil |
Kan ikke konvertere uttrykk av typen <type> til felt av typen typen <type>. Kjøretidsfeil: Unntak for type |
Type kompatibilitet | Kjøring | Feil |
Det konfigurerte uttrykket kan ikke brukes som binding for gjeldende formatelement til en datakilde, fordi dette uttrykket returnerer verdien av datatypen <type>, som er utenfor området for datatyper som støttes av det gjeldende formatelementet av typen <type>. Kjøretidsfeil: Unntak av typen |
Mangler konfigurasjonselement | Kjøring | Feil |
Finner ikke banen <bane>. Kjøretidsfeil: Element av konfigurasjons<banen> finnes ikke |
Utføring av et uttrykk med FILTER-funksjon | Kjøring | Feil |
Listeuttrykket for FILTER-funksjonen er ikke queryable. Kjøretidsfeil: Filtrering støttes ikke. Valider konfigurasjonen for å få flere detaljer om dette. |
Kjøring av en GROUPBY-datakilde | Kjøring | Feil | Banen <bane> støtter ikke spørring. |
Kjøring | Feil |
Group by-funksjonen kan ikke utføres med spørring. Kjøretidsfeil: Group by-funksjonen kan ikke utføres med spørring. |
|
Kjøring av en JOIN-datakilde | Kjøring | Feil |
Kan ikke bli med i en liste<bane> som ikke er et filter i spørring. Kjøretidsfeil: Den Joined-forbundne funksjonen må være et filteruttrykk. Det beregnede feltet er kalt opp felt. |
Funksjonen FILTER foretrekkes foran WHERE | Ytelse | Advarsel | Bruk av FILTER-funksjonen for uttrykket er foretrukket foran WHERE fra et ytelsesperspektiv. Velg Løs for å erstatte automatisk. |
Funksjonen ALLITEMSQUERY foretrekkes foran ALLITEMS | Ytelse | Advarsel | Bruk av ALLITEMSQUERY-funksjonen for uttrykket er foretrukket foran ALLITEMS fra et ytelsesperspektiv. Velg Løs for å erstatte automatisk. |
Vurdering ved saker med tomme lister | Kjøring | Advarsel |
Liste<banen> har ingen kontroll for tom liste, og dette kan føre til en feil ved kjøretid. Legg til en kontroll for sak med tom liste. Kjøretidsfeil: Listen er tom ved <bane> Potensielt problem: Linjen blir fylt opp én gang, mens en datakilde som den er utfylt fra, inneholder flere poster |
Utføring av et uttrykk med FILTER-funksjon (bufring) | Kjøring | Feil |
FILTER-funksjonen kan ikke brukes på den valgte typen datakilde. En datakilde for tabellposteringstypen er bare tilgjengelig når den ikke er bufret og ikke har lagt til nestede datakilder manuelt. Kjøretidsfeil: Filtrering støttes ikke. Valider konfigurasjonen for å få flere detaljer om dette. |
Manglende binding | Kjøring | Advarsel |
Banen <bane> har ingen binding til noen datakilder når den bruker modellens tilordning. Kjøretidsfeil: Banen <bane> er ikke bundet |
Ikke koblet mal | Dataintegritet | Advarsel | Filen <navn> er ikke koblet til noen filkomponenter og vil bli fjernet etter endring av status for konfigurasjonsversjon. |
Ikke synkronisert format | Dataintegritet | Advarsel | Definert navn <komponentnavn> finnes ikke i Excel-regnearket <regnearknavn> |
Ikke synkronisert format | Dataintegritet | Advarsel |
Koden <Kodet Word-innholdskontroll> finnes ikke i Word-malfil Kjøretidsfeil:<Koden Kodet Word-innholdskontroll> finnes ikke i Word-malfil. |
Ingen standardtilordning | Dataintegritet | Feil |
Det finnes mer enn én modelltilordning for datamodellen <modellnavn (rotbeskrivelse)> i konfigurasjonene <konfigurasjonsnavn atskilt med komma>. Angi én av konfigurasjonene som standard Kjøretidsfeil: Det finnes mer enn én modelltilordning for datamodellen <modellnavn (rotbeskrivelse)> i konfigurasjonene <konfigurasjonsnavn atskilt med komma>. Angi én av konfigurasjonene som standard. |
Inkonsekvent innstilling for topptekst- eller bunntekstkomponenter | Dataintegritet | Feil |
Topptekst/bunntekst (<komponenttype: Topptekst eller Bunntekst>) er inkonsekvent Kjøretid: Den sist konfigurerte komponenten brukes i kjøretid hvis utkastversjonen av det konfigurerte ER-formatet utføres. |
Inkonsekvent innstilling av sidekomponent | Dataintegritet | Feil | Det er mer enn to områdekomponenter uten replikering. Fjern unødvendige komponenter. |
Utføring av et uttrykk med ORDERBY-funksjon | Kjøring | Feil |
Listeuttrykket for ORDERBY-funksjonen kan ikke spørres. Kjøretidsfeil: Sortering støttes ikke. Valider konfigurasjonen for å få flere detaljer om dette. |
Foreldet appartefakt | Dataintegritet | Advarsel |
Elementet <bane> er merket som foreldet. Eksempel på kjøretidsfeil: Finner ikke klassen '<bane>'. |
Typekonvertering
ER kontrollerer om datatypen for et datamodellfelt er kompatibel med datatypen for et uttrykk som er konfigurert som binding for feltet. Hvis datatypene ikke er kompatible, oppstår det en valideringsfeil i ER-modelltilordningsutforming. Meldingen du mottar, sier at ER ikke kan konvertere et uttrykk av typen A til et felt av typen B.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start å konfigurere ER-datamodellen og ER-modelltilordningskomponentene samtidig.
Legg til et felt med navnet X i datamodelltreet, og velg Heltall som datatype.
I uformingen av modelltilordning legger du til en datakilde av typen Beregnet felt i ruten Datakilder.
Gi den nye datakilden navnet Y, og konfigurer den slik at den inneholder uttrykket
INTVALUE(100)
.Bind X til Y.
I datamodeldesigner endrer du datatypen for X-feltet fra Heltall til Int64.
Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming.
Velg Valider for å kontrollere modelltilordningskomponenten for valgt ER-konfigurasjon på siden Konfigurasjoner.
Legg merke til at det oppstår en valideringsfeil. Meldingen angir at verdien for typen Heltall som uttrykket
INTVALUE(100)
i datakilden Y returnerer, ikke kan lagres i datamodellfeltet X av typen Int64.
Følgende illustrasjon viser kjøretidsfeilen som oppstår hvis du ignorerer advarselen og velger Kjør for å kjøre et format som er konfigurert til å bruke modelltilordningen.
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Alternativ 1
Oppdater datamodellstrukturen ved å endre datatypen for datamodellfeltet, slik at det samsvarer med datatypen for uttrykket som er konfigurert for bindingen for dette feltet. I eksemplet ovenfor må datatypen for X-feltet endres tilbake til Heltall.
Alternativ 2
Oppdater modelltilordningen ved å endre uttrykket for datakilden som er bundet til datamodellfeltet. I det forrige eksemplet må uttrykket for Y-datakilden endres til INT64VALUE(100)
.
Type kompatibilitet
ER kontrollerer om datatypen for et formatelement er kompatibel med datatypen for et uttrykk som er konfigurert som binding for formatelementet. Hvis datatypene ikke er kompatible, oppstår det en valideringsfeil i ER-operasjonsutforming. Meldingen du motttar, sider at det konfigurerte uttrykket ikke kan brukes som binding for det gjeldende formatelementet til en datakilde, fordi dette uttrykket returnerer en verdi av datatypen A, som er utenfor området for datatypene som støttes av det gjeldende formatelementet av typen B.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start å konfigurere ER-datamodellen og ER-formatkomponentene samtidig.
Legg til et felt med navnet X i datamodelltreet, og velg Heltall som datatype.
Legg til et formatelement av den typen Numerisk i formatstrukturtreet.
Navnet på det nye formatelementet Y. I feltet Numerisk type velger du Heltall som datatype.
Bind X til Y.
I formatstrukturtreet endrer du datatypen til Y-formatelementet fra Heltall til Int64.
Velg Valider for å kontrollere den redigerbare formatkomponenten på siden Formatutforming.
Legg merke til at det oppstår en valideringsfeil. Meldingen angir at det konfigurerte uttrykket bare kan godta Int64-verdier. Derfor kan verdien i datamodellfeltet X av typen Heltall ikke angis i formatelementet Y.
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Alternativ 1
Oppdater formatstrukturen ved å endre datatypen for formatelementet Numerisk, slik at det samsvarer med datatypen for uttrykket du har konfigurert for bindingen for dette elementet. I det foregående eksemplet må verdien for Numerisk type for X-formatelementet endres tilbake til Heltall.
Alternativ 2
Oppdater formattilordningen for X-formatelementet ved å endre uttrykket fra model.X
til INT64VALUE(model.X)
.
Mangler konfigurasjonselement
ER kontrollerer om bindingsuttrykkene bare inneholder datakilder som er konfigurert i den redigerbare ER-komponenten. For hver binding som inneholder en datakilde som mangler i den redigerbare ER-komponenten, oppstår det en valideringsfeil i ER-operasjonsutforming eller i ER-modelltilordningsutformingen.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start å konfigurere ER-datamodellen og ER-modelltilordningskomponentene samtidig.
Legg til et felt med navnet X i datamodelltreet, og velg Heltall som datatype.
I uformingen av modelltilordning legger du til en datakilde av typen Beregnet felt i ruten Datakilder.
Gi den nye datakilden navnet Y, og konfigurer den slik at den inneholder uttrykket
INTVALUE(100)
.Bind X til Y.
Slett datakilden Y i ruten Datakilder i modelltilordningsutformingen.
Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming.
Legg merke til at det oppstår en valideringsfeil. Meldingen angir at bindingen for X-datamodellfeltet inneholder banen som refererer til Y-datakilden, men denne datakilden finnes ikke.
Automatisk løsning
Velg Opphev binding for å reparere dette problemet automatisk ved å fjerne den manglende datakildebindingen.
Manuell løsing
Alternativ 1
Opphev X-datamodellfeltet for å slutte å referere til den ikke-eksisterende Y-datakilden.
Alternativ 2
I modelltilordningsutformingen legger du til datakilden Y på nytt i ruten Datakilder.
Utføring av et uttrykk med FILTER-funksjon
Den innebygde ER-funksjonen FILTER brukes til å få tilgang til programtabeller, visninger eller dataenheter ved å plassere ett enkelt SQL-kall for å hente de nødvendige dataene som en liste med poster. En datakilde for Postliste-typen brukes som et argument av denne funksjonen, og angir programkilden for kallet. ER kontrollerer om en direkte SQL-spørring kan opprettes til en datakilde som det refereres til i FILTER
-funksjonen. Hvis en direktespørring ikke kan opprettes, oppstår det en valideringsfeil i ER-modelltilordningsutforming. Meldingen du mottar, sier at ER-uttrykket som inneholder funksjonen FILTER
, ikke kan kjøres under kjøring.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start med å konfigurere ER-modelltilordningskomponenten.
Legg til en datakilde av typen Dynamics 365 for Operations \ Tabellposter.
Gi den nye datakilden navnet Leverandør. I Tabell-feltet velger VendTable for å angi at denne datakilden skal be om tabellen VendTable.
Legg til en datakilde av typen Beregnet felt.
Gi den nye datakilden navnet FilteredVendor, og konfigurer den slik at den inneholder uttrykket
FILTER(Vendor, Vendor.AccountNum="US-101")
.Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming, og kontroller at
FILTER(Vendor, Vendor.AccountNum="US-101")
-uttrykket i Leverandør-datakilden kan spørres.Endre Leverandør-datakilden ved å legge til et nestet felt av typen Beregnet felt for å hente det relevante leverandørkontonummeret.
Gi det nye nestede feltet navnet $AccNumber, og konfigurer det, slik at det inneholder uttrykket
TRIM(Vendor.AccountNum)
.Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming, og kontroller at
FILTER(Vendor, Vendor.AccountNum="US-101")
-uttrykket i Leverandør-datakilden kan spørres.Legg merke til at det oppstår en valideringsfeil, fordi Leverandør-datakilden inneholder et nestet felt av typen Beregnet felt som ikke tillater at uttrykket for datakilden FilteredVendor oversettes til den direkte SQL-setningen.
Følgende illustrasjon viser kjøretidsfeilen som oppstår hvis du ignorerer advarselen og velger Kjør for å kjøre et format som er konfigurert til å bruke modelltilordningen.
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Alternativ 1
I stedet for å legge til et nestet felt av typen Beregnet felt i datakilden Leverandør legger du til det nestede feltet $AccNumber i datakilden FilteredVendor og konfigurerer det, slik at det inneholder uttrykket TRIM(FilteredVendor.AccountNum)
. På denne måten kan uttrykket FILTER(Vendor, Vendor.AccountNum="US-101")
kjøres på SQL-nivå og beregne det nestede feltet $AccNumber etterpå.
Alternativ 2
Endre uttrykket for FilteredVendor-datakilden fra FILTER(Vendor, Vendor.AccountNum="US-101")
til WHERE(Vendor, Vendor.AccountNum="US-101")
. Vi ikke anbefaler at du endrer uttrykket for en tabell som har et stort datavolum (transaksjonstabell), fordi alle postene vil bli hentet, og valget av nødvendige poster vil bli utført i minnet. Derfor kan denne fremgangsmåten føre til dårlig ytelse. Hvis du vil ha mer informasjon, kan du se funksjonen WHERE ER f.
Kjøring av en GROUPBY-datakilde
Datakilden GROUPBY deler spørringsresultatet inn i grupper med poster, vanligvis for å gjøre én eller flere aggregasjoner på hver gruppe. Hver GROUPBY-datakilde kan konfigureres slik at den kjøres enten på databasenivå eller i minnet. Når en GROUPBY-datakilde er konfigurert slik at den kjøres på databasenivå, kontrollerer ER for eksempel om en direkte SQL-spørring kan opprettes til en datakilde som det refereres til i datakilden. Hvis en direktespørring ikke kan opprettes, oppstår det en valideringsfeil i ER-modelltilordningsutforming. Meldingen du mottar, sier at den konfigurerte GROUPBY-datakilden ikke kan kjøres under kjøring.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start med å konfigurere ER-modelltilordningskomponenten.
Legg til en datakilde av typen Dynamics 365 for Operations \ Tabellposter.
Gi den nye datakilden navnet Trans. I Tabell-feltet velger du VendTrans for å angi at denne datakilden skal be om en VendTrans-tabell.
Legg til en datakilde av typen Grupper etter.
Gi den nye datakilden navnet GroupedTrans, og konfigurer den på følgende måte:
- Velg Trans-datakilden som kilde for poster som skal grupperes.
- I feltet Utførelseslokasjon velger du Spørring for å angi at du vil kjøre datakilden på databasenivå.
Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming, og kontroller at den konfigurerte GroupedTrans-datakilden kan spørres.
Endre Trans-datakilden ved å legge til et nestet felt av typen Beregnet felt for å hente det relevante leverandørkontonummeret.
Gi den nye datakilden navnet $AccNumber, og konfigurer den slik at den inneholder uttrykket
TRIM(Trans.AccountNum)
.Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming, og kontroller at den konfigurerte GroupedTrans-datakilden kan spørres.
Legg merke til at det oppstår en valideringsfeil, fordi Trans-datakilden inneholder et nestet felt av typen Beregnet felt som ikke tillater at kallet etter datakilden GroupedTrans oversettes til den direkte SQL-setningen.
Følgende illustrasjon viser kjøretidsfeilen som oppstår hvis du ignorerer advarselen og velger Kjør for å kjøre et format som er konfigurert til å bruke modelltilordningen.
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Alternativ 1
I stedet for å legge til et nestet felt av typen Beregnet felt i datakilden Trans legger du til det nestede feltet $AccNumber for elementet GroupedTrans.lines i datakilden GroupedTrans og konfigurerer det, slik at det inneholder uttrykket TRIM(GroupedTrans.lines.AccountNum)
. På denne måten kan datakilden GroupedTrans kjøres på SQL-nivå og beregne det nestede feltet $AccNumber etterpå.
Alternativ 2
Endre verdien for feltet Utførelseslokasjon for datakilden GroupedTrans fra Spørring til I minnet. Vi anbefaler ikke at du endrer verdien for en tabell som har et stort datavolum (transaksjonstabell), fordi alle postene vil bli hentet, og gruppering og aggregering vil bli utført i minnet. Derfor kan denne fremgangsmåten føre til dårlig ytelse.
Kjøring av en JOIN-datakilde
JOIN-datakilden kombinerer poster fra to eller flere databasetabeller basert på relaterte felt. Hver JOIN-datakilde kan konfigureres slik at den kjøres enten på databasenivå eller i minnet. Når en JOIN-datakilde er konfigurert slik at den kjøres på databasenivå, kontrollerer ER for eksempel om en direkte SQL-spørring kan opprettes til datakilder som det refereres til i datakilden. Hvis en SQL-spørring ikke kan opprettes med minst én referert datakilde, oppstår det en valideringsfeil i ER-modelltilordningsutforming. Meldingen du mottar, sier at den konfigurerte JOIN-datakilden ikke kan kjøres under kjøring.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start med å konfigurere ER-modelltilordningskomponenten.
Legg til en datakilde av typen Dynamics 365 for Operations \ Tabellposter.
Gi den nye datakilden navnet Leverandør. I Tabell-feltet velger VendTable for å angi at denne datakilden skal be om tabellen VendTable.
Legg til en datakilde av typen Dynamics 365 for Operations \ Tabellposter.
Gi den nye datakilden navnet Trans. I Tabell-feltet velger du VendTrans for å angi at denne datakilden skal be om en VendTrans-tabell.
Legg til en datakilde av typen Beregnet felt som det nestede feltet i Leverandør-datakilden.
Gi den nye datakilden navnet FilteredTrans, og konfigurer den slik at den inneholder uttrykket
FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
.Legg til en datakilde av typen Join.
Gi den nye datakilden navnet JoinedList, og konfigurer den på følgende måte:
- Legg til Leverandør-datakilden som det første postsettet som skal slås sammen.
- Legg til Vendor.FilteredTrans-datakilden som det andre postsettet som skal slås sammen. Velg INNER som type.
- I feltet for Kjøring velger du Spørring for å angi at du vil kjøre datakilden på databasenivå.
Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming, og kontroller at den konfigurerte JoinedList-datakilden kan spørres.
Endre uttrykket for Vendor.FilteredTrans-datakilden fra
FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
tilWHERE(Trans, Trans.AccountNum=Vendor.AccountNum)
.Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming, og kontroller at den konfigurerte JoinedList-datakilden kan spørres.
Legg merke til at det oppstår en valideringsfeil fordi uttrykket for Vendor.FilteredTrans-datakilden ikke kan oversettes til det direkte SQL-kallet. I tillegg tillater ikke det direkte SQL-kallet at kallet for JoinedList-datakilden oversettes til den direkte SQL-setningen.
Følgende illustrasjon viser kjøretidsfeilen som oppstår hvis du ignorerer advarselen og velger Kjør for å kjøre et format som er konfigurert til å bruke modelltilordningen.
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Alternativ 1
Endre uttrykket for Vendor.FilteredTrans-datakilde fra WHERE(Trans, Trans.AccountNum=Vendor.AccountNum)
tilbake til FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
, som advarselen anbefaler.
Alternativ 2
Endre verdien for feltet Utførelse-feltet for datakilden JoinedList fra Spørring til I minnet. Vi anbefaler ikke at du endrer verdien for en tabell som har et stort datavolum (transaksjonstabell), fordi alle postene vil bli hentet, og sammenkoblingen skjer i minnet. Derfor kan denne fremgangsmåten føre til dårlig ytelse. Det vises en valideringsadvarsel som informerer deg om denne risikoen.
Funksjonen FILTER foretrekkes foran WHERE
Den innebygde ER-funksjonen FILTER brukes til å få tilgang til programtabeller, visninger eller dataenheter ved å plassere ett enkelt SQL-kall for å hente de nødvendige dataene som en liste med poster. WHERE-funksjonen henter alle poster fra den angitte kilden og registrerer valget i minnet. En datakilde for Postliste-typen brukes som et argument for begge funksjoner og angir en kilde for hentinga av postene. ER kontrollerer om et direkte SQL-anrop kan opprettes til en datakilde som det refereres til i WHERE-funksjonen. Hvis et direkteanrop kan opprettes, oppstår det en valideringsadvarsel i ER-modelltilordningsutforming. Meldingen du mottar, anbefaler at du bruker FILTER-funksjonen i stedet for WHERE-funksjonen for å forbedre effektiviteten.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start med å konfigurere ER-modelltilordningskomponenten.
Legg til en datakilde av typen Dynamics 365 for Operations \ Tabellposter.
Gi den nye datakilden navnet Trans. I Tabell-feltet velger du VendTrans for å angi at denne datakilden skal be om en VendTrans-tabell.
Legg til en datakilde av typen Beregnet felt som det nestede feltet i Leverandør-datakilden.
Gi den nye datakilden navnet FilteredTrans, og konfigurer den slik at den inneholder uttrykket
WHERE(Trans, Trans.AccountNum="US-101")
.Legg til en datakilde av typen Dynamics 365 for Operations \ Tabellposter.
Gi den nye datakilden navnet Leverandør. I Tabell-feltet velger VendTable for å angi at denne datakilden skal be om tabellen VendTable.
Legg til en datakilde av typen Beregnet felt.
Gi den nye datakilden navnet FilteredVendor, og konfigurer den slik at den inneholder uttrykket
WHERE(Vendor, Vendor.AccountNum="US-101")
.Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming.
Legg merke til at valideringsadvarsler anbefaler at du bruker FILTER-funksjonen i stedet for WHERE -funksjonen for datakildene FilteredVendor og FilteredTrans.
Automatisk løsning
Velg Løs for å erstatte WHERE-funksjonen med FILTER-funksjonen i uttrykket for alle datakilder som vises i rutenettet i Advarsler-fanen for denne typen inspeksjon.
Du kan også velge raden for en enkelt advarsel i rutenettet og deretter velge Rett opp valgte. I dette tilfellet endres uttrykket automatisk bare i datakilden som er nevnt i den valgte advarselen.
Manuell løsing
Du kan justere uttrykkene for alle datakildene i valideringsrutenettet, manuelt ved å erstatte WHERE-funksjonen med FILTER-funksjonen.
Funksjonen ALLITEMSQUERY foretrekkes foran ALLITEMS
De innebygde ER-funksjonene ALLITEMS og ALLITEMSQUERY returnerer utflatet Postliste-verdi som består av en liste over poster som representerer alle elementer som samsvarer med den angitte banen. ER kontrollerer om et direkte SQL-anrop kan opprettes til en datakilde som det refereres til i ALLITEMS-funksjonen. Hvis et direkteanrop kan opprettes, oppstår det en valideringsadvarsel i ER-modelltilordningsutforming. Meldingen du mottar, anbefaler at du bruker ALLITEMSQUERY-funksjonen i stedet for ALLITEMS-funksjonen for å forbedre effektiviteten.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start med å konfigurere ER-modelltilordningskomponenten.
Legg til en datakilde av typen Dynamics 365 for Operations \ Tabellposter.
Gi den nye datakilden navnet Leverandør. I Tabell-feltet velger VendTable for å angi at denne datakilden skal be om tabellen VendTable.
Legg til en datakilde av typen Beregnet felt for å hente postene for flere leverandører.
Gi den nye datakilden navnet FilteredVendor, og konfigurer den slik at den inneholder uttrykket
FILTER(Vendor, OR(Vendor.AccountNum="US-101",Vendor.AccountNum="US-102"))
.Legg til en datakilde av typen Beregnet felt for å hente transaksjonene for alle filtrerte leverandører.
Gi den nye datakilden navnet FilteredVendorTrans, og konfigurer den slik at den inneholder uttrykket
ALLITEMS(FilteredVendor.'<Relations'.'VendTrans.VendTable_AccountNum')
.Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming.
Legg merke til at det oppstår en valideringsadversel. Meldingen anbefaler at du bruker ALLITEMSQUERY-funksjonen i stedet for ALLITEMS-funksjonen for FilteredVendorTrans-datakilden.
Automatisk løsning
Velg Løs for å erstatte ALLITEMS-funksjonen med ALLITEMSQUERY-funksjonen i uttrykket for alle datakilder som vises i rutenettet i Advarsler-fanen for denne typen inspeksjon.
Du kan også velge raden for en enkelt advarsel i rutenettet og deretter velge Rett opp valgte. I dette tilfellet endres uttrykket automatisk bare i datakilden som er nevnt i den valgte advarselen.
Manuell løsing
Du kan justere uttrykkene for alle datakildene som er nevnt i valideringsrutenettet, manuelt ved å erstatte ALLITEMS-funksjonen med ALLITEMSQUERY-funksjonen.
Vurdering ved saker med tomme lister
Du kan konfigurere ER-format- eller modelltilordningskomponenten til å hente feltverdien for en datakilde av typen Postliste. ER kontrollerer om utformingen vurderer saken der en datakilde som kalles, ikke inneholder noen poster (det vil si at den er tom), for å forhindre kjøretidsfeil når en verdi hentes fra et felt for en ikke-eksisterende post.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start å konfigurere ER-datamodellen, ER-modelltilordningen og ER-formatkomponentene samtidig.
Legg til et rotelement som heter Root3, i datamodelltreet.
Endre Root3-elementet ved å legge til et nestet element av typen Postliste.
Gi den nye nestede elementet navnet Leverandør.
Endre Leverandør-elementet på følgende måte:
- Legg til et nestet felt av typen Streng, og gi det navnet Navn.
- Legg til et nestet felt av typen Streng, og gi det navnet AccountNumber.
I uformingen av modelltilordning, i Datakilder-ruten, legger du til en datakilde av typen Dynamics 365 for Operations \ Tabellposter.
Gi den nye datakilden navnet Leverandør. I Tabell-feltet velger VendTable for å angi at denne datakilden skal be om tabellen VendTable.
Legg til en datakilde av typen Generell \ Inndataparameter for å søke etter en leverandørkonto i dialogboksen for kjøretid.
Gi den nye datakilden navnet RequestedAccountNum. I feltet Etikett angir du Leverandørens kontonummer. I feltet for navn på Operations-datatype beholder du standardverdien være, Beskrivelse.
Legg til en datakilde av typen Beregnet felt for å filtrere en leverandør som det spørres om.
Gi den nye datakilden navnet FilteredVendor, og konfigurer den slik at den inneholder uttrykket
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Bind datamodellelementene til konfigurerte datakilder på følgende måte:
- Bind FilteredVendor til Leverandør.
- Bind FilteredVendor.AccountNum til Vendor.AccountNumber.
- Bind FilteredVendor.'name()' til Vendor.Name.
I formatstrukturtreet legger du til følgende elementer for å generere et utgående dokument i XML-format som inneholder leverandørdetaljene:
Legg til rot-XML-elementet Setning.
For XML-elementet Setning legger du til det nestede XML-elementet Part.
For XML-elementet Part legger du til følgende nestede XML-attributter:
- Navn
- AccountNum
Bind formatelementer til angitte datakilder på følgende måte:
- Bind formatelementet Setning\Part\Navn til datakildefeltet model.Vendor.Name.
- Bind formatelementet Setning\Part\AccountNum til datakildefeltet model.Vendor.AccountNumber.
Velg Valider for å kontrollere den redigerbare formatkomponenten på siden Formatutforming.
Legg merke til at det oppstår en valideringsfeil. Meldingen angir at det kan oppstå en feil for de konfigurerte formatkomponentene Setning\Part\Navn og Setning\Part\AccountNum under kjøring hvis listen
model.Vendor
er tom.
Følgende illustrasjon viser kjøretidsfeilen som oppstår hvis du ignorerer advarselen og velger Kjør for å kjøre formatet og velger kontonummeret for en ikke-eksisterende leverandør. Fordi den forespurte leverandøren ikke finnes, vil model.Vendor
være tom (det vil si at den ikke inneholder noen poster).
Automatisk løsning
Du kan velge Fjern binding for den valgte raden i rutenettet i fanen Advarsler. Bindingen som det pekes til i Bane-kolonnen, fjernes automatisk fra formatelementene.
Manuell løsing
Alternativ 1
Du kan binde formatelementet Setning\Part\Navn til datakildeelementet model.Vendor
. Under kjøringen kaller denne bindingen datakilden model.Vendor
først. Når model.Vendor
returnerer en tom postliste, kjøres ikke de nestede formatelementene. Det skjer derfor ingen valideringsadvarsler for denne formatkonfigurasjonen.
Alternativ 2
Endre bindingen for formatelementet Setning\Part\Navn fra model.Vendor.Name
til FIRSTORNULL(model.Vendor).Name
. Den oppdaterte bindingen utfører en betinget konvertering av den første posten av datakilden model.Vendor
av typen Postliste til en ny datakilde av typen Post. Den nye datakilden inneholder samme sett med felt.
- Hvis minst én post er tilgjengelig i datakilden
model.Vendor
, fylles feltene i denne oppføringen ut med verdiene i feltene for den første posten i datakildenmodel.Vendor
. I dette tilfellet vil den oppdaterte bindingen returnere leverandørnavnet. - Ellers blir hvert felt i posten som opprettes, fylt med standardverdien for datatypen til det feltet. I dette tilfellet returneres den tomme strengen som standardverdi for Streng-datatypen.
Det oppstår derfor ingen valideringsadvarsler for området for Setning\Part\Navn-formatelementet når det er bundet til uttrykket FIRSTORNULL(model.Vendor).Name
.
Alternativ 3
Hvis du eksplisitt vil angi dataene som legges inn i et generert dokument når datakilden model.Vendor
for typen Postliste returnerer ingen poster (teksten Ikke tilgjengelig i dette eksemplet), endrer du bindingen for Setning\Part\Navn fra model.Vendor.Name
til IF(NOT(ISEMPTY(model.Vendor)), model.Vendor.Name, "Not available")
. Du kan også bruke uttrykket IF(COUNT(model.Vendor)=0, model.Vendor.Name, "Not available")
.
Tilleggsvurdering
Inspeksjon advarer også om et annet mulig problem. Når du binder Setning\Part\Navn og Setning\Part\AccountNum til de riktige feltene i datakilden model.Vendor
av typen Postliste, blir disse bindingene som standard kjørt og tar verdiene i de aktuelle feltene for den første posten i datakilden model.Vendor
, hvis listen ikke er tom.
Fordi du ikke har bundet Setning\Part til datakilden model.Vendor
, vil ikke Setning\Part-elementet gjentas for hver post i datakilden model.Vendor
under formateringskjøring. I stedet blir et generert dokument fylt ut med informasjon fra bare den første posten i postlisten, hvis listen inneholder flere poster. Derfor kan det være et problem hvis formatet skal fylle et generert dokument med informasjon om alle leverandørene fra datakilden model.Vendor
. Du kan løse dette problemet ved å binde Setning\Part-elementet til datakilden model.Vendor
.
Utføring av et uttrykk med FILTER-funksjon (bufring)
Flere innebygde ER-funksjoner, inkludert FILTER og ALLITEMSQUERY, brukes til å få tilgang til programtabeller, visninger eller dataenheter ved å plassere ett enkelt SQL-kall for å hente de nødvendige dataene som en liste med poster. En datakilde av Postliste-typen brukes som et argument for hver av disse funksjonene og angir en programkilde for kallet. ER kontrollerer om et direkte SQL-anrop kan opprettes til en datakilde som det refereres til i én av disse funksjonene. Hvis et direkteanrop ikke kan opprettes fordi datakilden ble merket som bufret, oppstår det en valideringsfeil i ER-modelltilordningsutforming. Meldingen du mottar, sier at ER-uttrykket som inneholder én av disse funksjonene, ikke kan kjøres under kjøring.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start med å konfigurere ER-modelltilordningskomponenten.
Legg til en datakilde av typen Dynamics 365 for Operations \ Tabellposter.
Gi den nye datakilden navnet Leverandør. I Tabell-feltet velger VendTable for å angi at denne datakilden skal be om tabellen VendTable.
Legg til en datakilde av typen Generell \ Inndataparameter for å søke etter en leverandørkonto i dialogboksen for kjøretid.
Gi den nye datakilden navnet RequestedAccountNum. I feltet Etikett angir du Leverandørens kontonummer. I feltet for navn på Operations-datatype beholder du standardverdien være, Beskrivelse.
Legg til en datakilde av typen Beregnet felt for å filtrere en leverandør som det spørres om.
Gi den nye datakilden navnet FilteredVendor, og konfigurer den slik at den inneholder uttrykket
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Merk den konfigurerte Leverandør-datakilden som hurtigbufret.
Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming.
Legg merke til at det oppstår en valideringsfeil. Meldingen angir at FILTER-funksjonen ikke kan brukes på den bufrede Leverandør-datakilden.
Følgende illustrasjon viser kjøretidsfeilen som oppstår hvis du ignorerer advarselen og velger Kjør for å kjøre formatet.
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Alternativ 1
Fjern Buffer-flagget fra Leverandør-datakilden. Datakilden FilteredVendor vil deretter bli kjørbar, men Leverandør-datakilden som det refereres til i tabellen VendTable, vil bli brukt hver gang FilteredVendor-dsatakilden kalles.
Alternativ 2
Endre uttrykket for FilteredVendor-datakilden fra FILTER(Vendor, Vendor.AccountNum="US-101")
til WHERE(Vendor, Vendor.AccountNum="US-101")
. I dette tilfellet vil datakilden Leverandør som det henvises til i tabellen VendTable, bare brukes i det første kallet til Leverandør-datakilden. Valget av poster vil imidlertid bli utført i minnet. Derfor kan denne fremgangsmåten føre til dårlig ytelse.
Manglende binding
Når du konfigurerer en ER-formatkomponent, tilbys den grunnleggende ER-datamodellen som en standard datakilde for ER-formatet. Når det konfigurerte ER-formatet kjøres, brukes standard modelltilordning for den grunnleggende modellen til å fylle datamodellen med programdata. ER-formatutformingen viser en advarsel hvis du binder et formatelement til et datamodellelement som ikke er bundet til en datakilde i modelltilordningen som for øyeblikket er valgt som standardmodelltilordning for det redigerbare formatet. Denne typen bindinger kan ikke kjøres under kjøring, fordi formatet som kjøres, ikke kan fylle et bundet element med programdata. Derfor oppstår det en feil under kjøring.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start å konfigurere ER-datamodellen, ER-modelltilordningen og ER-formatkomponentene samtidig.
Legg til et rotelement som heter Root3, i datamodelltreet.
Endre Root3-elementet ved å legge til et nytt nestet element av typen Postliste.
Gi den nye nestede elementet navnet Leverandør.
Endre Leverandør-elementet på følgende måte:
- Legg til et nestet felt av typen Streng, og gi det navnet Navn.
- Legg til et nestet felt av typen Streng, og gi det navnet AccountNumber.
I uformingen av modelltilordning, i Datakilder-ruten, legger du til en datakilde av typen Dynamics 365 for Operations \ Tabellposter.
Gi den nye datakilden navnet Leverandør. I Tabell-feltet velger VendTable for å angi at denne datakilden skal be om tabellen VendTable.
Legg til en datakilde av typen Generell \ Inndataparameter for å spørre om en leverandørkonto i dialogboksen for kjøretid.
Gi den nye datakilden navnet RequestedAccountNum. I feltet Etikett angir du Leverandørens kontonummer. I feltet for navn på Operations-datatype beholder du standardverdien være, Beskrivelse.
Legg til en datakilde av typen Beregnet felt for å filtrere en leverandør som det spørres om.
Gi den nye datakilden navnet FilteredVendor, og konfigurer den slik at den inneholder uttrykket
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Bind datamodellelementene til konfigurerte datakilder på følgende måte:
- Bind FilteredVendor til Leverandør.
- Bind FilteredVendor.AccountNum til Vendor.AccountNumber.
Notat
Datamodellfeltet Vendor.Name forblir ubundet.
I formatstrukturtreet legger du til følgende elementer for å generere et utgående dokument i XML-format som inneholder detaljene for leverandører som det spørres om:
Legg til rot-XML-elementet Setning.
For XML-elementet Setning legger du til det nestede XML-elementet Part.
For XML-elementet Part legger du til følgende nestede XML-attributter:
- Navn
- AccountNum
Bind formatelementene til angitte datakilder på følgende måte:
- Bind formatelementet Setning\Part til datakildeelementet
model.Vendor
. - Bind formatelementet Setning\Part\Navn til datakildefeltet model.Vendor.Name.
- Bind formatelementet Setning\Part\AccountNum til datakildefeltet model.Vendor.AccountNumber.
- Bind formatelementet Setning\Part til datakildeelementet
Velg Valider for å kontrollere den redigerbare formatkomponenten på siden Formatutforming.
Legg merke til at det oppstår en valideringsadversel. Meldingen angir at model.Vendor.Name-datakildefeltet ikke er bundet til en datakilde i modelltilordningen som er konfigurert til å brukes av formatet. Derfor kan det hende at Setning\Part\Navn ikke fylles under kjøring, og det kan oppstå et kjøretidsunntak.
Følgende illustrasjon viser kjøretidsfeilen som oppstår hvis du ignorerer advarselen og velger Kjør for å kjøre formatet.
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Alternativ 1
Endre den konfigurerte modelltilordningen ved å legge til en binding for model.Vendor.Name-datakildefeltet.
Alternativ 2
Endre det konfigurerte formatet ved å fjerne bindingen for formatelementet Setning\Part\Navn.
Ikke koblet mal
Når du manuelt konfigurerer en ER-formatkomponent til å bruke en mal til å generere et utgående dokument, må du legge til Excel\Fil-elementet manuelt, legge til den nødvendige malen som et vedlegg til den redigerbare komponenten og velge dette vedlegget i det nye Excel\Fil-elementet. På denne måten angir du at elementet som er lagt til, vil fylle den valgte malen under kjøring. Når du konfigurerer en formatkomponentversjon i Utkast-status, kan du legge til flere maler i den redigerbare komponenten, og deretter velge hver mal i elementet Excel\Fil for å kjøre ER-formatet. På denne måten kan du se hvordan forskjellige maler fylles under kjøring. Hvis du har maler som ikke er valgt i noen Excel\Fil-elementer, varsler ER-formatutformingen om at disse malene vil bli slettet fra den redigerbare ER-formatkomponentversjonen når statusen endres fra Utkast til Fullført.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start med å konfigurere ER-formatkomponenten.
I formatstrukturtreet legger du til Excel\Fil-elementet.
For Excel\Fil-elementet du nettopp la til, legger du til en Excel-arbeidsbokfil, A.xlsx, som et vedlegg. Bruk dokumenttypen som er konfigurert i ER-parameterne for å angi lagring for ER-formatmalene.
For Excel\Fil-elementet legger du til en ny Excel-arbeidsbokfil, B.xlsx, som et vedlegg. Bruk samme dokumenttype som brukes for arbeidsbokfil A.
I Excel\Fil-elementet velger du arbeidsbokfil A.
Velg Valider for å kontrollere den redigerbare formatkomponenten på siden Formatutforming.
Legg merke til at det oppstår en valideringsadversel. Meldingen angir at arbeidsbokfilen B. xlsx ikke er koblet til noen komponenter, og at den vil bli fjernet etter at statusen for konfigurasjonsversjonen er endret.
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Endre det konfigurerte formatet ved å fjerne alle maler som ikke er koblet til et Excel\Fil-element.
Ikke synkronisert format
Når du konfigurerer en ER-formatkomponent til å bruke en Excel-mal for å generere et utgående dokument, kan du legge til Excel\Fil-elementet manuelt, legge til den nødvendige malen som et vedlegg til den redigerbare komponenten og velge dette vedlegget i det nye Excel\Fil-elementet. På denne måten angir du at elementet som er lagt til, vil fylle den valgte malen under kjøring. Fordi den tillagte Excel-malen er utformet eksternt, kan det hende at det redigerbare ER-formatet inneholder Excel-navn som mangler i malen som er lagt til. ER-formatutformingen advarer deg om eventuelle inkonsekvenser mellom egenskapene til ER-formatelementer som refererer til navn som ikke er inkludert i Excel-malen som er lagt til.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start med å konfigurere ER-formatkomponenten.
I formatstrukturtreet legger du til Excel\Fil-elementet Rapport.
For Excel\Fil-elementet du nettopp la til, legger du til en Excel-arbeidsbokfil, A.xlsx, som et vedlegg. Bruk dokumenttypen som er konfigurert i ER-parameterne for å angi lagring for ER-formatmalene.
Viktig
Kontroller at Excel-arbeidsboken som er lagt til, ikke inneholder navnet ReportTitle.
Legg til Excel\Celle-elementet Tittel som et nestet element i elementet Rapport. I feltet Excel-område angir du ReportTitle.
Velg Valider for å kontrollere den redigerbare formatkomponenten på siden Formatutforming.
Legg merke til at det oppstår en valideringsadversel. Meldingen angir at navnet ReportTitle ikke finnes på arket Ark1 i Excel-malen du bruker.
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Alternativ 1
Endre det konfigurerte formatet ved å fjerne alle elementer som refererer til Excel-navn som mangler i malen.
Alternativ 2
Oppdater det redigerbare ER-formatet ved å importere en Excel-mal. Strukturen til det redigerbare ER-formatet synkroniseres med strukturen til den importerte Excel-malen.
Tilleggsvurdering
Hvis du vil lære hvordan formateringsstrukturen kan synkroniseres med en ER-mal i malredigeringsprogrammet for Behandling av forretningsdokument, kan du se Oppdatere strukturen for en forretningsdokumentmal.
Ikke synkronisert med et Word-malformat
Når du konfigurerer en ER-formatkomponent til å bruke en Word-mal til å generere et utgående dokument, kan du legge til Excel\Fil-elementet manuelt, legge til den nødvendige Word-malen som et vedlegg til den redigerbare komponenten og velge dette vedlegget i det nye Excel\Fil-elementet.
Notat
Når Word-dokumentet er vedlagt, presenterer ER-formatutformingen det redigerbare elementet som Word\Fil.
På denne måten angir du at elementet som er lagt til, vil fylle den valgte malen under kjøring. Fordi den tillagte Word-malen er utformet eksternt, kan det hende at det redigerbare ER-formatet inneholder referanser til Word-innholdskontroller som mangler i malen som er lagt til. ER-formatutformingen advarer deg om eventuelle inkonsekvenser mellom egenskapene til ER-formatelementer som refererer til innholdskontroller som ikke er inkludert i Word-malen som er lagt til.
Hvis du vil ha et eksempel som viser hvordan dette problemet kan forekomme, kan du se Konfigurere det redigerbare formatet for å skjule sammendragsdelen.
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Alternativ 1
Endre det konfigurerte formatet ved å slette formelen Fjernet fra formatelementet som er nevnt i valideringsvarselet.
Alternativ 2
Endre Word-malen som brukes, ved å legge til den obligatoriske koden i den relevante Word-innholdskontrollen.
Ingen standardtilordning
Når inspeksjonen Manglende binding utføres, evalueres de kontrollerte formatbindingene mot bindingene til den relevante modelltilordningskomponenten. Ettersom du kan importere flere ER-modelltilordningskonfigurasjoner til Finance-forekomsten, og hver konfigurasjon kan inneholde den aktuelle modelltilordningskomponenten, må du velge én konfigurasjon som standardkonfigurasjon. Hvis du prøver å kjøre, redigere eller validere det kontrollerte ER-formatet, skjer det et unntak, og du får følgende melding: "Det finnes flere modeller for tilordning av datamodellen i <model name (root descriptor)> i konfigurasjonene <configuration names separated by comma>. Angi én av konfigurasjonene som standard.
Hvis du vil ha et eksempel som viser hvordan dette problemet kan oppstå og hvordan det kan ordnes, kan du se Behandle flere avledede tilordninger for én modellrot.
Inkonsekvent innstilling for komponentene Topptekst eller Bbunntekst
Når du konfigurerer en ER-formatkomponent til å bruke en Excel-mal til å generere et utgående dokument, kan du legge til komponenten Excel\Topptekst for å fylle ut topptekster øverst i et regneark i en Excel-arbeidsbok. Du kan også legge til komponenten Excel\Bunntekst for å fylle ut bunntekster nederst i et regneark. For hver komponent av typen Excel\Topptekst eller Excel\Bunntekst du legger til, må du gi egenskapen Utseende for topptekst/bunntekst en verdi for å angi sidene som komponenten skal kjøres for. Ettersom du kan konfigurere flere komponenter av typen Excel\Topptekst eller Excel\Bunntekst for én komponent av typen Ark, og du kan generere ulike topptekster eller bunntekster for forskjellige typer sider i et Excel-regneark, må du konfigurere én komponent av typen Excel\Topptekst eller Excel\Bunntekst for en bestemt verdi for egenskapen Utseende for topptekst/bunntekst. Hvis mer enn én komponent av typen Excel\Topptekst eller Excel\Bunntekst blir konfigurert for en bestemt verdi for egenskapen Utseende for topptekst/bunntekst, det oppstår en valideringsfeil og du får følgende feilmelding: "Topptekster/bunntekster (<komponenttype: Topptekst eller Bunntekst>) samsvarer ikke."
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Alternativ 1
Endre det konfigurerte formatet ved å slette en av de inkonsekvente komponentene av typen Excel\Topptekst eller Excel\Bunntekst.
Alternativ 2
Endre verdien for egenskapen Utseende for topptekst/bunntekst for en av de inkonsekvente komponentene av typen Excel\Topptekst eller Excel\Bunntekst.
Inkonsekvent innstilling av sidekomponent
Når du konfigurerer en ER-formatkomponent til å bruke en Excel-mal til å generere et utgående dokument, kan du legge til Excel\-side-komponenten for å paginere et generert dokument ved å bruke ER-formler. For hver Excel\-side-komponent du legger til, kan du legge til mange nestede Område-komponenter og likevel være kompatibel med følgende struktur:
- Den første nestede Område-komponenten kan konfigureres slik at egenskapen Replikeringsretning settes til Ingen replikasjon. Dette området brukes til å lage sidehoder i genererte dokumenter.
- Du kan legge til mange andre nestede Område-komponenter der egenskapen Replikeringsretning er satt til Loddrett. Disse områdene brukes til å fylle ut genererte dokumenter.
- Den siste nestede Område-komponenten kan konfigureres slik at egenskapen Replikeringsretning settes til Ingen replikasjon. Dette området brukes til å lage bunntekster på sider i genererte dokumenter og til å legge til de nødvendige sideskiftene.
Hvis du ikke følger denne strukturen for et ER-format i ER-formatdesigneren ved utforming, oppstår det en valideringsfeil, og du får følgende feilmelding: "Det er mer enn to områdekomponenter uten replikering. Fjern unødvendige komponenter".
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Alternativ 1
Endre det konfigurerte formatet ved å endre egenskapen Replikeringsretning for alle inkonsekvente Excel\-område-komponenter.
Utføring av et uttrykk med ORDERBY-funksjon
Den innebygde ORDERBY ER-funksjonen brukes til å sortere postene for en ER-datakilde for typen Postliste som er angitt som et argument for funksjonen.
Argumenter for ORDERBY
-funksjonen kan angis til å sortere poster for apptabeller, visninger eller dataenheter ved å plassere ett enkelt databasekall for å hente de sorterte dataene som en liste over poster. En datakilde for Postliste-typen brukes som et argument av funksjonen, og angir appkilden for kallet.
ER kontrollerer om en direkte databasespørring kan opprettes til en datakilde som det refereres til i ORDERBY
-funksjonen. Hvis en direktespørring ikke kan opprettes, oppstår det en valideringsfeil i ER-modelltilordningsutforming. Meldingen du mottar, sier at ER-uttrykket som inneholder funksjonen ORDERBY
, ikke kan kjøres under kjøring.
Fremgangsmåten nedenfor viser hvordan dette problemet kan oppstå.
Start med å konfigurere ER-modelltilordningskomponenten.
Legg til en datakilde av typen Dynamics 365 for Operations \ Tabellposter.
Gi den nye datakilden navnet Leverandør. I Table-feltet velger du VendTable for å angi at denne datakilden skal be om tabellen VendTable.
Legg til en datakilde av typen Beregnet felt.
Gi den nye datakilden navnet OrderedVendors, og konfigurer den slik at den inneholder uttrykket
ORDERBY("Query", Vendor, Vendor.AccountNum)
.Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming, og kontroller at uttrykket i OrderedVendors-datakilden kan spørres.
Endre Leverandør-datakilden ved å legge til et nestet felt av typen Beregnet felt for å hente det relevante leverandørkontonummeret.
Gi det nye nestede feltet navnet $AccNumber, og konfigurer det, slik at det inneholder uttrykket
TRIM(Vendor.AccountNum)
.Velg Valider for å kontrollere den redigerbare modelltilordningskomponenten på siden Modelltilordningsutforming, og kontroller at uttrykket i Leverandør-datakilden kan spørres.
Legg merke til at det oppstår en valideringsfeil, fordi Leverandør-datakilden inneholder et nestet felt av typen Beregnet felt som ikke tillater at uttrykket for datakilden OrderedVendors oversettes til den direkte databasesetningen. Den samme feilen skjer ved kjøretid hvis du ignorerer valideringsfeilen og velger Kjør for å kjøre denne modelltilordningen.
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Alternativ 1
I stedet for å legge til et nestet felt av typen Beregnet felt i datakilden Leverandør legger du til det nestede feltet $AccNumber i datakilden FilteredVendors og konfigurerer feltet, slik at det inneholder uttrykket TRIM(FilteredVendor.AccountNum)
. På denne måten kan uttrykket ORDERBY("Query", Vendor, Vendor.AccountNum)
kjøres på databasenivå, og beregnningen av det nestede feltet $AccNumber kan utføres etterpå.
Alternativ 2
Endre uttrykket for FilteredVendors-datakilden fra ORDERBY("Query", Vendor, Vendor.AccountNum)
til ORDERBY("InMemory", Vendor, Vendor.AccountNum)
. Vi ikke anbefaler at du endrer uttrykket for en tabell som har et stort datavolum (transaksjonstabell), fordi alle postene vil bli hentet, og sorteringen av nødvendige poster vil bli utført i minnet. Derfor kan denne fremgangsmåten føre til dårlig ytelse.
Foreldet appartefakt
Når du utformer en ER-modelltilordningskomponent eller en ER-formatkomponent, kan du konfigurere et ER-uttrykk til å kalle en appartefakt i ER, for eksempel en databasetabell, en metode for en klasse osv. I Finance versjon 10.0.30 og senere kan du tvinge ER til å advare deg om at den artefakten som det refereres til, er merket i kildekoden som foreldet. Denne advarselen kan være nyttig, fordi foreldede artefakter til slutt vanligvis fjernes fra kildekoden. Hvis du blir informert om statusen til en artefakt, kan du slutte å bruke den foreldede artefakten i den redigerbare ER-komponenten før den fjernes fra kildekoden, noe som forhindrer at du kaller ikke-eksisterende programartefakter fra en ER-komponent ved kjøretid.
Aktiver funksjonen Valider foreldede elementer for datakilder for elektronisk rapportering i Funksjonsbehandling for å begynne å evaluere det foreldede attributtet til appartefakter under inspeksjonen av en redigerbar ER-komponent. Det foreldede attributtet evalueres for følgende typer appartefakter:
- Databasetabell
- Felt i en tabell
- Metode i en tabell
- Appklasse
- Metode i en klasse
Notat
Det vises en advarsel under inspeksjonen av den redigerbare ER-komponenten for en datakilde som refererer til en foreldet artefakt bare når denne datakilden brukes i minst én bindende verdi av denne ER-komponenten.
Tips!
Når SysObsoleteAttribute-klassen brukes til å varsle kompilatoren om å utstede advarselsmeldinger i stedet for feil, viser inspeksjonsvarslingen den angitte advarselen i kildekoden ved utformingstidspunktet på hurtigfanen Detaljer på siden Modelltilordningsutforming eller Formatutforming.
Illustrasjonen nedenfor viser valideringsvarselingen som skjer når det foreldede DEL_Email
-feltet i CompanyInfo
-apptabellen er bundet til et datamodellfelt ved å bruke den konfigurerte company
-datakilden.
Automatisk løsning
Ingen alternativer for automatisk korrigering av dette problemet er tilgjengelig.
Manuell løsing
Endre den konfigurerte modelltilordningen eller formatet ved å fjerne alle bindinger til en datakilde som refererer til en foreldet appartefakt.
Tilleggsressurser
Bruke JOIN-datakilder til å hente data fra flere programtabeller i ER-modelltilordninger
Spore kjøringen av ER-formater for å feilsøke ytelsesproblemer
Oversikt over administrasjon av forretningsdokument