AsType- och IsType-funktioner
Gäller för: Arbetsyteappar Modellbaserade appar Power Pages Power Platform CLI
Kontrollerar en postreferens för en specifik tabelltyp (IsType) och kontrollerar referensen som en specifik typ (AsType).
Kommentar
PAC CLI pac power-fx-kommandon stöder inte IsType.
Beskrivning
Läs mer Förstå postreferenser och polymorfa uppslag för en bredare introduktion och mer information.
Ett uppslagsfält refererar vanligtvis till poster i en viss tabell. Eftersom tabelltypen är väletablerad kan du komma åt fälten i uppslagsfältet med hjälp av en enkel dot notation. Till exempel, First( Accounts ).'Primary Contact'.'Full Name' går från tabellen Konton till posten Primär kontakt i fältet Kontakter och extraherar fältet Fullständigt namn.
Microsoft Dataverse stöder även polymorfiskt uppslagsfält som kan referera till poster från en uppsättning tabeller.
Sökfält | Kan referera till |
---|---|
Ägare | Användare eller team |
Kund | Konton eller kontakter |
Angående | Konton, kontakter, kunskapsartiklar osv. |
I formler för arbetsyteappar använder du postreferenser för att arbeta med polymorfiska uppslag. Eftersom en postreferens kan referera till olika tabeller vet du inte vilka fält som är tillgängliga när du skriver en formel. Formatet Record.Field är inte tillgänglig. Dessa formler måste anpassas till posterna som programmet stöter på när det körs.
Funktionen IsType testar om en postreferens refererar till en viss tabelltyp. Funktionen returnerar boolesk TRUE eller FALSE.
AsType-funktionen används för att skapa en postreferens som en specifik tabelltyp, som ibland kallas för omvandling. Du kan använda resultatet som om det var en post i tabellen och använda formatet Record.Field för att komma åt alla fält för den posten. Ett fel uppstår om referensen inte är av en specifik typ.
Använd dessa funktioner tillsammans om du först vill testa en posts tabelltyp och sedan registrera den som en post av den typen så att fälten är tillgängliga:
If( IsType( First( Accounts ).Owner, Users ),
AsType( First( Accounts ).Owner, Users ).'Full Name',
AsType( First( Accounts ).Owner, Teams ).'Team Name'
)
Du behöver bara dessa funktioner om du använder fälten i en postreferens. Du kan till exempel använda postreferenser i funktionen Filter utan IsType eller AsType:
Filter( Accounts, Owner = First( Users ) )
På samma sätt kan du använda postreferenser med funktionen Patch:
Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )
Om det används i en postkontext, till exempel i kontrollen Gallery eller Edit form kanske du behöver använda global disambiguationsoperator för att referera till tabelltypen. Den här formeln gäller till exempel för ett galleri som visar en lista över kontakter där Företagsnamn är ett uppslag för Kund:
If( IsType( ThisItem.'Company Name', Accounts ),
AsType( ThisItem.'Company Name', Accounts ).'Account Name',
AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)
För båda funktionerna anger du typen via namnet på datakällan som är ansluten till tabellen. För att formeln ska fungera måste du också lägga till en datakälla i programmet för de typer som du vill testa eller omvandla. Du måste till exempel lägga till tabellen Användare som en datakälla om du vill använda IsType och AsType med uppslag Ägare och poster från den tabellen. Du kan endast lägga till de datakällor som du faktiskt använder i programmet. Du behöver inte lägga till alla tabeller som en sökning kan referera till.
Om postreferensen är tom returnerar IsType FALSE och AsType returnerar tom. Alla fält i en tom post blir tomma.
Syntax
AsType( RecordReference; TableType )
- RecordReference – Obligatoriskt. En postreferens, ofta ett uppslagsfält som kan referera till en post i någon av flera tabeller.
- TableType – obligatoriskt. Den specifika tabell som posten ska användas i.
IsType( RecordReference; TableType )
- RecordReference – Obligatoriskt. En postreferens, ofta ett uppslagsfält som kan referera till en post i någon av flera tabeller.
- TableType – obligatoriskt. Den specifika tabell som ska testas.
Exempel
Förstå postreferenser och polymorfa sökningar innehåller omfattande exempel.
Skapa en tom arbetsyteapp för surfplattor.
I det vänstra fönstret väljer du Data>Lägg till data. Lägg sedan till tabeller konton och kontakter.
I vänster ruta, välj + (Infoga) >Layout>Tomt lodrätt galleri.
Välj Anslut till data och välj Kontakter som datakälla.
Ange galleriets layout till rubrik och underrubrik.
I fönstret Data, öppna listan Title1 och välj sedan Fullständigt namn.
Välj label-kontrollen Subtitle1.
Ange egenskapen Text för Subtitle1 till denna formel:
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' )
Underrubriken i galleriet visas följande värden:
- "--" om 'Företagsnamn' är tomt.
- "Konto: " och sedan fältet Kontonamn från tabellen Konton om fältet Företagsnamn refererar till ett konto.
- "Konto: " och sedan fältet Fullständigt namn från tabellen Kontakter om fältet Företagsnamn refererar till en kontakt.
Resultatet kan skilja sig från dem i det här ämne eftersom det använder exempeldata som har ändrats för att visa ytterligare resultattyper.