Informacje dotyczące odwołań do rekordów i wyszukiwań polimorficznych w aplikacjach kanwy

Jeśli w szkole trzeba było pisać opracowanie, prawdopodobnie na jego końcu znajdowała się lista odwołań. Nie dołączono kopii rzeczywistych użytych materiałów, ale uwzględniono link internetowy, tytuł i autora książki lub inne informacje, aby inna osoba mogła znaleźć oryginalne źródło. Na jednej liście połączono różne źródła, artykuły z prasy obok nagrań audio, a dla każdego z nich podano określone szczegóły związane z odpowiednim cytatem. Na przykład artykuły w witrynie Wikipedia często zawierają długą listę odwołań.

W przypadku aplikacji kanwy często pracujesz z kopiami rekordów pobranych ze źródeł danych. Do zidentyfikowania wybranego rekordu należy użyć funkcji LookUp i Filter oraz właściwości Wybrane kontrolki Galeria. Wszystkie rekordy z opcji Filtruj lub Wybrane będą tego samego typu, więc można użyć pól o prostym typie. Notacja Pola. Kopie te często zawierają informacje referencyjne, dzięki czemu można użyć funkcji Patch w celu zaktualizowania oryginalnego źródła.

Aplikacje kanwy obsługują również odwołania do rekordów. Podobnie jak w przypadku odwołania do opracowania, odwołanie do rekordu odnosi się do rekordu, ale nie zawiera jego pełnej kopii. Takie odwołanie może odwoływać się do rekordu w dowolnej tabeli. Podobnie jak w przypadku odwołań do badania, rekordy z różnych tabel można łączyć w jednej kolumnie.

Wiele operacji dotyczących odwołań do rekordów jest identycznych jak podczas pracy z rekordami. Odwołania do rekordów można porównywać ze sobą oraz z innymi pełnymi rekordami. Można ustawić wartość odwołania do rekordu przy użyciu funkcji Patch, tak jak w przypadku wyszukiwania z pełnym rekordem.

Istnieje jedna ważna różnica użycia: nie można bezpośrednio uzyskać dostępu do pól odwołania do rekordu bez wcześniejszego ustalenia, do której tabeli odwołuje się ten rekord. Wynika to z faktu, że aplikacje kanwy wymagają, aby wszystkie typy były znane podczas pisania formuł. Ponieważ typ odwołania do rekordu nie będzie znany do momentu uruchomienia aplikacji, nie można bezpośrednio używać prostej notacji .Field. W pierwszej kolejności należy dynamicznie określić typ tabeli za pomocą funkcji IsType, a następnie użyć jej. Notacja pola na wyniku funkcji AsType.

Typ tabeli odwołuje się do schematu każdego rekordu w tabeli. Każda tabela zawiera unikatowy zestaw pól o różnych nazwach i typach danych. Każdy rekord tabeli dziedziczy strukturę; dwa rekordy mają ten sam typ tabeli, jeśli pochodzą z tej samej tabeli.

Uwaga

Można wybrać jeden z wielu różnych łączników, aby łączyć się z różnymi typami źródeł danych dla aplikacji kanw. Jednak podczas pracy z aplikacjami kanwy w Power Apps Studio, kolumny w Microsoft Dataverse są określane jako pola podobne do wszystkich innych źródeł danych. Kolumna jest używana tylko w przypadku odwołującego się do kolumny w środku Dataverse. Aby uzyskać więcej informacji: Aktualizacje terminologii Dataverse

Wyszukiwania polimorficzne

Usługa Microsoft Dataverse obsługuje relacje między rekordami. Każdy rekord w tabeli Konta ma kolumnę wyszukiwania Kontakt podstawowy dla rekordu w tabeli Kontakty. Pole wyszukiwania może odwoływać się tylko do rekordu w danych kontaktów i nie może odwoływać się do rekordu, na przykład tabeli Zespoły. Te ostatnie informacje są ważne, ponieważ wiadomo, jakie kolumny będą dostępne dla danych wyszukiwania.

Dataverse obsługuje również wyszukiwania wszystkich danych w zestawie, które mogą odwoływać się do rekordu z dowolnej tabeli. Na przykład kolumna Właściciel może odwoływać się do rekordu w tabeli Użytkownicy lub Tabeli Zespoły. Ta sama kolumna wyszukiwania w różnych rekordach może odwoływać się do rekordów w różnych tabelach. W takim przypadku nie zawsze jest wiadomo, jakie kolumny będą dostępne.

Odwołania do rekordów kanwy zostały zaprojektowane do pracy z wyszukiwaniami polimorficznymi w usłudze Dataverse. Można również używać odwołań do rekordów poza tym kontekstem — tym różnią się od siebie te dwie koncepcje.

W następnej sekcji zaczniesz zapoznawać się z tymi koncepcjami, pracując z wyszukiwaniem typu Właściciel.

Wyświetlanie kolumn właściciela rekordu

Każda tabela zawiera w Dataverse kolumnę Właściciel. Tej kolumny nie można usunąć, nie można dodać innej i zawsze wymaga wartości.

Aby pokazać kolumnę w tabeli Konto:

  1. Zaloguj się do usługi Power Apps.

  2. W lewym pasku wybrać Dane > Tabele.

  3. Z listy tabel wybierz pozycję Konto.

  4. W prawym górnym rogu otwórz listę filtrów (domyślnie ustawioną na wartość Domyślne), a następnie wybierz pozycję Wszystkie.

  5. Przewiń w dół, aż pojawi się kolumna Właściciel.

    Kolumna Właściciel w tabeli konta.

Ta kolumna wyszukiwania może odwoływać się do rekordu z tabeli Zespoły lub Użytkownicy. Nie każdy rekord w tych tabelach ma uprawnienia do bytego właścicielem. W przypadku wystąpienia problemu należy sprawdzić obsługiwane role.

Ta ilustracja przedstawia prostą galerię kont, w której do aplikacji dodano tabelę Konta jako element źródło danych:

Konta widoczne w kontrolce Galeria.

Ważne

W tym temacie grafiki zawierają nazwy i inne wartości, które nie są częścią danych przykładowych dostarczanych z usługą Dataverse. Kroki dokładnie prezentują sposób konfigurowania kontrolek dla konkretnego wyniku, ale niektóre wyniki mogą się różnić w zależności od danych organizacji.

Aby wyświetlić właściciela każdego konta w galerii, możesz chcieć skorzystać z formuły ThisItem.Owner.Name. Jednak pole nazwy w tabeli Zespołu to Nazwa zespołu, a pole nazwy w tabeli Użytkownik ma Pełna nazwa. Aplikacja nie może wiedzieć, z jakim typem wyszukiwania pracujesz, dopóki nie zostanie uruchomić aplikacji, i może się różnić od rekordów w tabeli Konta.

Potrzebujesz formuły, którą można dostosować do tego odchylenia. Należy również dodać źródła danych dla typów tabel, które mogą być właścicielami (w tym przypadku użytkownicy i zespoły). Dodaj te trzy źródła danych do aplikacji:

Tabele Konta, Zespoły i Użytkownicy w okienku Dane.

Po wprowadzeniu tych źródeł danych użyj tej formuły do wyświetlenia nazwy użytkownika lub zespołu:

If( IsType( ThisItem.Owner, Teams ),
    "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
    "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )

Konta pokazywane w kontrolce Galeria z wyświetlonym polem Właściciel.

W tej formule funkcja IsType testuje pole Właściciel na tabelę Zespoły. Jeśli należy do tego typu tabeli, funkcja AsType jest przechowywana do rekordu zespołu. W tym momencie można uzyskać dostęp do wszystkich pól tabeli Zespoły, w tym także Nazwa zespołu, za pomocą narzędzia notacja .Field. Jeśli typ IsType stwierdzi, że właściciel nie jest rekordem w tabeli Zespoły, to pole musi być rekordem w tabeli Użytkownicy, ponieważ jest wymagane pole Właściciel (nie może być puste).

Aby użyć dowolnych pól odwołania do rekordu, należy najpierw użyć funkcji AsType w celu użycia go do określonego typu tabeli. Nie można uzyskać dostępu do pól bezpośrednio z pola Właściciel, ponieważ system nie wie, jakiego typu tabeli ma używać.

Funkcja AsType zwraca błąd, jeśli pole Właściciel nie pasuje do żądanego typu tabeli, co pozwala uprościć tę formułę za pomocą funkcji IfError. Najpierw włącz funkcję eksperymentalną Zarządzanie błędami na poziomie formuły:

Eksperymentalny przełącznik umożliwiający włączanie zarządzania błędami na poziomie formuły.

Następnie zastąp poprzednią formułę następującą:

IfError(
    "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
    "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )

Filtrowanie oparte na właścicielu

Gratulacje — ukończono najtrudniejszy aspekt pracy z odwołaniem do rekordu. Inne przypadki użycia są prostsze, ponieważ nie mają dostępu do pól rekordu. W tej sekcji zapoznasz się z jednym z takich przypadków — filtrowaniem.

Dodaj kontrolkę Pole kombi nad galerią i ustaw te właściwości nowej kontrolki:

  • Elementy: Users
  • SelectMultiple: false

Dodana kontrolka pola kombi nad galerią z właściwością Elementy ustawioną na Użytkownicy.

Aby odfiltrować galerię według określonego użytkownika zaznaczonego w tym polu kombi, ustaw właściwość Elementy galerii na tę formułę:

Filter( Accounts, Owner = ComboBox1.Selected )

Odfiltrowana galeria oparta na wartości ustawionej w kontrolce pola kombi.

Ważne

Instrukcje zawarte w tym temat są dokładne, jeśli starannie wykonujesz opisane kroki. Natomiast każda formuła, która odwołuje się do kontrolki za pomocą jej nazwy, kończy się niepowodzeniem, jeśli kontrolka ma inną nazwę. Jeśli usuniesz i dodasz kontrolkę tego samego typu, zmieni się liczba znajdująca się na końcu nazwy kontrolki. Dla każdej formuły pokazującej błąd, potwierdź, że zawiera ona poprawne nazwy wszystkich kontrolek.

Nie musisz używać funkcji IsType lub AsType, ponieważ porównujesz odwołania do rekordów z innymi odwołaniami do rekordów lub do pełnych rekordów. Aplikacja wie, jaki typ tabeli to ComboBox1.Selected, ponieważ jest pochodzących z tabeli Użytkownicy. Konta, dla których właściciel jest zespołem, nie będą odpowiadać kryterium filtru.

Aby zwiększyć atrakcyjność rozwiązania, można wybrać opcję filtrowania według użytkownika lub zespołu.

  1. Zwolnij miejsce u góry ekranu, zmieniając rozmiar galerii i przesuwając pole kombi, wstaw kontrolkę Przycisk radiowy nad galerią, a następnie ustaw te właściwości dla nowej kontrolki:

    • Elementy: [ "All", "Users", "Teams" ]
    • Układ: Layout.Horizontal
  2. Dla kontrolki Pole kombi ustaw tę właściwość (jeśli pole kombi zniknie, wybierz pozycję Użytkownicy w kontrolce przycisku radiowego):

    • Widoczne: Radio1.Selected.Value = "Users"
  3. Skopiuj i wklej kontrolkę Pole kombi, przenieś kopię bezpośrednio na oryginał, a następnie ustaw następujące właściwości kopii:

    • Elementy: Teams
    • Widoczne: Radio1.Selected.Value = "Teams"

    W zależności od stanu kontrolki przycisku radiowego aplikacja będzie wyświetlać tylko jedno pole kombi w danym momencie. Ponieważ znajdują się one bezpośrednio nad sobą, będą wyglądać jak ta sama kontrolka ze zmienioną zawartością.

  4. Na koniec ustaw właściwość Elementy kontrolki Galeria na tę formułę:

    Filter( Accounts,
        Radio1.Selected.Value = "All"
        Or (Radio1.Selected.Value = "Users" And Owner = ComboBox1.Selected)
        Or (Radio1.Selected.Value = "Teams" And Owner = ComboBox1_1.Selected)
    )
    

    Odfiltrowana galeria pokazująca wszystkie rekordy albo konkretnego użytkownika lub zespół.

Wprowadzenie tych zmian umożliwia wyświetlenie wszystkich rekordów lub ich filtrowanie na podstawie użytkownika lub zespołu:

Animacja pokazująca różne wyniki filtrowania w zależności od kontrolki przycisku radiowego i pól kombi.

Formuła ma możliwość pełnego delegowania. Część porównująca wartości przycisków radiowych jest stała we wszystkich rekordach i jest oceniana przed wysłaniem reszty filtru do usługi Dataverse.

Jeśli chcesz filtrować według typu właściciela, możesz użyć funkcji IsType, ale nie można jej jeszcze delegować.

Filtrowanie według typu właściciela za pomocą funkcji IsType.

Aktualizowanie właściciela za pomocą funkcji Patch

Pole Właściciel można aktualizować w taki sam sposób jak w przypadku innych wyszukiwań. Aby ustawić właściciela wybranego konta dla pierwszego zespołu:

Patch( Accounts, Gallery1.Selected, { Owner: First( Teams ) } )

Takie podejście nie różni się od normalnego wyszukiwania, ponieważ aplikacja zna typ First( Teams ). Jeśli w zamian potrzebujesz pierwszego użytkownika, zamień tę część na First( Users ). Funkcja Patch wie, że pole Właściciel może być ustawione na jeden z tych dwóch typów tabeli.

Aby dodać tę możliwość do aplikacji:

  1. W okienku Widok drzewa wybierz kontrolkę Przycisk radiowy i dwie kontrolki Pole kombi w tym samym czasie.

  2. W menu wielokropka wybierz pozycję Kopiuj te elementy.

    Kopiowanie wielu kontrolek przy użyciu widoku drzewa.

  3. W tym samym menu wybierz pozycję Wklej.

    Wklejanie wielu kontrolek przy użyciu widoku drzewa.

  4. Przenieś skopiowane kontrolki po prawej stronie galerii.

    Przeniesione skopiowane kontrolki po prawej stronie galerii.

  5. Wybierz skopiowaną kontrolkę Przycisk radiowy, a następnie zmień następujące właściwości:

    • Elementy: [ "Users", "Teams" ]
    • Domyślnie: If( IsType( Gallery1.Selected.Owner, Users ), "Users", "Teams" )

    Opcja wyboru Wszystkie usunięta z kontrolki Przycisk radiowy.

  6. W kontrolce Przycisk radiowy wybierz pozycję Użytkownicy, tak aby kontrolka Pole kombi wyświetlająca listę użytkowników była widoczna.

  7. Wybierz widoczną kontrolkę Pole kombi, a następnie ustaw właściwość DefaultSelectedItems na tę formułę:

    If( IsType( Gallery1.Selected.Owner, Users ),
        AsType( Gallery1.Selected.Owner, Users ),
        Blank()
    )
    

    Właściwość domyślna ustawiona dla pola kombi Użytkownicy.

  8. W kontrolce Przycisk radiowy wybierz pozycję Zespoły, tak aby kontrolka Pole kombi wyświetlająca listę zespołów była widoczna.

  9. Wybierz kontrolkę Przycisk radiowy, aby uniemożliwić wybieranie przy użyciu kontrolki Pole kombi niewidocznej teraz dla użytkowników.

  10. Wybierz widoczną kontrolkę Pole kombi dla zespołów, a następnie ustaw jej właściwość DefaultSelectedItems na tę formułę:

    If( IsType( Gallery1.Selected.Owner, Teams ),
        AsType( Gallery1.Selected.Owner, Teams ),
        Blank()
    )
    

    Właściwość domyślna ustawiona dla pola kombi Zespoły.

  11. Wstaw kontrolkę Przycisk, przenieś ją pod kontrolkę Pole kombi, a następnie ustaw właściwość Tekst na wartość "Patch Owner".

  12. Dla właściwości OnSelect przycisku ustaw następującą formułę:

    Patch( Accounts, Gallery1.Selected,
        { Owner: If( Radio1_1.Selected.Value = "Users",
                     ComboBox1_2.Selected,
                     ComboBox1_3.Selected ) } )
    

    Formuła ustawiona w kontrolce przycisku.

Skopiowane kontrolki Przyciski radiowe i Pole kombi pokazują właściciela aktualnie wybranego konta w galerii. Korzystając z tych samych kontrolek, można ustawić właściciela konta dla dowolnego zespołu lub użytkownika, wybierając przycisk:

Animacja pokazująca poprawkę pola Właściciel i ustawienie jej na wartość Użytkownik lub Zespół.

Wyświetlanie właściciela przy użyciu formularza

Aby wyświetlić pole Właściciel wewnątrz formularza, możesz dodać kartę niestandardową. W trakcie pisania tej dokumentacji nie można było zmienić wartości pola przy użyciu kontrolki formularza.

  1. Wstaw kontrolkę Edytuj formularz, a następnie zmień jej rozmiar i przenieś ją w prawy dolny róg.

  2. Na karcie Właściwości znajdującej się po prawej stronie ekranu otwórz listę Źródło danych, a następnie wybierz pozycję Konta.

    Kontrolka formularza pokazująca dodatkowe pola z pustymi wartościami.

  3. Ustaw właściwość Element formularza na Gallery1.Selected.

    Kontrolka formularza pokazująca dodatkowe pola wypełnione na podstawie wybranego elementu w galerii.

  4. Na karcie Właściwości po prawej stronie ekranu wybierz pozycję Edytuj pola.

  5. W okienku Pola wybierz wielokropek, a następnie wybierz pozycję Dodaj kartę niestandardową.

    Polecenie służące do dodawania karty niestandardowej.

    Nowa karta zostanie wyświetlona u dołu kontrolki formularza.

  6. W razie potrzeby zmień rozmiar karty, aby pokazać cały tekst.

    Wstawiona karta niestandardowa, pusta.

  7. Wstaw kontrolkę Etykieta na karcie niestandardowej, a następnie ustaw właściwość Tekst etykiety na formułę używaną w galerii:

    If( IsType( ThisItem.Owner, Teams ),
        "Team: " & AsType( ThisItem.Owner, Teams ).'Team Name',
        "User: " & AsType( ThisItem.Owner, Users ).'Full Name' )
    

    Karta niestandardowa pokazująca pole Właściciel w kontrolce etykiety.

W przypadku każdej opcji wybranej w galerii w formularzu zostanie wyświetlona większa liczba pól konta, w tym właściciel rekordu. W przypadku zmiany właściciela przy użyciu przycisku funkcji Patch kontrolka formularza również będzie pokazywać tę zmianę.

Animacja pokazująca kontrolkę formularza reagującą na zmiany w galerii.

Pokaż kolumny klienta

W Dataverse kolumna wyszukiwania Klient to kolejne wyszukiwanie polimorficzne, bardzo podobne do Właściciel.

Właściciel może zawierać tylko jedną kolumnę wyszukiwania Klient i może zawierać zero, jedną lub więcej kolumn wyszukiwania Klient. Tabela systemowa Kontakty zawiera kolumnę Nazwa firmy, która jest kolumną wyszukiwania Klient.

Tabela kontaktów zawierająca kolumnę Nazwa firmy jako typ danych Klienta, który nie jest wymagany.

Wybierając typ danych Klient dla nowej kolumny, można dodać do tabeli kolejne kolumny wyszukiwania Klienci.

Typ danych klienta z listy typów danych podczas tworzenia kolumny.

Pole wyszukiwania Klient może odwoływać się do rekordu z tabeli Konta lub Kontakty. W tych tabelach będą używane funkcje IsType i AsType, więc warto teraz dodać je jako źródła danych (można pozostawić na miejscu zespoły i użytkowników).

Tabele Konta, Zespoły, Użytkownicy i Kontakty w okienku Dane.

Sposób traktowania pól Klient i Właściciel jest tak podobny, że możesz właściwie skopiować aplikację (Plik > Zapisz jako, a następnie podaj inną nazwę) i wprowadzić te proste zamiany:

Lokalizacja Właściciel — przykład Klient — przykład
Wszędzie Właściciel „Nazwa klienta”
Wszędzie Użytkownicy Klienci
Wszędzie Zespoły Kontakty
Właściwość Elementy galerii Klienci Kontakty
Właściwość Elementy formularza Klienci Kontakty
Pierwszy argument funkcji Patch
we właściwości OnSelect przycisku
Klienci Kontakty
Właściwość Elementy przycisku radiowego filtru [ „Wszystko”, „Użytkownicy”, „Zespoły” ] [ „Wszystko”, „Konta”, „Kontakty” ]
Właściwość Elementy przycisku radiowego funkcji Patch [ „Użytkownicy”, „Zespoły” ] [ „Konta”, „Kontakty” ]
Właściwość Widoczne pola kombi „Użytkownicy” i „Zespoły” „Konta” i „Kontakty”

Nowa galeria powinna na przykład mieć właściwość Elementy:

Filter( Contacts,
    Radio1.Selected.Value = "All"
    Or (Radio1.Selected.Value = "Accounts" And 'Company Name' = ComboBox1.Selected)
    Or (Radio1.Selected.Value = "Contacts" And 'Company Name' = ComboBox1_1.Selected)
)

Aplikacja klienta jako pochodna aplikacji Właściciel z zastosowanymi prostymi zmianami.

Dwie ważne różnice między elementami Klient i Właściciel wymagają aktualizacji formuł wewnątrz galerii i formularza:

  1. Relacje jeden-do-wielu między relacje kontami i kontaktami mają różne nazwy, jeśli dotyczy to nazw tych typów tabel. Zamiast elementu Konta użyj opcji [@Konta]; zamiast elementu Kontakty użyj opcji [@Kontakty]. Używając globalnego obiektu rozsyłania, należy się upewnić, że odwołujesz się do typu tabeli w typie IsType i AsType. Ten problem występuje tylko w kontekście rekordu kontrolek galerii i formularzy.

  2. Pole Właściciel musi mieć wartość, ale pola Klient mogą być puste. Aby wyświetlać poprawny wynik bez nazwy typu, przetestuj ten przypadek za pomocą funkcji IsBlank i w zamian wyświetl pusty ciąg tekstowy.

Obie te zmiany są w tej samej formule, która jest wyświetlana na karcie niestandardowej w formularzu, a także we właściwości Tekst kontrolki etykiety galerii:

If( IsBlank( ThisItem.'Company Name' ), "",
    IsType( ThisItem.'Company Name', Accounts ),
        "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name',
    "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)

Aktualizacja do właściwości Tekst kontrolki etykiety podtytułu w galerii.

Po wprowadzonych zmianach można wyświetlić i zmienić pole Nazwa firmy w tabeli Kontakty.

Animacja pokazująca sposób, w jaki wybranie kontaktu zmienia inne kontrolki i formularz.

Opis kolumn wyszukiwania "Informacje"

Kolumna wyszukiwania Dotyczy różni się nieco od tej, która została już temat. Rozpoczniesz od zastosowania wzorców, które zostały opisane wcześniej w tym temacie, a potem poznasz inne sztuczki.

Można rozpocząć od tabeli Faksy. Ta tabela zawiera polimorficzną kolumnę odnośnika Dotyczy, która może odwoływać się do kont, kontaktów i innych tabel. Możesz użyć aplikacji dla encji Klienci i zmienić ją pod kątem encji Faksy.

Lokalizacja Klient — przykład Faksy — przykład
Wszędzie „Nazwa klienta” Dotyczy
Właściwość Elementy galerii Kontakty Faksy
Właściwość Elementy formularza Kontakty Faksy
Pierwszy argument funkcji Patch
we właściwości OnSelect przycisku
Kontakty Faksy

Ponownie musisz dodać źródło danych: tym razem dla encji Faksy. Na karcie Widok wybierz pozycję Źródła danych:

Okienko danych pokazujące tabele Konta, Zespoły, Użytkownicy, Kontakty i Faksy.

Ważną różnicą dla pola Dotyczy jest brak ograniczenia do encji Konta i Kontakty. W rzeczywistości listę tabel można rozszerzyć za pomocą tabel niestandardowych. Większość aplikacji może dostosowywać ten punkt bez modyfikowania, ale w galerii i w formularzu należy zaktualizować formułę odpowiadającą etykiecie:

If( IsBlank( ThisItem.Regarding ), "",
    IsType( ThisItem.Regarding, Accounts ),
        "Account: " & AsType( ThisItem.Regarding, Accounts ).'Account Name',
    IsType( ThisItem.Regarding, Contacts ),
        "Contacts: " & AsType( ThisItem.Regarding, Contacts ).'Full Name',
    ""
)

Zaktualizowana właściwość Tekst kontrolki podtytułu dla wyszukiwań typu Dotyczy.

Po wprowadzeniu tych zmian będziesz pracować z wyszukiwaniem typu Dotyczy tak samo jak w przypadku wyszukiwań Właściciel i Klient.

Animacja pokazująca sposób, w jaki wybranie elementu w galerii zmienia inne kontrolki i formularz.

Informacje o relacjach typu Dotyczy

Pole Dotyczy różni się pól Właściciel i Klient, ponieważ te ostatnie są relacjami typu wiele-do-jednego. W definicji odwrotna relacja jeden-do-wielu pozwala na zapisanie elementu First( Accounts ).Faxes.

Przejmijmy kopię zapasową i sprawdźmy definicje tabel. W Dataverse tabele, takie jak Faksy, Zadania, E-maile, Notatki, Rozmowy telefoniczne, Listy i Czaty są oznaczone jako działania. Możesz także tworzyć własne niestandardowe tabele działań. Podczas wyświetlania lub tworzenia tabeli działań jej ustawienia są wyświetlane w obszarze Więcej ustawień.

Ustawienie tabeli działania podczas tworzenia tabeli.

Inne tabele mogą być powiązane z tabelą działań, jeśli zostały włączone jako zadanie działania w ustawieniach tabeli. Konta, Kontakty i wiele innych tabel standardowych jest więc określonych (ponownie w obszarze Więcej ustawień).

Ustawienie zadania działania podczas tworzenia tabeli.

Wszystkie tabele działań i tabele zadań działań mają relację pomiędzy czynnościami a zadaniami. Jeśli filtr zostanie zmienić na Wszystkie u góry ekranu, wybierz tabelę Faksy, a następnie wybierz kartę relacje, zostaną wyświetlone wszystkie tabele, które mogą być elementem docelowym wyszukiwania Dotyczy.

Relacje w tabeli Faksy przedstawiające relacje wiele-do-jednego.

Jeśli pokażesz relacje dla tabeli Konta, pojawią się wszystkie tabele, które mogą być źródłem pola odnośnika Dotyczy.

Relacje w tabeli Konto przedstawiające Relacje jeden-do-wielu.

Co to wszystko znaczy?

  • Podczas pisania formuł należy wziąć pod uwagę, że lista tabel aktywności nie jest stała i można tworzyć własne. Formuła musi odpowiednio obsługiwać tabelę działań, która nie powinna być oczekiwana.
  • Zadania działań i działania mają relacje typu jeden-do-wielu. Można z łatwością poprosić o wszystkie faksy odnoszące się do danego konta.

Aby eksplorować tę koncepcję w aplikacji:

  1. Dodaj inny ekran.

    Wstawianie pustego ekranu.

  2. Wstaw kontrolkę galerii, zmień jej rozmiar i przenieś ją na lewą stronę ekranu.

  3. Na karcie Właściwości znajdującej się obok prawej strony ekranu ustaw właściwość Elementy galerii na Konta.

    Ustawianie właściwości Elementy na Konta w okienku właściwości.

  4. Ustaw układ galerii na Tytuł, a następnie ustaw pole tytułu na Nazwa konta.

    Ustawianie elementu Układ na Tytuł dla kontrolki galerii w okienku właściwości.

  5. Dodaj drugą galerię, zmień jej rozmiar i przenieś ją na prawą stronę ekranu.

  6. Ustaw właściwość Elementy nowej galerii na wartość Gallery2.Selected.Faxes.

    Ten krok zwraca filtrowaną listę faksów dla danego konta.

    Ustawianie właściwości Elementy galerii pokazującej faksy.

  7. Ustaw układ galerii na Tytuł i podtytuł, a następnie ustaw pole tytułu tak, aby zawierało pole Temat (może ono na przykład zawierać pisany małymi literami wyraz tytuł).

    Ustawianie tytułu na pole Temat.

Po wybraniu elementu z listy kont lista faksów będzie zawierać faksy tylko dla tego konta.

Animacja pokazująca wybór w galerii kont wpływający na listę faksów.

Tabela działań

Jak opisano w poprzedniej sekcji, można wyświetlić wszystkie faksy dla konta. Możesz jednak wyświetlić wszystkie działania dla konta, w tym faksy, wiadomości e-mail, rozmowy telefoniczne i innych interakcje.

W scenariuszu, w którym scenariusz można użyć funkcji Działania. Tabelę można wyświetlić, włączając w prawym górnym rogu przycisk Wszystkie, aby usunąć filtr z listy tabel.

Lista tabel przedstawiających tabelę Działanie.

Tabela Działanie jest specjalna. Po dodaniu rekordu do tabeli Faksy system tworzy również rekord w tabeli Działanie z kolumnami wspólnymi dla wszystkich tabel działań. Spośród tych kolumn Temat jest jedną z najciekawszych.

Możesz wyświetlić wszystkie działania, zmieniając w poprzednim przykładzie tylko jeden wiersz. Zamień Gallery2.Selected.Faxes na Gallery2.Selected.Activities.

Zmiana właściwości Elementy dla drugiej galerii, zmienianie z faksów na działania.

Rekordy pochodzą z tabeli Działanie, ale można użyć funkcji IsType do określenia, jakiego rodzaju działania są. Ponownie, przed użyciem typu IsType do typu tabeli, należy dodać źródło danych.

Okienko danych prezentujące wszystkie tabele wymagane dla funkcji IsType.

Stosując tę formułę, możesz wyświetlić typ rekordu w kontrolce etykiety w galerii:

If( IsType( ThisItem, Faxes] ), "Fax",
    IsType( ThisItem, 'Phone Calls' ), "Phone Call",
    IsType( ThisItem, 'Email Messages' ), "Email Message",
    IsType( ThisItem, Chats ), "Chat",
    "Unknown"
)

Ustawianie właściwości tekst na formułę w celu pokazania informacji dotyczących faksów, rozmów telefonicznych i innych działań.

Możesz również użyć funkcji AsType, aby uzyskać dostęp do pól określonego typu. Na przykład ta formuła określa typ poszczególnych działań i dla rozmów telefonicznych pokazuje numer telefonu i kierunek rozmowy z tabeli Numery telefonów:

If( IsType( ThisItem, Faxes ), "Fax",
    IsType( ThisItem, 'Phone Calls' ),
       "Phone Call: " &
       AsType( ThisItem, 'Phone Calls' ).'Phone Number' &
       " (" & AsType( ThisItem, 'Phone Calls' ).Direction & ")",
    IsType( ThisItem, 'Email Messages' ), "Email Message",
    IsType( ThisItem, Chats ), "Chat",
    "Unknown"
)

Rozwinięta właściwość tekstowa zawierająca więcej informacji o rozmowie telefonicznej.

W wyniku aplikacja wyświetli pełną listę działań. Pole Temat jest wyświetlane dla wszystkich typów działań, niezależnie od tego, czy uwzględnia je formuła. W przypadku znanych Ci typów działań możesz wyświetlić nazwy tych typów i informacje specyficzne dla danego typu dotyczące każdego działania.

Kompletny ekran pokazujący informacje dotyczące różnych rodzajów działań.

Tabela notatek

Do tej pory wszystkie przykłady Dotyczy były oparte na działaniach, ale tabela notatek przedstawia inną sprawę.

Podczas tworzenia tabeli można włączyć załączniki.

Włączanie załączników i notatek podczas tworzenia tabeli.

Jeśli zaznaczysz pole wyboru umożliwiające załączniki, zostanie utworzeniu relacji Dotyczy w tabeli notatek, jak pokazano na ilustracji w tabeli Konta:

Tabela kont pokazująca relację z Notatkami poprzez relację jeden-do-wielu.

Poza tą różnicą wyszukiwanie Dotyczy jest używane tak samo jak w przypadku korzystania z działań. Tabele z włączonymi załącznikami mają relację jeden do wielu z notatkami, tak jak w poniższym przykładzie:

First( Accounts ).Notes

Uwaga

Podczas pisania tego zapisu wyszukiwania dotyczy jest niedostępne w tabeli notatek. Nie można odczytać ani filtrować na podstawie kolumny Dotyczy oraz nie można ustawić kolumny przy użyciu funkcji Patch.

Dostępna jest jednak odwrotna relacja encji Notatki, więc można filtrować listę notatek dla rekordu, dla którego włączono obsługę załączników. Można również użyć funkcji Relate, aby dodać notatkę do tabeli encji Notatki rekordu, ale najpierw należy utworzyć notatkę, tak jak w poniższym przykładzie:

Relate( ThisItem.Notes, Patch( Notes, Defaults( Notes ), { Title: "A new note" } ) )

Strony działania

W trakcie pisania tej dokumentacji aplikacje kanwy nie obsługiwały stron działań.

Uwaga

Czy możesz poinformować nas o preferencjach dotyczących języka dokumentacji? Wypełnij krótką ankietę. (zauważ, że ta ankieta jest po angielsku)

Ankieta zajmie około siedmiu minut. Nie są zbierane żadne dane osobowe (oświadczenie o ochronie prywatności).