AsType ja IsType funktsioonid

Function Applies to
AsType Lõuendirakendused Copilot Studio mudelipõhised rakendused Power Platform CLI Dataverse funktsioonid Power Pages
IsType Canvas apps Copilot Studio Mudelipõhised rakendused Dataverse funktsioonid Power Pages

Kontrollib, kas kirjeviide on kindel tabelitüüp (IsType) ja kohtleb viidet seda tüüpi (AsType).

Note

PAC CLI pac power-fx käsud ei toeta .IsType

Description

Funktsioone AsType ja IsType funktsioone saab kasutada kirjeviidete (nt andmevaevuste polümorfilised otsingud) ja dünaamiliste väärtuste teisendamiseks tipitud väärtusteks, mida saab otse kasutada.

Record References

Lugege jaotist Kirjete viited ja polümorfne otsing laiema kasutuselevõtu ja üksikasjalikuma teabe saamiseks.

Otsinguväli viitab tavaliselt teatud tabeli kirjetele. Kuna tabeli tüüp on hästi välja kujunenud, pääsete otsingu väljadele juurde lihtsa punktimärke abil. Näiteks Esimene( Ettevõtted ).'Esmane kontaktisik'.'Täisnimi liigub tabelist Ettevõtted tabelist kuni Esmase kontakti kirje Kontaktide tabelis ekstraktib Täisnime välja.

Microsoft Dataverse toetab ka polüotsinguvälju, mis võib viidata kirjete kogum tabelid, nagu need näited.

Lookup field Võib viidata ka
Owner Kasutajad või meeskonnad
Customer Kontod või kontaktid
Regarding Kontod, kontaktid, teadmusartiklid jne.

Kasutage lõuendrakenduste valemites polümorfsete otsingutega töötamiseks kirjete viiteid. Kuna kirjeviide võib viidata erinevatele tabelitele, ei saa te teada, millised väljad on valemi kirjutamisel käitusajal saadaval. Märge Record.Field pole saadaval. Need valemid peavad kohanduma kirjetega, millega rakendus töötamisel kokku puutub.

Funktsioon IsType kontrollib, kas kirjeviide viitab kindlale tabelitüübile. Funktsioon tagastab tõeväärtuse tõene või väär.

Funktsioon AsType käsitleb kirjeviidet kindla tabelitüübina, mida nimetatakse ka esitamiseks. Tulemit kasutatakse nii, nagu oleks tegemist tabeli kirjega, ja kasutage kirje kõigile väljadele juurdepääsemiseks sätet Record.Field . Kui viide pole konkreetset tüüpi, ilmneb tõrge.

Nende funktsioonide abil saate esmalt kontrollida kirje tabelitüüpi ja seejärel käsitleda seda seda tüüpi kirjena, et väljad oleksid saadaval.

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

Neid funktsioone on vaja ainult siis, kui avate kirjeviite väljad. Näiteks kasutatakse kirjeviiteid funktsioonis Filter ilma IsType või AsType:

Filter( Accounts, Owner = First( Users ) )

Samamoodi saate kasutada kirjeviiteid funktsiooniga Patch (Plaasterda).

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

Kui kasutate neid funktsioone kirjekontekstis (nt Galerii või Redigeeri vormi juhtelementi), võib teil olla vaja globaalset ühemõttemärki tabelitüübile viitamiseks. See valem töötab näiteks galeriis, kus kuvatakse kontaktide loend, kus ettevõtte nimi on kliendiotsing :

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

Mõlema funktsiooni korral määrake tüüp, kasutades tabeliga ühendatud andmeallika nime. Selleks, et valem töötaks, lisage rakendusse andmeallikas igat tüüpi andmete jaoks, mida soovite kontrollida või anda. Näiteks kui soovite kasutada tabelit Kasutajad ja IsType koos AsType ka selle tabeli kirjeid, lisage andmeallikana tabel Kasutajad. Lisage ainult rakenduses kasutatavad andmeallikad; te ei pea lisama kõiki tabeleid, millele otsing võiks viidata.

Kui kirjeviide on tühi, IsType tagastab väärtuse FALSE ja AsType tagastab tühja väärtuse. Kõik tühja kirje väljad on samuti tühjad .

Dynamic values

Veebi API või funktsiooni [ParseJSON] dünaamiline väärtus tuleb teisendada konkreetseks tipitud väärtuseks, enne kui saate seda power Fx-is kasutada. Siin on mõned võimalused.

  1. Tippige väli kaudselt kasutatavasse kohta. Näiteks teisendatakse objekt arvuks, kui kasutate seda koos tehtemärgiga + , kui seda saab teisendada arvuks. See suvand võib põhjustada ootamatuid teisendusi ega saa kirjeid ja tabeleid tervikuna teisendada.
  2. Tippige iga väli eraldi koos kümnend-, teksti -, kuupäevaaja-, GUID- ja muud tüüpi konstruktori funktsioonidega. See suvand on valemitele kõige invasiivsem, kuna peate tegema iga välja eraldi.
  3. Tippige funktsiooni ParseJSON teise argumendiga selgesõnaliselt JSON. See suvand on lihtne ja see ei vaja dünaamilist väärtust.
  4. Funktsiooni abil saate dünaamilise väärtuse otse tippida AsType . Enne funktsiooniga IsType teisendamist saate kontrollida ka tüüpi.

Syntax

AsType( RecordReference, TableType )

  • RecordReference - nõutav. Kirjeviide ( sageli otsinguväli, mis viitab mitme tabeli kirjele).
  • TableType - nõutav. Konkreetne tabel, millesse soovite kirje lisada.

AsType( DynamicValue, TypeSpecification )

IsType( RecordReference, TableType )

  • RecordReference - nõutav. Kirjeviide, sageli otsinguväli, mis võib viidata mõne mitme tabeli kirjele.
  • TableType - nõutav. Kindel tabel, mille jaoks testida.

IsType( DynamicValue, TypeSpecification )

  • DynamicValue – nõutav. Dünaamiline väärtus funktsioonist ParseJSON või API-kutsest.
  • TypeSpecification - nõutav. Tüübi nimi või tüübispetsifikatsioon, mis on määratletud funktsiooniga Type (Tüüp).

Examples

Record References

Kirjeviidete mõistmine ja polümorfsed otsingud sisaldavad ulatuslikke näiteid.

  1. Lõuendirakenduste loomine tahvelarvutitele.

  2. Valige vasakul paanil Andmed Andmete>lisamine ja seejärel lisage kontode ja kontaktide tabelid .

    Tühi rakendus kahe andmeallikaga: ettevõtted ja kontaktid.

  3. Valige vasakul paanil + (Lisa) >Paigutus>Tühi vertikaalgalerii.

    Sisestage galerii juhtelement tühja vertikaalse paigutusega.

  4. Valige Andmetega ühenduse loomine ja seejärel valige Kontaktid andmeallikana.

  5. Määrake galeriipaigutuse väärtuseks Tiitel ja alapealkiri.

    Avage paigutuse valija atribuutide paanilt.

    Määrake paigutuseks Pealkiri ja subtiitrid.

  6. Avage paanil Data (Andmed) loend Title1 ja valige seejärel Full Name (Täisnimi).

    Määrake pealkirja väärtus.

  7. Valige sildi juhtelement Subtitle1.

    Määrake subtiitrite väärtus.

  8. Määrake Subtitle1 atribuut Text (Tekst) järgmisele valemile.

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

    Kuva on nüüd valmis, kuvades galeriis omavahel segatud kontod ja kontaktid.

    Galerii alapealkiri kuvab järgmised väärtused.

    • "--", kui 'Company Name' (Ettevõtte nimi) on tühi.
    • "Konto: " ja tabeli Kontod välja Konto nimi, kui väli Ettevõtte nimi viitab kontole.
    • "Kontakt: " ja tabeli Kontaktid väli Täisnimi, kui väli Ettevõtte nimi viitab kontaktile.

    Tulemid võivad erineda, kuna näidisandmeid saab suurema hulga tulemitüüpide kuvamiseks muuta.

Dynamic values

Järgmised näited näitavad lihtsat JSON-kirjet, AsType mida IsType ja Pac CLI Power Fx REPL tõlgendavad mitmel viisil.

Selles esimeses näites ei esitata ParseJSON-ile tüübiteavet, seega tagastab see dünaamilise väärtuse.

>> Set( rec, ParseJSON( "{""a"":1}" ) )
rec: <Dynamic: Use Value, Text, Boolean, or other functions to establish the type>

Väli teisendatakse kaudselt arvuks, kui seda kasutatakse numbrilises kontekstis.

>> 1 + rec.a
2

Teise võimalusena teisendab see näide kirje selgesõnaliselt tipitud Power Fx kirjeks teise argumendiga ParseJSON-iks .

>> ParseJSON( "{""a"":1}", Type( {a: Number} ) )
{a:1}

Ja teine alternatiiv, see näide teisendab kirje konkreetselt tipitud Power Fx-kirjeks, kasutades .AsType

>> AsType( ParseJSON( "{""a"":1}" ), Type( {a: Number} ) )
{a:1}

Kui te pole kindel, testitakse selles näites tüüpi enne selle funktsiooniga IsType teisendamist.

>> IsType( ParseJSON( "{""a"":1}" ), Type( {a: Number} ) )
true