AsType- und IsType-Funktionen

Gilt für: Canvas-Apps Modellgesteuerte Apps Power Platform CLI

Prüft eine Datensatzreferenz auf einen bestimmten Tabellentyp (IsType) und behandelt die Referenz als einen bestimmten Typ (AsType).

Anmerkung

PAC CLI pac power-fx-Befehle unterstützen IsType nicht.

Description

Lesen Sie Grundlegendes zu Datensatzreferenzen und polymorphen Suchvorgängen für eine breitere Einführung und weitere Details.

Ein Nachschlagefeld bezieht sich normalerweise auf Datensätze in einer bestimmten Tabelle. Da der Tabellentyp gut etabliert ist, können Sie mit einer einfachen Punktnotation auf die Felder der Suche zugreifen. Beispielsweise führt First( Kunden). Primärer Kontakt. Vollständiger Name von der Tabelle Kunden zum Primären Kontaktdatensatz in der Tabelle Kontakte und extrahiert das Feld Vollständiger Name.

Microsoft Dataverse unterstützt auch polymorphe Nachschlagefelder, die auf Datensätze aus einer Reihe von Tabellen verweisen können, wie in diesen Beispielen.

Nachschlagefeld Kann sich beziehen auf
Bes. Users oder Teams
Kunde Accounts oder Contacts
Betreff Konten, Kontakte, Wissensartikel usw.

Verwenden Sie in Canvas-App-Formeln Datensatzreferenzen, um mit polymorphen Suchen zu arbeiten. Da eine Datensatzreferenz auf verschiedene Tabellen verweisen kann, wissen Sie nicht, welche Felder beim Schreiben einer Formel verfügbar sind. Die Notation Record.Field ist nicht verfügbar. Diese Formeln müssen sich an die Datensätze anpassen, auf die die App beim Ausführen stößt.

Die Funktion IsType überprüft, ob eine Datensatzreferenz auf einen bestimmten Tabellentyp verweist. Die Funktion gibt einen Booleschen Wert „TRUE“ oder „FALSE“ zurück.

Die Funktion AsType behandelt eine Datensatzreferenz als einen bestimmten Tabellentyp, manchmal auch als Umwandlung bezeichnet. Sie können das Ergebnis so verwenden, als ob es ein Datensatz der Tabelle wäre, und erneut die Notation Aufnahme.Feld verwenden, um auf alle Felder dieses Datensatzes zuzugreifen. Ein Fehler tritt auf, wenn die Referenz nicht vom spezifischen Typ ist.

Verwenden Sie diese Funktionen zusammen, um zuerst den Tabellentyp eines Datensatzes zu testen und ihn dann als Datensatz dieses Typs zu behandeln, damit die Felder verfügbar sind:

If( IsType( First( Accounts ).Owner, Users ),
    AsType( First( Accounts ).Owner, Users ).'Full Name',
    AsType( First( Accounts ).Owner, Teams ).'Team Name'
)

Sie benötigen diese Funktionen nur, wenn Sie auf die Felder einer Datensatzreferenz zugreifen. Beispielsweise können Sie Datensatzreferenzen in der Filter-Funktion ohne IsType oder AsType verwenden:

Filter( Accounts, Owner = First( Users ) )

Ebenso können Sie Datensatzreferenzen mit der Patch-Funktion verwenden:

Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )

Bei Verwendung in einem Datensatzkontext, z. B. innerhalb von einem Steuerelement Gallery oder Edit form müssen Sie möglicherweise die globale Mehrdeutigkeitsverwendung nutzen, um auf den Tabellentyp verweisen. Diese Formel ist beispielsweise für einn Katalog wirksam, in dem eine Liste der Kontakte angezeigt wird, bei denen Name des Unternehmens eine Kunde-Suche ist:

If( IsType( ThisItem.'Company Name', Accounts ),
    AsType( ThisItem.'Company Name', Accounts ).'Account Name',
    AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)

Für beide Funktionen geben Sie den Typ über den Namen des Datenquelle an, der mit der Tabelle verbunden ist. Damit die Formel funktioniert, müssen Sie der App auch ein Datenquelle für alle Typen hinzufügen, die Sie testen oder umwandeln möchten. Sie müssen beispielsweise die Tabelle Benutzer als Datenquelle hinzufügen, wenn Sie IsType und AsType mit einer Besitzer-Suche und Datensätzen aus dieser Tabelle verwenden möchten. Sie können nur die Datenquellen hinzufügen, die Sie tatsächlich in Ihrer App verwenden. Sie müssen nicht alle Tabellen hinzufügen, auf die eine Suche verweisen könnte.

Wenn die Datensatzreferenz leer ist, gibt IsType „FALSE“ zurück und AsType gibt leer zurück. Alle Felder eines leeren Datensatzes werden leer sein.

Syntax

AsType( DatensatzReferenz, Tabellentyp )

  • RecordReference - Erforderlich. Eine Datensatzreferenz, oft ein Nachschlagefeld, das auf einen Datensatz in einer von mehreren Tabellen verweisen kann.
  • Tabellentyp – Erforderlich. Die spezifische Tabelle, in die der Datensatz umgewandelt werden soll.

IsType( RecordReference, TableType )

  • RecordReference - Erforderlich. Eine Datensatzreferenz, oft ein Nachschlagefeld, das auf einen Datensatz in einer von mehreren Tabellen verweisen kann.
  • Tabellentyp – Erforderlich. Die spezifische Tabelle, für die getestet werden soll.

Beispiel

Grundlegendes zu Datensatzreferenzen und polymorphen Suchvorgängen enthält umfangreiche Beispiele.

  1. Erstellen Sie eine leere Canvas-App für Tablets.

  2. Wählen Sie im linken Bereich Daten>Daten hinzufügen. Und dann fügen Sie Kunden und Kontakte Tabellen hinzu.

    Leere App mit zwei Datenquellen: Konten und Kontakte

  3. Wählen Sie im linken Bereich + (Einfügen) >Layout>Leerer vertikaler Katalog.

    Einfügen eines Gallery-Steuerelements mit Leerzeichen vertikal-Layout

  4. Wählen Sie Mit Daten verbinden und wählen Sie dann Kontakte als Datenquelle.

  5. Legen Sie das Layout des Katalogs auf Titel und Untertitel fest.

    Öffnen der Layoutauswahl im Eigenschaftenbereich

    Festlegen des Layouts auf Titel und Untertitel

  6. Öffnen Sie im Bereich Daten die Liste Title1 und wählen Sie dann Vollständiger Name aus.

    Titelwert einstellen

  7. Wählen Sie das Label-Steuerelement Subtitle1 aus.

    Untertitelwert einstellen

  8. Legen Sie die Text-Eigenschaft von Subtitle1 auf diese Formel fest:

    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'
    )
    

    Der Bildschirm ist nun vollständig und zeigt Konten und Kontakte an, die im Katalog gemischt sind

    Der Untertitel im Katalog zeigt diese Werte:

    • "--" wenn 'Name des Unternehmens'leer ist.
    • Konto und dann das Feld Kontobezeichung aus der Tabelle Konten, wenn das Feld Name der Firma sich auf ein Konto bezieht.
    • Kontakt und dann das Feld Vollständiger Name aus der Tabelle Kontakte, wenn das Feld Name der Firma sich auf einen Kontakt bezieht.

    Ihre Ergebnisse können von denen in diesem Thema abweichen, da Beispieldaten verwendet werden, die geändert wurden, um zusätzliche Ergebnistypen anzuzeigen.