Partajați prin


Funcțiile AsType și IsType

Se aplică pentru: planșă de lucru apps Aplicații bazate pe model Power Pages Power Platform CLI

Verifică dacă o referință de înregistrare se referă la un anumit tip de tabel (IsType) și tratează referința ca pe un tip specific (AsType).

Notă

Comenzile PAC CLI pac power-fx nu acceptă IsType.

Descriere

Citiți Înțelegerea referințelor la înregistrări și a căutărilor polimorfe pentru o introducere mai largă și mai multe detalii.

Un câmp de căutare se referă de obicei la înregistrările dintr-un anumit tabel. Deoarece tipul tabelului este bine stabilit, puteți accesa câmpurile căutării utilizând o notație simplă cu puncte. De exemplu, Primul (Conturi).„Contact principal”.„Nume complet” trece de la tabelul Conturi la înregistrarea Contact primar în tabelul Contacte și extrage câmpul Nume complet.

Microsoft Dataverse acceptă, de asemenea, câmpuri de căutare polimorfe, care se pot referi la înregistrări dintr-un set de tabele, ca în aceste exemple.

Câmp de căutare Pot face refere la
Proprietarul Utilizatori sau Echipe
Client Conturi sau Contacte
Referitor la Conturi, Contacte, Articole din baza de cunoștințe etc.

În formulele cu aplicații pe pânză, utilizați referințe de înregistrare pentru a lucra cu căutări polimorfe. Deoarece o referință de înregistrare se poate referi la diferite tabele, nu știți ce câmpuri vor fi disponibile atunci când scrieți o formulă. Notarea Record.Field nu este disponibilă. Aceste formule trebuie să se adapteze la înregistrările pe care aplicația le întâlnește atunci când rulează.

Funcția IsType verifică dacă o referință de înregistrare se referă la un anumit tip de tabel. Funcția returnează un Boolean TRUE sau FALSE.

Funcția AsType tratează o referință de înregistrare ca un tip de tabel specific, uneori denumit modelare. Puteți utiliza rezultatul ca și cum ar fi o înregistrare a tabelului și puteți utiliza și notația Record.Field pentru a accesa toate câmpurile acelei înregistrări. O eroare apare dacă referința nu este de tipul specific.

Utilizați aceste funcții împreună pentru a testa mai întâi tipul de tabel al unei înregistrări și apoi tratați-l ca o înregistrare de acel tip, astfel încât câmpurile să fie disponibile:

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

Aveți nevoie de aceste funcții numai dacă accesați câmpurile unei referințe de înregistrare. De exemplu, puteți utiliza referințe de înregistrare în funcția Filter fără IsType sau AsType:

Filter( Accounts, Owner = First( Users ) )

În mod similar, puteți utiliza referințe de înregistrare cu funcţia Patch:

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

Dacă este utilizat într-un context de înregistrare, cum ar fi în cadrul unui control Galerie sau Editați formularul, s-ar putea să fie nevoie să utilizați operator global de dezambiguizare pentru a face referire la tipul de tabel. De exemplu, această formulă ar fi eficientă pentru o galerie care afișează o listă de contacte unde Numele companie este o căutare de Client:

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

Pentru ambele funcții, specificați tipul prin numele sursă de date conectat la tabel. Pentru ca formula să funcționeze, trebuie să adăugați, de asemenea, o aplicație sursă de date pentru orice tipuri pe care doriți să le testați sau să le alocați. De exemplu, trebuie să adăugați tabelul Utilizatori ca sursă de date dacă doriți să utilizați IsType și AsType cu un Proprietar căutare și înregistrări din tabelul respectiv. Puteți adăuga numai sursele de date pe care le utilizați efectiv în aplicația dvs.; nu este nevoie să adăugați toate tabelele la care ar putea face referire o căutare.

Dacă referința înregistrării este necompletată, IsType returnează FALSE și AsType returnează necompletat. Toate câmpurile unei înregistrări necompletate vor fi necompletate.

Sintaxă

AsType( RecordReference, TableType )

  • RecordReference - Obligatoriu. O referință de înregistrare, adesea un câmp de căutare care se poate referi la o înregistrare în oricare dintre tabelele multiple.
  • TableType - Necesar. Tabelul specific în care ar trebui convertită înregistrarea.

IsType( RecordReference, TableType )

  • RecordReference - Obligatoriu. O referință de înregistrare, adesea un câmp de căutare care se poate referi la o înregistrare în oricare dintre tabelele multiple.
  • TableType - Necesar. Tabelul specific pentru care să testați.

Exemplu

Înțelegerea referințelor la înregistrări și a căutărilor polimorfe conține exemple ample.

  1. Creați o aplicație proiectată pe pânză necompletată pentru tablete.

  2. În panoul din stânga, selectați Date>Adăugați date. Și apoi, adăugați tabele Conturi și Contacte.

    Aplicație necompletată cu două surse de date: conturi și contacte.

  3. În panoul din stânga, selectați + (Insert) >Aspect>Galerie verticală necompletată.

    Inserați un control de galerie cu un aspect vertical gol.

  4. Selectați Conectați-vă la date, apoi selectați Contacte ca sursă de date.

  5. Setați aspectul galeriei la Titlu și subtitlu.

    Deschideți selectorul de aspect din panoul de proprietăți.

    Setați aspectul la Titlu și subtitrare.

  6. În panoul Date, deschideți lista Title1, apoi selectați Nume complet.

    Setați valoarea titlului.

  7. Selectați controlul etichetelor Subtitle1.

    Setați valoarea subtitrarilor.

  8. Setați proprietatea Text a Subtitle1 la această formulă:

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

    Ecranul este acum complet și arată conturile și contactele amestecate în galerie.

    Subtitlul din galerie arată aceste valori:

    • "--” dacă "Numele Companiei” este necompletat.
    • Câmpul „Cont:” și apoi Nume de cont din tabelul Conturi dacă câmpul Numele companiei se referă la un cont.
    • Câmpul „Contact:” și apoi Nume complet din tabelul Persoane de contact dacă câmpul Numele companiei se referă la o persoane de contact.

    Rezultatele dvs. ar putea diferi de cele din acest subiect, deoarece acesta folosește date eșantion care au fost modificate pentru a afișa tipuri suplimentare de rezultate.