Grupowanie rekordów i łączenie obliczeń przy użyciu źródeł danych GROUPBY
Podczas konfigurowania mapowania lub formatów modelu Raportowania elektronicznego (ER) możesz dodać wymagane źródła danych typu GroupBy.
W czasie projektowania źródło danych GroupBy jest skonfigurowane tak, aby identyfikować następujące elementy:
- Podstawowe źródło danych zawierające rekordy, które zostaną pogrupowane w czasie wykonywania
- Pola grupowania podstawowego źródła danych, które będą używane do grupowania rekordów w czasie wykonywania
- Funkcje agregowania określające obliczenia agregowania, które będą wykonywane dla każdej odnalezionej grupy w czasie wykonywania
W czasie wykonywania skonfigurowana grupa źródeł danych GroupBy zawiera takie same wartości w polach grupowania, a następnie zwraca listę rekordów. Każdy rekord reprezentuje pojedynczą grupę. Dla każdej grupy źródło danych ujawnia wartości pól, według których zostały pogrupowane początkowe rekordy, wartości obliczonych funkcji agregujących oraz listę rekordów bazowego źródła danych, które należą do grupy.
Funkcje agregujące
W trybie uruchomieniowym każde obliczenie zbiorcze jest wykonywane dla każdej grupy rekordów. To obliczenie jest wykonywane przy użyciu wartości pojedynczego pola lub wyrażenia w rekordach źródła danych, które zostało wybrane do grupowania w edytowalnym źródle danych typu GroupBy. Obecnie obsługiwane są następujące funkcje agregacji:
- AVG – ta funkcja zwraca średnią wartości z grupy. Można jej używać tylko z polami liczb.
- COUNT – ta funkcja zwraca liczbę towarów znalezionych w grupie.
- Min – ta funkcja zwraca wartość minimalną z wartości w grupie.
- Max – ta funkcja zwraca wartość maksymalną z wartości w grupie.
- SUM – ta funkcja zwraca sumę wszystkich wartości w grupie. Można jej używać tylko z polami liczb.
Lokalizacja wykonywania
Podczas edytowania źródła danych GroupBy i określania podstawowego źródła danych zawierającego rekordy, które muszą zostać pogrupowane, system automatycznie wykrywa najbardziej efektywną lokalizację wykonania tego źródła danych GroupBy. Jeśli podstawowe źródło danych umożliwia wykonywanie kwerend (to jest możliwe do uruchomienia na poziomie bazy danych), baza danych aplikacji jest także określana jako lokalizacja wykonania edytowalnego źródła danych GroupBy. W przeciwnym razie pamięć serwera aplikacji jest określana jako lokalizacja wykonania.
Możesz ręcznie zmienić automatycznie wykrytą lokalizację wykonania, wybierając lokalizację, która jest odpowiednia dla skonfigurowanego źródła danych. Jeśli wybrane miejsce wykonania nie jest odpowiednie, w czasie projektowania zostanie wyświetlony błąd weryfikacji.
Wskazówka
Zalecamy, byś używał lokalizacji bazy danych do grupowania źródeł danych, które wyświetlają dużą liczbę rekordów.
Zużycie pamięci
Domyślnie jeśli źródło danych GroupBy jest uruchamiane w pamięci, pamięć serwera aplikacji jest używana do przechowywania rekordów podstawowego źródła danych należącego do każdej odnalezionej grupy jako rekordów z jednej grupy. Aby zredukować zużycie pamięci, można wyłączyć przechowywanie rekordów dla źródeł danych GroupBy, jeśli zostały one skonfigurowane do obliczania tylko zagregowanych funkcji, a rekordy ich grup nie są używane w czasie wykonywania. Aby w ten sposób zmniejszyć zużycie pamięci, włącz opcję Zmniejsz zużycie pamięci w aplikacji ER, jeśli grupowanie rekordów służy tylko do obliczania funkcji agregacji w obszarze roboczym Zarządzanie funkcjami.
Alternatywy
Podobne agregacje można obliczyć przy użyciu różnych typów źródeł danych lub funkcji wbudowanych ER.
Zapoznaj się z następującym przykładem, aby dowiedzieć się więcej.
Przykład: Użyj źródła danych GROUPBY do obliczeń zbiorczych i grupowania rekordów
Ten przykład pokazuje, jak użytkownik w roli administratora systemu lub konsultanta funkcjonalnego raportowania elektronicznego może skonfigurować odwzorowanie modelu ER ze źródłem danych GROUPBY, które jest używane do obliczania funkcji zbiorczych i grupowania rekordów. To odwzorowanie modelu jest używane do drukowania raportu kontrolnego, gdy generowana jest deklaracja Intrastat. Ten raport pozwala Ci przejrzeć zgłoszone transakcje Intrastat.
Zadania przedstawione w tym przykładzie można wykonać w kontekście firmy DEMF w aplikacji Microsoft Dynamics 365 Finance.
Przygotowywanie przykładowych danych
Upewnij się, że na stronie Intrastat są raportowanie transakcje Intrastat. Trzeba mieć transakcje dla różnych kodów transportu, ponieważ transakcje zostaną pogrupowane według pola Transport w tym przykładzie.
Konfigurowanie struktury ER
Wykonaj kroki opisane w sekcji Konfigurowanie platformy ER, aby skonfigurować minimalny zestaw parametrów ER. Musisz zakończyć tę konfigurację, zanim zaczniesz używać platformy ER do projektowania odwzorowania modelu ER.
Importowanie standardowej konfiguracji formatu ER
Postępuj zgodnie z instrukcjami w Importuj standardową konfigurację formatu ER, aby dodać standardowe konfiguracje ER do bieżącego wystąpienia Dynamics 365 Finance. Zaimportuj z repozytorium wersję 1 konfiguracji modelu Intrastat.
Utwórz konfigurację niestandardowego modelu danych
Wykonaj kroki opisane w punkcie Dodaj konfigurację niestandardowego modelu danych, aby ręcznie dodać nową konfigurację modelu danych ER (Litware), która powstała z zaimportowanej konfiguracji modelu danych ER.
Skonfiguruj komponent własnego modelu danych
Wykonaj poniższe kroki, aby dokonać wymaganych zmian w pochodnym modelu danych Intrastat model (Litware), tak aby mógł on być użyty do wyświetlenia kodów transportowych, które posiadają wymagane szczegóły.
Wybierz kolejno opcje Administrowanie organizacją>Raportowanie elektroniczne>Konfiguracje.
Na stronie Konfiguracje w drzewie konfiguracji wybierz pozycję Intrastat model (Litware).
Wybierz opcję Konstruktor.
Na stronie Projektanta modelu danych, w drzewie modelu, wybierz Intrastat.
Wybierz opcję Nowy, aby dodać nowy zagnieżdżony węzeł dla wybranego węzła Intrastat. W oknie dialogowym rozwijanym dotyczącym dodawania węzła modelu danych wykonaj następujące kroki:
- W polu Nazwa wpisz Transport.
- W polu Kod przedmiotu wybierz Lista tabel.
- Wybierz Dodaj, aby dodać nowy węzeł.
Wybierz pozycję Nowy, aby dodać nowy zagnieżdżony węzeł dla nowo dodanego węzła transportu. W oknie dialogowym rozwijanym dotyczącym dodawania węzła modelu danych wykonaj następujące kroki:
- Wprowadź nazwę w polu, wpisz Kod.
- W polu Typ przedmiotu wybierz Ciąg.
- Wybierz Dodaj, aby dodać nowy węzeł.
Wybierz pozycję Nowy, aby dodać kolejny zagnieżdżony węzeł dla nowo dodanego węzła transportu. W oknie dialogowym rozwijanym dotyczącym dodawania węzła modelu danych wykonaj następujące kroki:
- W polu Nazwa wpisz TotalInvoicedAmount.
- W polu Typ przedmiotu wybierz Rzeczywisty.
- Wybierz Dodaj, aby dodać nowy węzeł.
Wybierz pozycję Nowy, aby dodać kolejny zagnieżdżony węzeł dla nowo dodanego węzła transportu. W oknie dialogowym rozwijanym dotyczącym dodawania węzła modelu danych wykonaj następujące kroki:
- W polu Nazwa wpisz NumberOfTransactions.
- W polu Typ elementu wybierz opcję Liczba całkowita.
- Wybierz Dodaj, aby dodać nowy węzeł.
Wybierz pozycję Nowy, aby dodać kolejny zagnieżdżony węzeł dla nowo dodanego węzła transportu. W oknie dialogowym rozwijanym dotyczącym dodawania węzła modelu danych wykonaj następujące kroki:
- W polu Nazwa wpisz Transakcje.
- W polu Kod przedmiotu wybierz Lista tabel.
- Wybierz Dodaj, aby dodać nowy węzeł.
Dla węzła Transakcja, który właśnie dodałeś, na szybkiej karcie Węzeł wybierz Przełącz odniesienie do elementu.
W oknie dialogowym Przełącz odwołanie do elementu w drzewie modeli danych wybierz pozycję CommodityRecord. Następnie wybierz opcję OK.
Umożliwia zaprojektowanie niestandardowego projektu modelu danych
Wykonaj kroki opisane w części Zakończ projektowanie modelu danych, aby zakończyć projektowanie pochodnego modelu danych Intrastat (Litware).
Stwórz nowy model konfiguracji mapowania
Wykonaj kroki opisane w punkcie Utwórz nową konfigurację odwzorowania modelu, aby ręcznie dodać nową konfigurację Odwzorowanie modelu Intrastat odwzorowania modelu ER dla pochodnej konfiguracji modelu Intrastat (Litware).
Dodaj nowy składnik odwzorowujący model
- Wybierz kolejno opcje Administrowanie organizacją>Raportowanie elektroniczne>Konfiguracje.
- Na stronie Konfiguracje w drzewie konfiguracji w panelu po lewej wybierz pozycję Model Intrastat.
- W polu Nazwa wpisz Przykładowe mapowanie Intrastat.
- Wybierz opcję Projektant, aby otworzyć listę mapowań.
- Wybierz polecenie Usuń, aby usunąć istniejący składnik mapowania.
- Wybierz pozycję Nowy, aby dodać nowy składnik mapowania.
- W polu Definicja zaznacz wartość Intrastat.
- W polu Nazwa wpisz Mapowanie Intrastat.
- Wybierz opcję Projektant, aby skonfigurować nowe mapowanie.
Zaprojektuj dodany komponent odwzorowujący model
Dodawanie źródeł danych w celu uzyskania dostępu do tabeli aplikacji
Skonfiguruj źródło danych, aby uzyskać dostęp do tabel aplikacji, które zawierają szczegóły transakcji Intrastat.
- Na stronie Projektant mapowania modelu w okienku Typy źródła danych wybierz pozycję Dynamics 365 for Operations\Rekordy tabeli.
- W okienku Źródła danych wybierz pozycję Dodaj główny, aby dodać nowe źródło danych, które będzie używane w celu uzyskania dostępu do tabeli Intrastat. Każdy rekord w tabeli Intrastat reprezentuje pojedynczą transakcję Intrastat.
- W oknie dialogowym Właściwości źródła danych, w polu Nazwa wpisz Transakcja.
- W polu Tabela wprowadź Intrastat.
- Wybierz przycisk OK, aby dodać nowe źródło danych.
Dodaj źródło danych do grupowania transakcji Intrastat
Skonfiguruj źródło danych GroupBy tak, aby grupować transakcje Intrastat i obliczać funkcje agregowania.
Na stronie Projektant mapowania modelu w okienku Typy źródła danych wybierz Funkcje\Grupuj wg.
W panelu Źródła danych wybierz Dodaj główne, aby dodać nowe źródło danych, które będzie używane do grupowania transakcji Intrastat i obliczania funkcji agregujących.
W oknie dialogowym Właściwości źródła danych, w polu Nazwa wpisz TransportRecord.
Wybierz pozycję Edytuj grupę według, aby skonfigurować warunki grupowania.
Na stronie Edytuj parametry 'Grupa wg', na liście źródeł danych w prawym panelu wybierz źródło danych Transakcja i rozwiń je.
Wybierz Dodaj pole do grupy > Jakiej grupy, aby wskazać, że źródło danych Transakcja jest wybrane jako bazowe źródło danych dla skonfigurowanego źródła danych GroupBy. Rekordy źródła danych Transakcja zostaną pogrupowane, a wartości pól tego źródła danych będą używane do obliczeń w funkcjach agregowania.
Zaznacz pole Transakcja\Transport, a następnie wybierz Dodaj pole > Pole zgrupowane, aby wskazać, że pole Transport podstawowego źródła danych jest wybrane jako kryterium grupowania dla skonfigurowanego źródła danych GroupBy. Innymi słowy, rekordy źródła danych Transakcja zostaną pogrupowane na podstawie wartości pola Transport. Każdy rekord skonfigurowanego źródła danych GroupBy będzie reprezentował jeden kod transportu znaleziony w rekordach podstawowego źródła danych.
Zaznacz pole Transakcja\AmountMST, a następnie wykonaj następujące czynności:
- Wybierz opcję Dodaj pole > Pola zagregowane, aby wskazać, że dla tego pola zostanie obliczona funkcja agregacji.
- W panelu Agregacje, w rekordzie, który został dodany dla wybranego pola Transakcja\AmountMST, w polu Metoda wybierz funkcję Suma.
- W opcjonalnym polu Nazwa wpisz TotalInvoicedAmount.
Te ustawienia określają, że dla każdej grupy transportu zostanie obliczona łączna kwota pola Transakcja\AmountMST.
Zaznacz pole Transakcja\RecId, a następnie wykonaj następujące czynności:
- Wybierz opcję Dodaj pole > Pola zagregowane, aby wskazać, że dla tego pola zostanie obliczona funkcja agregacji.
- W panelu Agregacje, w rekordzie, który został dodany dla wybranego pola Transakcja\RecId, w polu Metoda wybierz funkcję Liczba.
- W opcjonalnym polu Nazwa wpisz NumberOfTransactions.
Te ustawienia określają, że dla każdej grupy transportowej będzie obliczana liczba transakcji w tej grupie.
Wybierz opcję Zapisz.
Przejrzyj parametry wykonywania edytowalnego źródła danych. Zwróć uwagę, że autodetect został automatycznie wybrany w polu Lokalizacja wykonania, a pole Wykonanie w zawiera wartość SQL. Ustawienia te określają, że wybrane bazowe źródło danychTransakcja jest aktualnie dostępne dla zapytań oraz że możesz uruchomić edytowalne źródło danych GroupBy na poziomie bazy danych.
Otwórz odnośniki do pola Lokalizacja wykonania, aby przejrzeć listę dostępnych wartości. Należy zauważyć, że można wybrać opcję Zapytanielub W pamięci, aby wymusić uruchomienie źródła danych GroupBy na poziomie bazy danych lub w pamięci serwera aplikacji.
Wybierz Zapisz, a następnie zamknij stronę Edycja parametrów 'Grupa wg'.
Wybierz przycisk OK, aby zakończyć ustawienia źródła danych GroupBy.
Powiąż źródło danych GroupBy z polami modelu danych
Powiąż skonfigurowane źródło danych z polami modelu danych, aby określić, w jaki sposób model danych będzie wypełniany danymi aplikacji w trybie runtime.
Na stronie Projektant mapowania modelu w okienku Model danych rozwiń węzeł Transport.
W panelu Źródła danych rozwiń źródło danych TransportRecord.
Dodaj powiązanie, aby uwidaczniać listę odnalezionych grup transportu:
- W okienku Model danych wybierz Transport.
- W panelu Źródła danych rozwiń źródło danych TransportRecord.
- Wybierz Powiąż.
Dodaj wiązanie, aby ujawnić kod transportowy każdej odkrytej grupy transportowej:
- Wybierz pozycję modelu danych Transport.Code.
- Zaznacz pole zgrupowane TransportRecord.grouped.TransportMode.
- Wybierz Powiąż.
Dodaj wiązanie, aby ujawnić wartości obliczonych funkcji agregujących dla każdej odkrytej grupy transportowej:
- Wybierz pozycję modelu danych Transport.NumberOfTransactions.
- Zaznacz pole zagregowane TransportRecord.aggregated.NumberOfTransactions.
- Wybierz Powiąż.
- Wybierz pozycję modelu danych Transport.TotalInvoicedAmount.
- Zaznacz pole zagregowane TransportRecord.aggregated.TotalInvoicedAmount.
- Wybierz Powiąż.
Dodaj wiązanie, aby odsłonić rekordy transakcji, które należą do każdej odkrytej grupy transportowej:
- Wybierz pozycję modelu danych Transport.Transaction.
- Zaznacz pole TransportRecord.lines.
- Wybierz Powiąż.
Możesz kontynuować konfigurowanie wiązań dla zagnieżdżonych pozycji modelu danych Transport.Transaction i pola źródła danych TransportRecord.lines, aby ujawnić w czasie rzeczywistym szczegóły transakcji Intrastat, które należą do każdej odkrytej grupy transportowej.
Debugowanie dodanego komponentu odwzorowującego model
Użycie debugera źródła danych ER do testowania skonfigurowanego mapowania modelu.
Przycisk Rozpocznij debugowanie na stronie projektanta mapowania modelu.
Na stronie Źródła danych debugowania, w lewym panelu wybierz źródło danych TransportRecord, a następnie wybierz Odczytaj wszystkie rekordy.
Rozwiń źródło danych TransportRecord, a następnie wykonaj poniższe kroki:
- Zaznacz źródło danych TransportRecord.grouped.TransportMode.
- Wybierz pozycję Pobierz wartość.
- Zaznacz źródło danych TransportRecord.grouped.NumberOfTransactions.
- Wybierz pozycję Pobierz wartość.
- Zaznacz źródło danych TransportRecord.grouped.TotalInvoicedAmount.
- Wybierz pozycję Pobierz wartość.
W okienku po prawej stronie włącz pozycję Rozwiń wszystko.
Źródło danych TransportRecord uwidacznia dwa rekordy i prezentuje dwa kody transportu. Dla każdego kodu transportu obliczana jest liczba transakcji i całkowita zafakturowana kwota.
Banknot
Metoda „opóźnienie odczytu” jest używana, gdy źródło danych GroupBy jest wywoływane do optymalizowania wywołań baz danych. Dlatego niektóre wartości pól w źródle danych GroupBy są obliczane w debugerze źródeł danych ER tylko wtedy, gdy są one związane z polami modelu danych.
Często zadawane pytania
Czy jest jakiś sposób obliczania sum sumy całkowitej podczas obliczania sum dla grupy?
Tak. Aby obliczyć sumy całkowite, skonfiguruj inne źródło danych GroupBy, w którym uprzednio skonfigurowane źródło danych GroupBy jest używane jako podstawowe źródło danych. Poniższa ilustracja przedstawia źródło danych Totals typu GroupBy, które jest używane do obliczania zagregowanej funkcji SUM na podstawie agregacji SUM źródła danych TransportRecord typu GroupBy.
Poniższa ilustracja pokazuje rezultaty debugowania źródła danych Totals.