Sprawdzanie skonfigurowanego składnika ER, aby zapobiec problemom w czasie wykonywania
Każdy skonfigurowany składnik modułu Raportowanie elektroniczne (ER)w postaci formatu i mapowania modelu może być weryfikowany w czasie projektowania. Podczas tego sprawdzania spójności jest uruchamiane sprawdzanie spójności w celu uniknięcia problemów, które mogą wystąpić w czasie wykonywania, takich jak błędy wykonywania i pogorszenie wydajności. Dla każdego znalezionego problemu test podaje ścieżkę do problematycznego elementu. W przypadku niektórych problemów jest dostępna automatyczna poprawka.
Domyślnie sprawdzanie poprawności jest stosowane automatycznie w następujących przypadkach dla konfiguracji ER, która zawiera wspomniane wcześniej składniki ER:
- Importujesz nową wersję konfiguracji ER do wystąpienia rozwiązania Microsoft Dynamics 365 Finance.
- Zmieniasz stan edytowalnej konfiguracji ER z Wersja robocza na Ukończono.
- Zmieniasz podstawę edytowalnej konfiguracji ER poprzez zastosowanie nowej wersji bazowej.
To sprawdzenie poprawności można uruchomić jawnie. Wybierz jedną z następujących trzech opcji i wykonaj podane kroki:
Opcja 1:
- Przejdź do opcji Administrowanie organizacją > Raporty elektroniczne > Konfiguracje.
- W drzewie konfiguracje w lewym okienku wybierz żądaną konfigurację ER, która zawiera składnik w postaci formatu ER lub mapowania modelu ER.
- Na skróconej karcie Wersje wybierz żądaną wersję wybranej konfiguracji ER.
- W okienku akcji wybierz pozycję Weryfikacja.
Opcja 2, w przypadku formatu ER:
- Przejdź do opcji Administrowanie organizacją > Raporty elektroniczne > Konfiguracje.
- W drzewie konfiguracje w lewym okienku wybierz żądaną konfigurację ER, która zawiera składnik w postaci formatu ER.
- Na skróconej karcie Wersje wybierz żądaną wersję wybranej konfiguracji ER.
- W okienku akcji wybierz opcję Projektant.
- Na stronie Projektant formatów w okienku akcji wybierz opcję Weryfikuj.
Opcja 3, w przypadku mapowania modelu ER:
- Przejdź do opcji Administrowanie organizacją > Raporty elektroniczne > Konfiguracje.
- W drzewie konfiguracje w lewym okienku wybierz żądaną konfigurację ER, która zawiera składnik w postaci mapowania modelu ER.
- Na skróconej karcie Wersje wybierz żądaną wersję wybranej konfiguracji ER.
- W okienku akcji wybierz opcję Projektant.
- Wybierz opcję Projektant w okienku akcji, aby otworzyć stronę Modelowanie do mapowania źródła danych.
- Na stronie Projektant mapowania modelu w okienku akcji wybierz opcję Weryfikuj.
Aby pominąć sprawdzanie poprawności podczas importowania konfiguracji, wykonaj następujące kroki.
- Przejdź do opcji Administrowanie organizacją > Raporty elektroniczne > Konfiguracje.
- Na stronie Konfiguracje w okienku akcji na karcie Konfiguracje w grupie Ustawienia zaawansowane wybierz opcję Parametry użytkownika.
- W opcji Weryfikuj konfigurację po zaimportowaniu ustaw wartość Nie.
Aby pominąć walidację w przypadku zmiany stanu lub jej podstawy (bazy) wersji, wykonaj następujące kroki.
- Przejdź do opcji Administrowanie organizacją > Raporty elektroniczne > Konfiguracje.
- Na stronie Konfiguracje w okienku akcji na karcie Konfiguracje w grupie Ustawienia zaawansowane wybierz opcję Parametry użytkownika.
- W opcji Pomiń weryfikację przy zmianie stanu konfiguracji i zmianie bazy ustaw wartość Tak.
Moduł ER grupuje inspekcje sprawdzające spójność w następujące kategorie:
- Wykonywalność — inspekcje wykrywające krytyczne problemy, które mogą wystąpić w czasie wykonywania. Te problemy są najczęściej na poziomie Błąd.
- Wydajność — inspekcje wykrywające problemy, które mogą spowodować nieefektywne wykonanie skonfigurowanych składników ER. Te problemy są najczęściej na poziomie Ostrzeżenie.
- Integralność danych — inspekcje wykrywające problemy, które mogą spowodować utratę danych lub problemy w czasie wykonywania. Te problemy są najczęściej na poziomie Ostrzeżenie.
Lista inspekcji
W poniższej tabeli znajduje się omówienie inspekcji dostępnych w module ER. Aby uzyskać więcej informacji dotyczących tych inspekcji, skorzystaj z łączy w pierwszej kolumnie, które powodują przejście do odpowiednich sekcji tego artykułu. W tych sekcjach objaśniono typy składników, dla których są dostępne inspekcje w module ER, oraz sposób rekonfigurowania składników ER w celu lepszego zapobiegania problemom.
Imię i nazwisko | Kategoria | Poziom | Komunikat |
---|---|---|---|
Konwersja typu | Wykonywalność | Wadliwe |
Nie można przekształcić wyrażenia typu <typ> na pole typu <typ>. Błąd czasu wykonywania: Wyjątek dla typu |
Zgodność typu | Wykonywalność | Wadliwe |
Skonfigurowanego wyrażenia nie można użyć do powiązania bieżącego elementu formatu ze źródłem danych, ponieważ to wyrażenie zwraca wartość o typie danych <typ>, która jest poza zakresem typów danych obsługiwanych przez bieżący element formatu o typie <typ>. Błąd czasu wykonywania: Wyjątek o danym typie |
Brak elementu konfiguracji | Wykonywalność | Wadliwe |
Nie znaleziono ścieżki <ścieżka>. Błąd czasu wykonywania: Nie znaleziono elementu konfiguracji <ścieżka> |
Wykonywalność wyrażenia z funkcją FILTER | Wykonywalność | Wadliwe |
Wyrażenie listy funkcji FILTER nie jest odpytywalne. Błąd czasu wykonywania: Filtrowanie nie jest obsługiwane. Aby uzyskać więcej szczegółowych informacji na ten temat, sprawdź poprawność konfiguracji. |
Wykonywalność źródła danych typu GROUPBY | Wykonywalność | Wadliwe | Ścieżka <ścieżka> nie obsługuje wykonywania zapytań. |
Wykonywalność | Wadliwe |
Funkcji Grupuj wg nie można wykonać przy użyciu kwerendy. Błąd czasu wykonywania: Funkcji Grupuj wg nie można wykonać przy użyciu kwerendy. |
|
Wykonywalność źródła danych typu JOIN | Wykonywalność | Wadliwe |
Nie można dołączyć do listy <ścieżka>, która nie jest filtrem w zapytaniu. Błąd czasu wykonywania: Funkcja Połączone źródło danych musi być wyrażeniem filtru. Pole obliczeniowe zostało błędnie wywołane. |
Preferowanie funkcji FILTER wobec WHERE | Wydajność | Ostrzeżenie | Z perspektywy wydajności lepiej w wyrażeniu używać funkcji FILTER niż WHERE. Wybierz opcję Napraw, aby zamienić automatycznie. |
Preferowanie funkcji ALLITEMSQUERY wobec ALLITEMS | Wydajność | Ostrzeżenie | Z perspektywy wydajności lepiej w wyrażeniu używać funkcji ALLITEMSQUERY niż ALLITEMS. Wybierz opcję Napraw, aby zamienić automatycznie. |
Uwagi dotyczące przypadków z pustymi listami | Wykonywalność | Ostrzeżenie |
Lista <ścieżka> nie ma żadnych opcji sprawdzania dla przypadków z pustymi listami. Może to spowodować błąd w czasie wykonywania. Dodaj opcję sprawdzania występowania przypadków z pustymi listami. Błąd czasu wykonywania: Lista w <ścieżka> jest pusta Potencjalny problem: Wiersz jest wypełniany jeden raz, podczas gdy źródło danych zawiera wiele rekordów |
Wykonywalność wyrażenia z funkcją FILTER (buforowanie) | Wykonywalność | Wadliwe |
Funkcji FILTER nie można zastosować do wybranego typu źródła danych. Źródło danych typu Rekordy tabeli ma zastosowanie tylko wtedy, gdy nie jest buforowane i nie ma ręcznie dodanych zagnieżdżonych źródeł danych. Błąd czasu wykonywania: Filtrowanie nie jest obsługiwane. Aby uzyskać więcej szczegółowych informacji na ten temat, sprawdź poprawność konfiguracji. |
Brak powiązania | Wykonywalność | Ostrzeżenie |
Ścieżka <ścieżka> nie ma powiązania z żadnym źródłem danych podczas używania mapowania modelu. Błąd czasu wykonywania: Ścieżka <ścieżka> nie jest powiązana |
Niepołączony szablon | Integralność danych | Ostrzeżenie | Plik <nazwa> nie jest połączony z żadnymi składnikami plikowymi i zostanie usunięty po zmianie stanu wersji konfiguracji. |
Niezsynchronizowany format | Integralność danych | Ostrzeżenie | Zdefiniowana nazwa <nazwa składnika> nie istnieje w arkuszu programu Excel <nazwa arkusza> |
Niezsynchronizowany format | Integralność danych | Ostrzeżenie |
Tag <Znacznik formantu zawartości programu Word> nie istnieje w pliku szablonu programu Word Błąd uruchamiania:<Znacznik formantu zawartości> programu Word otagowanego nie istnieje w pliku szablonu programu Word. |
brak domyślnego mapowania | Integralność danych | Wadliwe |
Dla modelu danych o nazwie <modelu (deskryptor główny)> istnieje więcej niż jedno mapowanie modelu w nazwach <konfiguracji rozdzielonych przecinkami>. Ustaw jedną z konfiguracji jako domyślną Błąd uruchamiania: Dla modelu danych o nazwie <modelu (deskryptor główny)> istnieje więcej niż jedno mapowanie modelu w nazwach <konfiguracji rozdzielonych przecinkami>. Ustaw jedną z konfiguracji jako domyślną. |
Niespójne ustawienie składników nagłówka lub stopki | Integralność danych | Wadliwe |
Nagłówki/stopki (<typ składnika: nagłówek lub stopka>) są niespójne Środowisko uruchomieniowe: Jeśli zostanie wykonana wersja robocza skonfigurowanego formatu ER, ostatni skonfigurowany składnik jest używany w czasie wykonywania. |
Niespójne ustawienie składnika Strona | Integralność danych | Wadliwe | Istnieją co najmniej dwa składniki zakresu bez replikacji. Usuń zbędne składniki. |
Wykonywalność wyrażenia z funkcją ORDERBY | Wykonywalność | Błąd |
Wyrażenie listy funkcji ORDERBY nie jest odpytywalne. Błąd czasu wykonywania: Sortowanie nie jest obsługiwane. Aby uzyskać więcej szczegółowych informacji na ten temat, sprawdź poprawność konfiguracji. |
Przestarzały artefakt aplikacji | Integralność danych | Ostrzeżenie |
Element <ścieżka> jest oznaczony jako przestarzały. Przykład błędu środowiska uruchomieniowego: Nie znaleziono klasy „<ścieżka>”. |
Konwersja typu
W module ER następuje sprawdzenie, czy typ danych pola modelu danych jest zgodny z typem danych wyrażenia skonfigurowanego jako powiązanie tego pola. Jeśli typy danych są niezgodne, w projektancie mapowania modelu ER wystąpi błąd sprawdzania poprawności. Odebrany komunikat stwierdza, że moduł ER nie może przekonwertować wyrażenia typu A na pole typu B.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Rozpocznij konfigurowanie jednocześnie modelu danych ER i składników mapowania modelu ER.
W drzewie modelu danych dodaj pole o nazwie X i jako typ danych wybierz opcję Liczba całkowita.
W projektancie mapowania modelu w okienku Źródła danych dodaj źródło danych typu Pole obliczeniowe.
Nazwij nowe źródło danych Y i skonfiguruj je tak, aby zawierało wyrażenie
INTVALUE(100)
.Powiąż X z Y.
W projektancie modelu danych zmień typ danych pola X z Liczba całkowita na Int64.
Wybierz pozycję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu.
Wybierz opcję Weryfikuj, aby przeprowadzić inspekcję składnika mapowania modelu wybranej konfiguracji ER na stronie Konfiguracje.
Zauważ, że występuje błąd sprawdzania poprawności. Komunikat stwierdza, że wartość typu Liczba całkowita zwracana przez wyrażenie
INTVALUE(100)
źródła danych Y nie może być przechowywana w polu modelu danych X o typie Int64.
Na poniższej ilustracji przedstawiono błąd czasu wykonywania, który występuje w przypadku zignorowania ostrzeżenia i wybrania opcji Uruchom w celu uruchomienia formatu skonfigurowanego do używania mapowania modelu.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Opcja 1
Zaktualizuj strukturę modelu danych, zmieniając typ danych pola modelu danych, tak aby odpowiadał on typowi danych wyrażenia skonfigurowanego dla powiązania tego pola. W poprzednim przykładzie typ danych pola X musi zostać zmieniony z powrotem na Liczba całkowita.
Opcja 2
Zaktualizuj mapowanie modelu, zmieniając wyrażenie źródła danych powiązanego z polem modelu danych. W poprzednim przykładzie wyrażenie źródła danych Y musi zostać zmienione na INT64VALUE(100)
.
Zgodność typu
W module ER następuje sprawdzenie, czy typ danych elementu formatu jest zgodny z typem danych wyrażenia skonfigurowanego jako powiązanie tego elementu formatu. Jeśli typy danych są niezgodne, w projektancie operacji ER wystąpi błąd sprawdzania poprawności. Odebrany komunikat stwierdza, że skonfigurowanego wyrażenia nie można użyć do powiązania bieżącego elementu formatu ze źródłem danych, ponieważ wyrażenie zwraca wartość o typie danych A, która jest poza zakresem typów danych obsługiwanych przez bieżący element formatu o typie B.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Rozpocznij konfigurowanie jednocześnie modelu danych ER i składników formatu ER.
W drzewie modelu danych dodaj pole o nazwie X i jako typ danych wybierz opcję Liczba całkowita.
W drzewie struktury formatu dodaj element formatu o typie Liczbowe.
Nadaj nowemu elementowi formatu nazwę Y . W polu Typ liczbowy jako typ danych wybierz opcję Liczba całkowita.
Powiąż X z Y.
W drzewie struktury formatu zmień typ danych elementu formatu Y z Liczba całkowita na Int64.
Wybierz pozycję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika formatu na stronie Projektant formatów.
Zauważ, że występuje błąd sprawdzania poprawności. Komunikat stwierdza, że skonfigurowane wyrażenie akceptuje tylko wartości Int64. Z tego względu wartości pola model danych X o typie Liczba całkowita nie można wprowadzić w elemencie formatu Y.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Opcja 1
Zaktualizuj strukturę formatu, zmieniając typ danych elementu formatu Liczbowe, tak aby odpowiadał on typowi danych wyrażenia skonfigurowanego dla powiązania tego elementu. W poprzednim przykładzie wartość Typ liczbowy elementu formatu X należy zmienić z powrotem na Liczba całkowita.
Opcja 2
Zaktualizuj mapowanie formatu elementu formatu X, zmieniając wyrażenie z model.X
na INT64VALUE(model.X)
.
Brak elementu konfiguracji
W module ER następuje sprawdzenie, czy wyrażenia wiązania zawierają tylko źródła danych skonfigurowane w edytowalnym składniku ER. Dla każdego powiązania zawierającego źródło danych, którego nie ma w edytowalnym składniku ER, występuje błąd sprawdzania poprawności w projektancie operacji ER lub projektancie mapowania modelu ER.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Rozpocznij konfigurowanie jednocześnie modelu danych ER i składników mapowania modelu ER.
W drzewie modelu danych dodaj pole o nazwie X i jako typ danych wybierz opcję Liczba całkowita.
W projektancie mapowania modelu w okienku Źródła danych dodaj źródło danych typu Pole obliczeniowe.
Nazwij nowe źródło danych Y i skonfiguruj je tak, aby zawierało wyrażenie
INTVALUE(100)
.Powiąż X z Y.
W projektancie mapowania modelu w okienku źródła danych usuń źródło danych Y.
Wybierz pozycję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu.
Zauważ, że występuje błąd sprawdzania poprawności. Komunikat stwierdza, że powiązanie pola modelu danych X zawiera ścieżkę odwołującą się do źródła danych Y, ale nie można odnaleźć tego źródła danych.
Automatyczne rozwiązywanie
Wybierz opcję Usuń powiązanie, aby automatycznie rozwiązać ten problem poprzez usunięcie powiązania z brakującym źródłem danych.
Ręczne rozwiązywanie
Opcja 1
Usuń powiązanie pola modelu danych X w celu zakończenia odwoływania do nieistniejącego źródła danych Y.
Opcja 2
W projektancie mapowania modelu w okienku Źródła danych ponownie dodaj źródło danych Y.
Wykonywalność wyrażenia z funkcją FILTER
Funkcja FILTER wbudowana w module ER służy do uzyskiwania dostępu do tabel, widoków lub jednostek danych aplikacji poprzez wykonywanie pojedynczego wywołania SQL w celu uzyskania wymaganych danych w postaci listy rekordów. Źródło danych typu Lista rekordów jest używane jako argument tej funkcji i określa źródło aplikacji dla tego wywołania. Moduł ER sprawdza, czy można ustanowić bezpośrednie zapytanie SQL do źródła danych, do którego istnieje odwołanie w funkcji FILTER
. Jeśli nie można ustanowić bezpośredniego zapytania, w projektancie mapowania modelu ER wystąpi błąd sprawdzania poprawności. Odebrany komunikat stwierdza, że wyrażenie ER zawierające funkcję FILTER
nie może zostać uruchomione w czasie wykonywania.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Zacznij konfigurować składnik mapowania modelu ER.
Dodaj źródło danych typu Dynamics 365 for Operations \ Rekordy tabeli.
Nazwij nowe źródło danych Vendor. W polu Tabela wybierz opcję VendTable, aby określić, że to źródło danych będzie żądało tabeli VendTable.
Dodaj źródło danych typu Pole obliczeniowe.
Nazwij nowe źródło danych FilteredVendor i skonfiguruj je tak, aby zawierało wyrażenie
FILTER(Vendor, Vendor.AccountNum="US-101")
.Wybierz opcję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu oraz sprawdzić, czy można wykonać zapytanie do wyrażenia
FILTER(Vendor, Vendor.AccountNum="US-101")
znajdującego się w źródle danych Vendor.Zmodyfikuj źródło danych Vendor poprzez dodanie pola zagnieżdżonego o typie Pole obliczeniowe, aby uzyskać przycięty numer konta dostawcy.
Nazwij nowe zagnieżdżone pole $AccNumber i skonfiguruj je tak, aby zawierało wyrażenie
TRIM(Vendor.AccountNum)
.Wybierz opcję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu oraz sprawdzić, czy można wykonać zapytanie do wyrażenia
FILTER(Vendor, Vendor.AccountNum="US-101")
znajdującego się w źródle danych Vendor.Zauważ, że występuje błąd sprawdzania poprawności, ponieważ źródło danych Vendor zawiera zagnieżdżone pole typu Pole obliczeniowe, które nie zezwala na przekształcenie wyrażenia źródła danych FilteredVendor na bezpośrednią instrukcję SQL.
Na poniższej ilustracji przedstawiono błąd czasu wykonywania, który występuje w przypadku zignorowania ostrzeżenia i wybrania opcji Uruchom w celu uruchomienia formatu skonfigurowanego do używania mapowania modelu.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Opcja 1
Zamiast dodawać zagnieżdżone pole typu Pole obliczeniowe do źródła danych Vendor, dodaj zagnieżdżone pole $AccNumber do źródła danych FilteredVendor i skonfiguruj je w taki sposób, aby zawierało wyrażenie TRIM(FilteredVendor.AccountNum)
. W ten sposób wyrażenie FILTER(Vendor, Vendor.AccountNum="US-101")
można uruchomić na poziomie SQL, a zagnieżdżone pole $AccNumber obliczyć później.
Opcja 2
Zmień wyrażenie w źródle danych FilteredVendor z FILTER(Vendor, Vendor.AccountNum="US-101")
na WHERE(Vendor, Vendor.AccountNum="US-101")
. Nie zalecamy zmiany wyrażenia dla tabeli zawierającej dużą ilość danych (tabela transakcji), ponieważ zostaną pobrane wszystkie rekordy, a wybór wymaganych rekordów zostanie dokonany w pamięci. Z tego względu ta metoda może spowodować pogorszenie wydajności. Aby uzyskać więcej informacji, zobacz WHERE, funkcja ER.
Wykonywalność źródła danych typu GROUPBY
Źródło danych typu GROUPBY dzieli wyniki zapytania na grupy rekordów, zazwyczaj w celu wykonania jednej lub więcej agregacji w każdej grupie. Każde źródło danych typu GROUPBY można tak skonfigurować, aby było uruchamiane na poziomie bazy danych lub w pamięci. Gdy źródło danych typu GROUPBY skonfigurowano tak, aby było uruchamiane na poziomie bazy danych, moduł ER sprawdza, czy można ustanowić bezpośrednie zapytanie SQL do źródła danych, do którego istnieje odwołanie w tym źródle danych. Jeśli nie można ustanowić bezpośredniego zapytania, w projektancie mapowania modelu ER wystąpi błąd sprawdzania poprawności. Odebrany komunikat stwierdza, że skonfigurowane źródło danych GROUPBY nie może być uruchamiane w czasie wykonywania.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Zacznij konfigurować składnik mapowania modelu ER.
Dodaj źródło danych typu Dynamics 365 for Operations \ Rekordy tabeli.
Nazwij nowe źródło danych Trans. W polu Tabela wybierz opcję VendTrans, aby określić, że to źródło danych będzie żądało tabeli VendTrans.
Dodaj źródło danych typu Grupuj wg.
Nazwij nowe źródło danych GroupedTrans i skonfiguruj je w następujący sposób:
- Wybierz źródło danych Trans jako źródło rekordów, które powinny być zgrupowane.
- W polu Lokalizacja wykonywania wybierz opcję Zapytanie, aby określić, że chcesz uruchamiać to źródło danych na poziomie bazy danych.
Wybierz opcję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu oraz sprawdzić, czy można wykonać zapytanie do skonfigurowanego źródła danych GroupedTrans.
Zmodyfikuj źródło danych Trans poprzez dodanie pola zagnieżdżonego o typie Pole obliczeniowe, aby uzyskać przycięty numer konta dostawcy.
Nazwij nowe źródło danych $AccNumber i skonfiguruj je tak, aby zawierało wyrażenie
TRIM(Trans.AccountNum)
.Wybierz opcję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu oraz sprawdzić, czy można wykonać zapytanie do skonfigurowanego źródła danych GroupedTrans.
Zauważ, że występuje błąd sprawdzania poprawności, ponieważ źródło danych Trans zawiera zagnieżdżone pole typu Pole obliczeniowe, które nie zezwala na przekształcenie wywołania o źródło danych GroupedTrans na bezpośrednią instrukcję SQL.
Na poniższej ilustracji przedstawiono błąd czasu wykonywania, który występuje w przypadku zignorowania ostrzeżenia i wybrania opcji Uruchom w celu uruchomienia formatu skonfigurowanego do używania mapowania modelu.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Opcja 1
Zamiast dodawać zagnieżdżone pole typu Pole obliczeniowe do źródła danych Trans, dodaj zagnieżdżone pole $AccNumber do elementu GroupedTrans.lines w źródle danych GroupedTrans i skonfiguruj je w taki sposób, aby zawierało wyrażenie TRIM(GroupedTrans.lines.AccountNum)
. W ten sposób źródło danych GroupedTrans można uruchomić na poziomie SQL, a zagnieżdżone pole $AccNumber obliczyć później.
Opcja 2
Zmień wartość pola Lokalizacja wykonywania dla źródła danych GroupedTrans z Zapytanie na W pamięci. Nie zalecamy zmiany wartości dla tabeli zawierającej dużą ilość danych (tabela transakcji), ponieważ zostaną pobrane wszystkie rekordy, a grupowanie i agregowanie zostanie dokonane w pamięci. Z tego względu ta metoda może spowodować pogorszenie wydajności.
Wykonywalność źródła danych typu JOIN
Źródło danych typu JOIN łączy rekordy z dwóch lub więcej tabel bazy danych na podstawie pól pokrewnych. Każde źródło danych typu JOIN można tak skonfigurować, aby było uruchamiane na poziomie bazy danych lub w pamięci. Gdy źródło danych typu JOIN skonfigurowano tak, aby było uruchamiane na poziomie bazy danych, moduł ER sprawdza, czy można ustanowić bezpośrednie zapytanie SQL do źródeł danych, do których istnieje odwołanie w tym źródle danych. Jeśli nie można ustanowić bezpośredniego zapytania SQL do co najmniej jednego przywoływanego źródła danych, w projektancie mapowania modelu ER wystąpi błąd sprawdzania poprawności. Odebrany komunikat stwierdza, że skonfigurowane źródło danych JOIN nie może być uruchamiane w czasie wykonywania.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Zacznij konfigurować składnik mapowania modelu ER.
Dodaj źródło danych typu Dynamics 365 for Operations \ Rekordy tabeli.
Nazwij nowe źródło danych Vendor. W polu Tabela wybierz opcję VendTable, aby określić, że to źródło danych będzie żądało tabeli VendTable.
Dodaj źródło danych typu Dynamics 365 for Operations \ Rekordy tabeli.
Nazwij nowe źródło danych Trans. W polu Tabela wybierz opcję VendTrans, aby określić, że to źródło danych będzie żądało tabeli VendTrans.
Dodaj źródło danych typu Pole obliczeniowe jako zagnieżdżone pole źródła danych Vendor.
Nazwij nowe źródło danych FilteredTrans i skonfiguruj je tak, aby zawierało wyrażenie
FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
.Dodaj źródło danych typu Sprzężenie.
Nazwij nowe źródło danych JoinedList i skonfiguruj je w następujący sposób:
- Dodaj źródło danych Vendor jako pierwszy zbiór rekordów do sprzężenia.
- Dodaj źródło danych Vendor.FilteredTrans jako drugi zbiór rekordów do sprzężenia. Wybierz WEWNĘTRZNE jako typ.
- W polu Wykonaj wybierz opcję Zapytanie, aby określić, że chcesz uruchamiać to źródło danych na poziomie bazy danych.
Wybierz opcję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu oraz sprawdzić, czy można wykonać zapytanie do skonfigurowanego źródła danych JoinedList.
Zmień wyrażenie w źródle danych Vendor.FilteredTrans z
FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
naWHERE(Trans, Trans.AccountNum=Vendor.AccountNum)
.Wybierz opcję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu oraz sprawdzić, czy można wykonać zapytanie do skonfigurowanego źródła danych JoinedList.
Zauważ, że występuje błąd sprawdzania poprawności, ponieważ nie można przekształcić wyrażenia źródła danych Vendor.FilteredTrans na bezpośrednie wywołanie SQL. Ponadto bezpośrednie wywołanie SQL nie zezwala na przekształcenie wywołania o źródło danych JoinedList na bezpośrednią instrukcję SQL.
Na poniższej ilustracji przedstawiono błąd czasu wykonywania, który występuje w przypadku zignorowania ostrzeżenia i wybrania opcji Uruchom w celu uruchomienia formatu skonfigurowanego do używania mapowania modelu.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Opcja 1
Zmień wyrażenie źródła danych Vendor.FilteredTrans z WHERE(Trans, Trans.AccountNum=Vendor.AccountNum)
z powrotem na FILTER(Trans, Trans.AccountNum=Vendor.AccountNum)
, zgodnie z zaleceniem w ostrzeżeniu.
Opcja 2
Zmień wartość pola Wykonaj dla źródła danych JoinedList z Zapytanie na W pamięci. Nie zalecamy zmiany wartości dla tabeli zawierającej dużą ilość danych (tabela transakcji), ponieważ zostaną pobrane wszystkie rekordy, a sprzężenie jest przeprowadzane w pamięci. Z tego względu ta metoda może spowodować pogorszenie wydajności. Zostanie wyświetlone ostrzeżenie sprawdzania poprawności informujące o tym ryzyku.
Preferowanie funkcji FILTER wobec WHERE
Funkcja FILTER wbudowana w module ER służy do uzyskiwania dostępu do tabel, widoków lub jednostek danych aplikacji poprzez wykonywanie pojedynczego wywołania SQL w celu uzyskania wymaganych danych w postaci listy rekordów. Funkcja WHERE pobiera wszystkie rekordy z podanego źródła, a wyboru rekordów dokonuje w pamięci. Źródło danych typu Lista rekordów jest używane jako argument obu funkcji i określa źródło pozyskiwania rekordów. Moduł ER sprawdza, czy można ustanowić bezpośrednie wywołanie SQL do źródła danych, do którego istnieje odwołanie w funkcji WHERE. Jeśli nie można ustanowić bezpośredniego wywołania, w projektancie mapowania modelu ER wystąpi ostrzeżenie sprawdzania poprawności. Odebrany komunikat zaleca użycie funkcji FILTER zamiast funkcji WHERE, ponieważ działa ona sprawniej.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Zacznij konfigurować składnik mapowania modelu ER.
Dodaj źródło danych typu Dynamics 365 for Operations \ Rekordy tabeli.
Nazwij nowe źródło danych Trans. W polu Tabela wybierz opcję VendTrans, aby określić, że to źródło danych będzie żądało tabeli VendTrans.
Dodaj źródło danych typu Pole obliczeniowe jako zagnieżdżone pole źródła danych Vendor.
Nazwij nowe źródło danych FilteredTrans i skonfiguruj je tak, aby zawierało wyrażenie
WHERE(Trans, Trans.AccountNum="US-101")
.Dodaj źródło danych typu Dynamics 365 for Operations \ Rekordy tabeli.
Nazwij nowe źródło danych Vendor. W polu Tabela wybierz opcję VendTable, aby określić, że to źródło danych będzie żądało tabeli VendTable.
Dodaj źródło danych typu Pole obliczeniowe.
Nazwij nowe źródło danych FilteredVendor i skonfiguruj je tak, aby zawierało wyrażenie
WHERE(Vendor, Vendor.AccountNum="US-101")
.Wybierz pozycję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu.
Zauważ, że ostrzeżenia sprawdzania poprawności zalecają używanie funkcji FILTER zamiast funkcji WHERE dla źródeł danych FilteredVendor i FilteredTrans.
Automatyczne rozwiązywanie
Wybierz opcję Napraw, aby automatycznie zastąpić funkcję WHERE funkcją FILTER w wyrażeniu we wszystkich źródłach danych wyświetlanych w siatce na karcie Ostrzeżenia dla tego typu inspekcji.
Alternatywnie można zaznaczyć wiersz jednego ostrzeżenia w siatce, a następnie wybrać opcję Napraw wybrane. W tym przypadku wyrażenie jest automatycznie zmieniane tylko w źródle danych wymienionym w wybranym ostrzeżeniu.
Ręczne rozwiązywanie
Można ręcznie skorygować wyrażenia we wszystkich źródłach danych wymienionych w siatce walidacji, zastępując funkcję WHERE funkcją FILTER.
Preferowanie funkcji ALLITEMSQUERY wobec ALLITEMS
Funkcje ALLITEMS i ALLITEMSQUERY wbudowane w module ER służą do uzyskania spłaszczonej wartości Lista rekordów zawierającej listę rekordów reprezentujących wszystkie elementy pasujące do podanej ścieżki. Moduł ER sprawdza, czy można ustanowić bezpośrednie wywołanie SQL do źródła danych, do którego istnieje odwołanie w funkcji ALLITEMS. Jeśli nie można ustanowić bezpośredniego wywołania, w projektancie mapowania modelu ER wystąpi ostrzeżenie sprawdzania poprawności. Odebrany komunikat zaleca użycie funkcji ALLITEMSQUERY zamiast funkcji ALLITEMS, ponieważ działa ona sprawniej.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Zacznij konfigurować składnik mapowania modelu ER.
Dodaj źródło danych typu Dynamics 365 for Operations \ Rekordy tabeli.
Nazwij nowe źródło danych Vendor. W polu Tabela wybierz opcję VendTable, aby określić, że to źródło danych będzie żądało tabeli VendTable.
Aby pobierać rekordy kilku dostawców, dodaj źródło danych typu Pole obliczeniowe.
Nazwij nowe źródło danych FilteredVendor i skonfiguruj je tak, aby zawierało wyrażenie
FILTER(Vendor, OR(Vendor.AccountNum="US-101",Vendor.AccountNum="US-102"))
.Aby pobierać transakcje wszystkich wyfiltrowanych dostawców, dodaj źródło danych typu Pole obliczeniowe.
Nazwij nowe źródło danych FilteredVendorTrans i skonfiguruj je tak, aby zawierało wyrażenie
ALLITEMS(FilteredVendor.'<Relations'.'VendTrans.VendTable_AccountNum')
.Wybierz pozycję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu.
Zauważ, że występuje ostrzeżenie sprawdzania poprawności. Komunikat zaleca użycie funkcji ALLITEMSQUERY zamiast funkcji ALLITEMS dla źródła danych FilteredVendorTrans.
Automatyczne rozwiązywanie
Wybierz opcję Napraw, aby automatycznie zastąpić funkcję ALLITEMS funkcją ALLITEMSQUERY w wyrażeniu we wszystkich źródłach danych wyświetlanych w siatce na karcie Ostrzeżenia dla tego typu inspekcji.
Alternatywnie można zaznaczyć wiersz jednego ostrzeżenia w siatce, a następnie wybrać opcję Napraw wybrane. W tym przypadku wyrażenie jest automatycznie zmieniane tylko w źródle danych wymienionym w wybranym ostrzeżeniu.
Ręczne rozwiązywanie
Można ręcznie skorygować wyrażenia we wszystkich źródłach danych wymienionych w siatce sprawdzania poprawności, zastępując funkcję ALLITEMS funkcją ALLITEMSQUERY.
Uwagi dotyczące przypadków z pustymi listami
Format lub składnik mapowania modelu ER można skonfigurować w taki sposób, aby pobierać wartość pola źródła danych typu Lista rekordów. Moduł ER sprawdza, czy projekt uwzględnia przypadek, że wywoływane źródło danych nie zawiera żadnych rekordów (to znaczy jest puste), aby zapobiec błędom wykonywania, gdy wartość jest pobierana z pola nieistniejącego rekordu.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Rozpocznij konfigurowanie jednocześnie modelu danych ER, mapowania modelu ER i składników formatu ER.
W drzewie modelu danych dodaj element główny o nazwie Root3.
Zmodyfikuj element Root3, dodając zagnieżdżony element typu Lista rekordów.
Nazwij nowy zagnieżdżony element Vendor.
Zmodyfikuj element Vendor w następujący sposób:
- Dodaj pole zagnieżdżone typu Ciąg i nadaj mu nazwę Name.
- Dodaj pole zagnieżdżone typu Ciąg i nadaj mu nazwę AccountNumber.
W projektancie mapowania modelu w okienku Źródła danych dodaj źródło danych typu Dynamics 365 for Operations \ Rekordy tabeli.
Nazwij nowe źródło danych Vendor. W polu Tabela wybierz opcję VendTable, aby określić, że to źródło danych będzie żądało tabeli VendTable.
Dodaj źródło danych typu Ogólne \ Parametr wprowadzany przez użytkownika, aby szukać konta dostawcy w oknie dialogowym środowiska uruchomieniowego.
Nazwij nowe źródło danych RequestedAccountNum. W polu Etykieta wpisz Numer konta dostawcy. W polu Nazwa typu danych operacyjnych pozostaw wartość domyślną Opis.
Aby wyfiltrować dostawcę, o którego jest wykonywane zapytanie, dodaj źródło danych typu Pole obliczeniowe.
Nazwij nowe źródło danych FilteredVendor i skonfiguruj je tak, aby zawierało wyrażenie
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Powiąż elementy modelu danych ze skonfigurowanymi źródłami danych w następujący sposób:
- Powiąż FilteredVendor z Vendor.
- Powiąż FilteredVendor.AccountNum z Vendor.AccountNumber.
- Powiąż FilteredVendor.'name()' z Vendor.Name.
W drzewie struktury formatu dodaj następujące elementy w celu wygenerowania dokumentu wychodzącego w formacie XML zawierającego szczegóły dostawcy:
Dodaj główny element XML Zestawienie.
Dla elementu XML Zestawienie dodaj zagnieżdżony element XML Strona.
Dla elementu XML Strona dodaj następujące zagnieżdżone atrybuty XML:
- Imię i nazwisko
- AccountNum
Powiąż elementy formatu z podanymi źródłami danych w następujący sposób:
- Powiąż element formatu Zestawienie\Strona\Name z polem źródła danych model.Vendor.Name.
- Powiąż element formatu Zestawienie\Strona\AccountNum z polem źródła danych model.Vendor.AccountNumber.
Wybierz pozycję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika formatu na stronie Projektant formatów.
Zauważ, że występuje błąd sprawdzania poprawności. Komunikat stwierdza, że w czasie wykonywania może być zgłaszany błąd dla skonfigurowanych elementów formatu Statement\Party\Name i Statement\Party\AccountNum, jeżeli lista
model.Vendor
jest pusta.
Na poniższej ilustracji przedstawiono błąd czasu wykonywania, który występuje w przypadku zignorowania ostrzeżenia, wybrania opcji Uruchom w celu uruchomienia formatu oraz wybrania numeru konta nieistniejącego dostawcy. Ponieważ żądany dostawca nie istnieje, lista model.Vendor
będzie pusta (czyli nie będzie zawierała żadnych rekordów).
Automatyczne rozwiązywanie
Dla wybranego wiersza w siatce na karcie Ostrzeżenia można wybrać opcję Usuń powiązanie. Powiązanie wskazane w kolumnie Ścieżka zostanie automatycznie usunięte z elementów formatu.
Ręczne rozwiązywanie
Opcja 1
Można ręcznie powiązać element formatu Statement\Party\Name z elementem źródła danych model.Vendor
. W czasie wykonywania powiązanie spowoduje najpierw wywołanie źródła danych model.Vendor
. Gdy źródło danych model.Vendor
zwróci pustą listę rekordów, zagnieżdżone elementy formatu nie zostaną uruchomione. Z tego powodu nie występują ostrzeżenia sprawdzania poprawności dla tej konfiguracji formatu.
Opcja 2
Zmień powiązanie elementu formatu Zestawienie\Strona\Name z model.Vendor.Name
na FIRSTORNULL(model.Vendor).Name
. Zaktualizowane powiązanie warunkowo konwertuje pierwszy rekord źródła danych model.Vendor
o typie Lista rekordów na nowe źródło danych o typie Rekord. To nowe źródło danych zawiera ten sam zestaw pól.
- Jeśli w źródle danych jest dostępny co najmniej jeden rekord
model.Vendor
, pola tego rekordu są wypełniane wartościami z pól pierwszego rekordu źródła danychmodel.Vendor
. W tym przypadku zaktualizowane powiązanie zwraca nazwę dostawcy. - W przeciwnym razie każde pole tworzonego rekordu jest wypełniane domyślną wartością o typie danych tego pola. W tym przypadku jest zwracany pusty ciąg jako wartość domyślna typu danych Ciąg.
Z tego powodu nie występują ostrzeżenia sprawdzania poprawności dla elementu formatu Zestawienie\Strona\Name, gdy jest on powiązany z wyrażeniem FIRSTORNULL(model.Vendor).Name
.
Opcja 3
Jeśli chcesz jawnie określić dane wprowadzane w wygenerowanym dokumencie, gdy źródło danych model.Vendor
o typie Lista rekordów nie zwraca żadnych rekordów (w tym przykładzie tekst Niedostępne), zmień powiązanie elementu formatu Statement\Party\Name z model.Vendor.Name
na IF(NOT(ISEMPTY(model.Vendor)), model.Vendor.Name, "Not available")
. Można również użyć wyrażenia IF(COUNT(model.Vendor)=0, model.Vendor.Name, "Not available")
.
Dodatkowe zagadnienia
Inspekcja ostrzega również o innym potencjalnym problemie. Domyślnie po powiązaniu elementów formatu Statement\Party\Name and Statement\Party\AccountNum z odpowiednimi polami źródła danych model.Vendor
o typie Lista rekordów te powiązania zostaną uruchomione i będą przyjmować wartości odpowiednich pól pierwszego rekordu źródła danych model.Vendor
, jeśli ta lista nie jest pusta.
Ponieważ nie powiązano elementu formatu Statement\Party ze źródłem danych model.Vendor
, element Statement\Party nie będzie iterowany dla każdego rekordu źródła danych model.Vendor
podczas wykonywania formatu. Zamiast tego wygenerowany dokument zostanie wypełniony informacjami tylko z pierwszego rekordu listy rekordów, jeśli ta lista zawiera wiele rekordów. Może więc wystąpić błąd, jeśli format jest przeznaczony do wypełnienia wygenerowanego dokumentu informacjami o wszystkich dostawcach ze źródła danych model.Vendor
. Aby rozwiązać ten problem, należy powiązać element Statement\Party ze źródłem danych model.Vendor
.
Wykonywalność wyrażenia z funkcją FILTER (buforowanie)
Kilka wbudowanych funkcji modułu ER, w tym FILTER i ALLITEMSQUERY, służy do uzyskiwania dostępu do tabel, widoków lub jednostek danych aplikacji poprzez wykonywanie pojedynczego wywołania SQL w celu uzyskania wymaganych danych w postaci listy rekordów. Źródło danych typu Lista rekordów jest używane jako argument w każdej z tych funkcji i określa źródło aplikacji dla tego wywołania. Moduł ER sprawdza, czy można ustanowić bezpośrednie wywołanie SQL do źródła danych, do którego istnieje odwołanie w jednej z tych funkcji. Jeśli nie można ustanowić bezpośredniego wywołania, ponieważ źródło danych zostało oznaczone jako buforowane, w projektancie mapowania modelu ER wystąpi błąd sprawdzania poprawności. Odebrany komunikat stwierdza, że wyrażenie ER zawierające jedną z tych funkcji nie może zostać uruchomione w czasie wykonywania.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Zacznij konfigurować składnik mapowania modelu ER.
Dodaj źródło danych typu Dynamics 365 for Operations \ Rekordy tabeli.
Nazwij nowe źródło danych Vendor. W polu Tabela wybierz opcję VendTable, aby określić, że to źródło danych będzie żądało tabeli VendTable.
Dodaj źródło danych typu Ogólne \ Parametr wprowadzany przez użytkownika, aby szukać konta dostawcy w oknie dialogowym środowiska uruchomieniowego.
Nazwij nowe źródło danych RequestedAccountNum. W polu Etykieta wpisz Numer konta dostawcy. W polu Nazwa typu danych operacyjnych pozostaw wartość domyślną Opis.
Aby wyfiltrować dostawcę, o którego jest wykonywane zapytanie, dodaj źródło danych typu Pole obliczeniowe.
Nazwij nowe źródło danych FilteredVendor i skonfiguruj je tak, aby zawierało wyrażenie
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Oznacz skonfigurowane źródło danych Vendor jako buforowane.
Wybierz pozycję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu.
Zauważ, że występuje błąd sprawdzania poprawności. Komunikat stwierdza, że funkcji FILTER nie można zastosować do buforowanego źródła danych Vendor.
Na poniższej ilustracji przedstawiono błąd czasu wykonywania, który występuje w przypadku zignorowania ostrzeżenia i wybrania opcji Uruchom w celu uruchomienia formatu.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Opcja 1
Usuń flagę Pamięć podręczna ze źródła danych Vendor. Źródło danych FilteredVendor stanie się wykonywalne, ale źródło danych Vendor, do którego odwołuje się tabela VendTable, będzie używane za każdym razem, gdy jest wywoływane źródło danych FilteredVendor.
Opcja 2
Zmień wyrażenie w źródle danych FilteredVendor z FILTER(Vendor, Vendor.AccountNum="US-101")
na WHERE(Vendor, Vendor.AccountNum="US-101")
. W tym przypadku dostęp do źródła danych Vendor, do którego odwołuje się tabela VendTable, będzie uzyskiwany tylko podczas pierwszego wywołania źródła danych Vendor. Jednak wybór rekordów zostanie dokonany w pamięci. Z tego względu ta metoda może spowodować pogorszenie wydajności.
Brak powiązania
Podczas konfigurowania składnika formatu modułu ER podstawowy model danych ER jest podpowiadany jako domyślne źródło danych dla formatu ER. Po uruchomieniu skonfigurowanego formatu ER domyślne mapowanie modelu dla modelu podstawowego jest używane do wypełniania modelu danych danymi aplikacji. W projektancie formatów w aplikacji ER jest wyświetlane ostrzeżenie, jeśli powiążesz element formatu z elementem modelu danych, który nie jest powiązany z żadnym źródłem danych w mapowaniu modelu aktualnie zaznaczonym jako domyślne mapowanie modelu dla edytowalnego formatu. Tego typu powiązania nie można uruchomić w czasie wykonywania, ponieważ uruchomiony format nie może wypełnić powiązanego elementu danymi aplikacji. Z tego powodu w czasie wykonywania występuje błąd.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Rozpocznij konfigurowanie jednocześnie modelu danych ER, mapowania modelu ER i składników formatu ER.
W drzewie modelu danych dodaj element główny o nazwie Root3.
Zmodyfikuj element Root3, dodając nowy zagnieżdżony element typu Lista rekordów.
Nazwij nowy zagnieżdżony element Vendor.
Zmodyfikuj element Vendor w następujący sposób:
- Dodaj pole zagnieżdżone typu Ciąg i nadaj mu nazwę Name.
- Dodaj pole zagnieżdżone typu Ciąg i nadaj mu nazwę AccountNumber.
W projektancie mapowania modelu w okienku Źródła danych dodaj źródło danych typu Dynamics 365 for Operations \ Rekordy tabeli.
Nazwij nowe źródło danych Vendor. W polu Tabela wybierz opcję VendTable, aby określić, że to źródło danych będzie żądało tabeli VendTable.
Dodaj źródło danych typu Ogólne \ Parametr wprowadzany przez użytkownika, aby wykonywać zapytanie o konto dostawcy w oknie dialogowym środowiska uruchomieniowego.
Nazwij nowe źródło danych RequestedAccountNum. W polu Etykieta wpisz Numer konta dostawcy. W polu Nazwa typu danych operacyjnych pozostaw wartość domyślną Opis.
Aby wyfiltrować dostawcę, o którego jest wykonywane zapytanie, dodaj źródło danych typu Pole obliczeniowe.
Nazwij nowe źródło danych FilteredVendor i skonfiguruj je tak, aby zawierało wyrażenie
FILTER(Vendor, Vendor.AccountNum=RequestedAccountNum)
.Powiąż elementy modelu danych ze skonfigurowanymi źródłami danych w następujący sposób:
- Powiąż FilteredVendor z Vendor.
- Powiąż FilteredVendor.AccountNum z Vendor.AccountNumber.
Banknot
Pole modelu danych Vendor.Name pozostaje niepowiązane.
W drzewie struktury formatu dodaj następujące elementy w celu wygenerowania dokumentu wychodzącego w formacie XML zawierającego szczegóły dostawców, o których jest wykonywane zapytanie:
Dodaj główny element XML Zestawienie.
Dla elementu XML Zestawienie dodaj zagnieżdżony element XML Strona.
Dla elementu XML Strona dodaj następujące zagnieżdżone atrybuty XML:
- Imię i nazwisko
- AccountNum
Powiąż elementy formatu z podanymi źródłami danych w następujący sposób:
- Powiąż element formatu Statement\Party z elementem źródła danych
model.Vendor
. - Powiąż element formatu Zestawienie\Strona\Name z polem źródła danych model.Vendor.Name.
- Powiąż element formatu Zestawienie\Strona\AccountNum z polem źródła danych model.Vendor.AccountNumber.
- Powiąż element formatu Statement\Party z elementem źródła danych
Wybierz pozycję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika formatu na stronie Projektant formatów.
Zauważ, że występuje ostrzeżenie sprawdzania poprawności. Komunikat stwierdza, że pole źródła danych model.Vendor.Name nie jest powiązane z żadnym źródłem danych w mapowaniu modelu skonfigurowanym do używania przez format. Z tego względu element formatu Zestawienie\Strona\Name może nie być wypełniany w czasie wykonywania i w efekcie może wystąpić wyjątek czasu wykonywania.
Na poniższej ilustracji przedstawiono błąd czasu wykonywania, który występuje w przypadku zignorowania ostrzeżenia i wybrania opcji Uruchom w celu uruchomienia formatu.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Opcja 1
Zmodyfikuj skonfigurowane mapowanie modelu, dodając powiązanie dla pola źródła danych model.Vendor.Name.
Opcja 2
Zmodyfikuj skonfigurowany format, usuwając powiązanie dla elementu formatu Zestawienie\Strona\Nazwa.
Niepołączony szablon
Podczas ręcznego konfigurowania składnika formatu ER, aby używał szablonu do generowania dokumentu wychodzącego, należy ręcznie dodać element Excel\Plik, dodać wymagany szablon jako załącznik edytowalnego składnika, a następnie wybrać ten załącznik w dodanym elemencie Excel\Plik. W ten sposób wskażesz, że dodany element będzie wypełniał wybrany szablon w czasie wykonywania. Podczas konfigurowania wersji składnika formatu o stanie Wersja robocza można dodać kilka szablonów do edytowalnego składnika, a następnie wybierać każdy szablon w składniku Excel\Plik w celu uruchamiania formatu ER. W ten sposób można zobaczyć, jak są wypełniane różne szablony w czasie wykonywania. Jeśli masz szablony, które nie są wybierane w żadnych elementach Excel\Plik, projektant formatu w module ER ostrzeżenie, że te szablony zostaną usunięte z wersji edytowalnego składnika formatu ER po zmianie jego stanu z Wersja robocza na Ukończono.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Zacznij konfigurować składnik formatu ER.
W drzewie struktury formatu dodaj element Excel\Plik.
Dla dodanego właśnie elementu Excel\Plik dodaj plik skoroszyt programu Excel, A.xlsx, jako załącznik. Użyj typu dokumentu skonfigurowanego w parametrach modułu ER do określania sposobu przechowywania szablonów formatów ER.
Dla elementu Excel\Plik dodaj plik kolejny skoroszyt programu Excel, B.xlsx, jako załącznik. Użyj tego samego typu dokumentu, który został użyty dla pliku skoroszytu A.
W elemencie Excel\Plik wybierz plik skoroszytu A.
Wybierz pozycję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika formatu na stronie Projektant formatów.
Zauważ, że występuje ostrzeżenie sprawdzania poprawności. Komunikat stwierdza, że plik skoroszytu B. xlsx nie jest połączony z żadnymi składnikami i zostanie usunięty po zmianie stanu wersji konfiguracji.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Zmodyfikuj skonfigurowany format, usuwając wszystkie szablony, które nie są połączone z żadnym elementem Excel\Plik.
Niezsynchronizowany format
Podczas konfigurowania składnika formatu ER, aby używał szablonu programu Excel do generowania dokumentu wychodzącego, można ręcznie dodać element Excel\Plik, dodać wymagany szablon jako załącznik edytowalnego składnika, a następnie wybrać ten załącznik w dodanym elemencie Excel\Plik. W ten sposób wskażesz, że dodany element będzie wypełniał wybrany szablon w czasie wykonywania. Ponieważ dodany szablon programu Excel został zaprojektowany zewnętrznie, edytowalny format ER może zawierać nazwy programu Excel, których brakuje w dodanym szablonie. Projektant formatów modułu ER ostrzega o wszelkich niespójnościach między właściwościami elementów formatu ER, które odwołują się do nazw nieistniejących w dodanym szablonie programu Excel.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Zacznij konfigurować składnik formatu ER.
W drzewie struktury formatu dodaj element Excel\PlikReport.
Dla dodanego właśnie elementu Excel\Plik dodaj plik skoroszyt programu Excel, A.xlsx, jako załącznik. Użyj typu dokumentu skonfigurowanego w parametrach modułu ER do określania sposobu przechowywania szablonów formatów ER.
Ważne
Upewnij się, że dodany skoroszyt programu Excel nie zawiera nazwy ReportTitle.
Dodaj następujący element Excel\KomórkaTitle jako zagnieżdżony element elementu Report. W polu Zakres programu Excel wprowadź ReportTitle.
Wybierz pozycję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika formatu na stronie Projektant formatów.
Zauważ, że występuje ostrzeżenie sprawdzania poprawności. Komunikat stwierdza, że nazwa ReportTitle nie istnieje w arkuszu Arkusz1 w używanym szablonie programu Excel.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Opcja 1
Zmodyfikuj skonfigurowany format, usuwając wszystkie elementy odwołujące się do nazw programu Excel, których nie ma w szablonie.
Opcja 2
Zaktualizuj edytowalny format ER poprzez zaimportowanie szablonu programu Excel. Struktura edytowalnego formatu ER zostanie zsynchronizowana ze strukturą zaimportowanego szablonu programu Excel.
Dodatkowe zagadnienia
Aby dowiedzieć się, jak zsynchronizować strukturę formatu z szablonem ER w edytorze szablonu w module Zarządzanie dokumentami biznesowymi, zobacz Aktualizowanie struktury szablonu dokumentu biznesowego.
Nie zsynchronizowano z formatem szablonu programu Word
Podczas konfigurowania składnika formatu ER, aby używał szablonu programu Word do generowania dokumentu wychodzącego, można ręcznie dodać element Excel\Plik, dodać wymagany szablon jako załącznik edytowalnego składnika, a następnie wybrać ten załącznik w dodanym elemencie Excel\Plik.
Banknot
Po dołączeniu dokumentu programu Word projektant formatu ER przedstawia edytowalny element jako Word\Plik.
W ten sposób wskażesz, że dodany element będzie wypełniał wybrany szablon w czasie wykonywania. Ponieważ dodany szablon programu Word został zaprojektowany zewnętrznie, edytowalny format ER może zawierać odniesienia do formantów zawartości programu Word, których brakuje w dodanym szablonie. Projektant formatu ER ostrzega o wszelkich niespójnościach między właściwościami elementów formatu ER, które odwołują się do kontrolek zawartości, które nie są zawarte w dodanym szablonie programu Word.
Aby uzyskać przykład, który pokazuje, jak może wystąpić ten problem, zobacz temat Konfigurowanie formatu edytowalnego w celu pomijania sekcji podsumowania.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Opcja 1
Zmodyfikuj skonfigurowany format, usuwając Usuniętą formułę z elementu formatu wymienionego w ostrzeżeniu weryfikacji.
Opcja 2
Zmodyfikuj szablon programu Word, dodając wymagany znacznik do odpowiedniej kontroli zawartości programu Word.
Brak domyślnego mapowania
Po inspekcji Brak powiązania sprawdzane powiązania formatu są sprawdzane na tle powiązań odpowiedniego składnika mapowania modelu. Ponieważ do wystąpienia finansowego można zaimportować kilka konfiguracji mapowania modelu ER, a każda konfiguracja może zawierać stosowny składnik mapowania modelu, należy wybrać jedną konfigurację jako konfigurację domyślną. W przeciwnym razie podczas próby uruchomienia, edycji lub walidacji sprawdzonego formatu ER wystąpi wyjątek i zostanie wyświetlony następujący komunikat: „Istnieje więcej niż jedno mapowanie <model name (root descriptor)> modelu dla modelu danych w konfiguracjach <configuration names separated by comma>. Ustaw jedną z konfiguracji jako domyślną ”.
Aby zapoznać się z przykładem, który pokazuje, jak może wystąpić ten problem i jak można go naprawić, zobacz Zarządzanie kilkoma mapowaniami pochodnymi dla pojedynczego elementu głównego modelu.
Niespójne ustawienie składników nagłówka lub stopki
Konfigurując składnik formatu ER do generowania dokumentu wychodzącego za pomocą szablonu programu Excel, można dodać składnik Excel\Nagłówek, aby wypełniać nagłówki u góry arkusza w skoroszycie programu Excel. Można również dodać składnik Excel\Stopka, aby wypełniać stopki u dołu arkusza. W przypadku każdego składnika Excel\Nagłówek lub Excel\Stopka, który zostanie dodaj, należy ustawić właściwość Wyglądu nagłówka/stopki, aby określić strony, dla których składnik jest uruchamiany. Ponieważ dla jednego składnika arkusza można skonfigurować kilka składników Excel\Nagłówek lub Excel\Stopka, a dla różnych typów stron Arkusza programu Excel można generować nagłówki lub stopki różnych typów stron, należy skonfigurować jeden składnik Excel\Nagłówek lub Excel\Stopka dla określonej wartości właściwości Wyglądu nagłówka/stopki. Jeśli więcej niż jeden składnik Excel\Nagłówek lub Excel\Stopka jest skonfigurowany dla określonej wartości właściwości Wygląd nagłówka/stopki , wystąpi błąd weryfikacji i wyświetla następujący komunikat o błędzie: „Nagłówki / stopki (<typ składnika: nagłówek lub stopka>) są niespójne”.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Opcja 1
Zmodyfikuj skonfigurowany format, usuwając jeden z niespójnych składników Excel\Nagłówka lub Excel\Stopki.
Opcja 2
Modyfikowanie wartości właściwości Wyglądu nagłówka/stopki dla jednego z niespójnych składników Excel\Nagłówek lub Excel\Stopka.
Niespójne ustawienie składnika Strona
Podczas konfigurowania składnika formatu raportowania elektronicznego do generowania dokumentu wychodzącego za pomocą szablonu programu Excel można dodać składnik Excel\Strona w celu stronicowania wygenerowanego dokumentu przy użyciu formuł raportowania elektronicznego. W przypadku każdego składnika Excel\Strona, który zostanie dodany, można dodać wiele zagnieżdżonych składników Zakres i nadal zachować zgodność z następującą strukturą:
- Pierwszy zagnieżdżony składnik Zakres można skonfigurować w taki sposób, aby właściwość Kierunek replikacji miała wartość Brak replikacji. Ten zakres służy do generowania nagłówków stron w generowanych dokumentach.
- Można dodać wiele innych zagnieżdżonych składników Zakres, dla których właściwość Kierunek replikacji ma wartość Pionowo. Te zakresy służą do wypełniania wygenerowanych dokumentów.
- Ostatni zagnieżdżony składnik Zakres można skonfigurować w taki sposób, aby właściwość Kierunek replikacji miała wartość Brak replikacji. Ten zakres służy do tworzenia stopki strony w generowanych dokumentach i dodawania wymaganych podziałów stron.
Jeśli podczas projektowania nie przestrzegasz tej struktury formatu raportowania elektronicznego w konstruktorze formatów raportowania elektronicznego, wystąpi błąd weryfikacji i zostanie wyświetlony następujący komunikat o błędzie: „Istnieje więcej niż dwa składniki zakresu bez replikacji. Usuń zbędne składniki.”
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Opcja 1
Zmodyfikuj skonfigurowany format, zmieniając właściwość Kierunek replikacji dla wszystkich niespójnych składników zakresu programu Excel\Zakres.
Wykonywalność wyrażenia z funkcją ORDERBY
Funkcja wbudowanej listy ORDERBY ER służy do sortowania rekordów źródła danych ER listy rekordów określonej jako argument funkcji.
Argumenty funkcji ORDERBY
mogą być określone, aby posortować rekordy tabel aplikacji, widoków lub encji danych poprzez pojedyncze wywołanie bazy danych, aby otrzymać posortowane dane jako listę rekordów. Źródło danych typu Lista rekordów jest używane jako argument tej funkcji i określa źródło aplikacji dla tego wywołania.
Moduł ER sprawdza, czy można ustanowić bezpośrednie zapytanie bazy danych do źródła danych, do którego istnieje odwołanie w funkcji ORDERBY
. Jeśli nie można ustanowić bezpośredniego zapytania, w projektancie mapowania modelu ER wystąpi błąd sprawdzania poprawności. Odebrany komunikat stwierdza, że wyrażenie ER zawierające funkcję ORDERBY
nie może zostać uruchomione w czasie wykonywania.
Poniższe kroki pokazują, jak może dojść do tego problemu.
Zacznij konfigurować składnik mapowania modelu ER.
Dodaj źródło danych typu Dynamics 365 for Operations \ Rekordy tabeli.
Nazwij nowe źródło danych Vendor. W polu Tabela wybierz opcję VendTable, aby określić, że to źródło danych będzie żądało tabeli VendTable.
Dodaj źródło danych typu Pole obliczeniowe.
Nazwij nowe źródło danych OrderedVendors i skonfiguruj je tak, aby zawierało wyrażenie
ORDERBY("Query", Vendor, Vendor.AccountNum)
.Wybierz opcję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu oraz sprawdzić, czy można wykonać zapytanie do wyrażenia znajdującego się w źródle danych OrderedVendors.
Zmodyfikuj źródło danych Vendor poprzez dodanie pola zagnieżdżonego o typie Pole obliczeniowe, aby uzyskać przycięty numer konta dostawcy.
Nazwij nowe zagnieżdżone pole $AccNumber i skonfiguruj je tak, aby zawierało wyrażenie
TRIM(Vendor.AccountNum)
.Wybierz opcję Weryfikuj, aby przeprowadzić inspekcję edytowalnego składnika mapowania modelu na stronie Projektant mapowania modelu oraz sprawdzić, czy można wykonać zapytanie do wyrażenia znajdującego się w źródle danych Vendor.
Zauważ, że występuje błąd sprawdzania poprawności, ponieważ źródło danych Vendor zawiera zagnieżdżone pole typu Pole obliczeniowe, które nie zezwala na przekształcenie wyrażenia źródła danych OrderedVendors na bezpośrednią instrukcję bazy danych. Ten sam błąd pojawia się podczas uruchamiania, jeśli zignorujesz błąd walidacji i wybierzesz Uruchom, aby uruchomić to odwzorowanie modelu.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Opcja 1
Zamiast dodawać zagnieżdżone pole typu Pole obliczeniowe do źródła danych Vendor, dodaj zagnieżdżone pole $AccNumber do źródła danych FilteredVendors i skonfiguruj pole w taki sposób, aby zawierało wyrażenie TRIM(FilteredVendor.AccountNum)
. W ten sposób wyrażenie ORDERBY("Query", Vendor, Vendor.AccountNum)
można uruchomić na poziomie bazy danych, a kalkulację zagnieżdżonego pola $AccNumber można obliczyć później.
Opcja 2
Zmień wyrażenie w źródle danych FilteredVendors z ORDERBY("Query", Vendor, Vendor.AccountNum)
na ORDERBY("InMemory", Vendor, Vendor.AccountNum)
. Nie zalecamy zmiany wyrażenia dla tabeli zawierającej dużą ilość danych (tabela transakcji), ponieważ zostaną pobrane wszystkie rekordy, a porządkowanie wymaganych rekordów zostanie dokonany w pamięci. Z tego względu ta metoda może spowodować pogorszenie wydajności.
Przestarzały artefakt aplikacji
Podczas projektowania składnika mapowania modelu raportowania elektronicznego lub składnika formatu raportowania elektronicznego można skonfigurować wyrażenie raportowania elektronicznego w celu wywołania artefaktu aplikacji w aplikacji raportowania elektronicznego, np. tabeli bazy danych, sposobu klasy itp. W wersji rozwiązania Finance 10.0.30 i nowszej można wymusić na raportowaniu elektronicznym ostrzeganie, by określony artefakt aplikacji został oznaczony w kodzie źródłowym jako przestarzały. To ostrzeżenie może być przydatne, ponieważ zazwyczaj przestarzałe artefakty są ostatecznie usuwane z kodu źródłowego. Poinformowanie o stanie artefaktu może uniemożliwić użycie przestarzałego artefaktu w edytowalnym składniku raportowania elektronicznego przed usunięciem go z kodu źródłowego. Zapobiegnie to błędom wywoływania nieistniejących artefaktów aplikacji ze składnika raportowania elektronicznego w czasie wykonywania.
Włącz funkcję Sprawdź poprawność przestarzałych elementów źródeł danych raportowania elektronicznego w obszarze roboczym Zarządzanie funkcjami, aby rozpocząć ocenianie przestarzałych atrybutów artefaktów aplikacji podczas inspekcji edytowalnego składnika raportowania elektronicznego. Przestarzały atrybut jest obecnie sprawdzany dla następujących typów artefaktów aplikacji:
- Tabela bazy danych
- Pole tabeli
- Sposób tabeli
- Klasa aplikacji
- Sposób klasy
Banknot
Ostrzeżenie zostanie wyświetlane podczas inspekcji edytowalnego składnika raportowania elektronicznego dla źródła danych, które odwołuje się do przestarzałego artefaktu tylko wtedy, gdy to źródło danych jest używane w co najmniej jednym powiązaniu tego składnika raportowania elektronicznego.
Wskazówka
Gdy klasa SysObsoleteAttribute jest używana do powiadamiania kompilatora w celu wydawania komunikatów ostrzegawczych zamiast błędów, ostrzeżenie o inspekcji przedstawia określone w ostrzeżeniu kodu źródłowego podczas projektowania na skróconej karcie Szczegóły na stronie Projektant mapowania modelu lub Projektant formatów.
Na poniższej ilustracji przedstawiono ostrzeżenie dotyczące weryfikacji, które występuje, gdy przestarzałe pole DEL_Email
tabeli aplikacji CompanyInfo
jest powiązane z polem modelu danych przy użyciu skonfigurowanego źródła danych company
.
Automatyczne rozwiązywanie
Nie jest dostępna żadna opcja automatycznego rozwiązywania tego problemu.
Ręczne rozwiązywanie
Zmodyfikuj skonfigurowane mapowanie modelu lub format, usuwając wszystkie powiązania do źródła danych, które odwołuje się do przestarzałego artefaktu aplikacji.
Dodatkowe zasoby
Omówienie zarządzania dokumentami biznesowymi
Pomijanie formantów zawartości programu Word w generowanych raportach
Zarządzanie kilkoma mapowaniami pochodnymi dla pojedynczego elementu głównego modelu