AsType ir IsType funkcijos

Function Applies to
AsType "Canvas apps Copilot Studio Model", pagrįstos " Power Platform CLI Dataverse" funkcijomis "Power Pages"
IsType "Canvas apps Copilot Studio Model", pagrįstos " Dataverse", veikia "Power Pages"

Tikrina, ar įrašo nuoroda yra konkretus lentelės tipas (IsType) ir nuorodą laiko tuo tipu (AsType).

Note

PAC CLI pac power-fx komandos nepalaiko IsType.

Description

Funkcijos AsType ir IsType gali būti naudojamos įrašų nuorodoms (pvz., "Dataverse" daugiamorfinėms peržvalgoms) ir dinamines reikšmes konvertuoti į įvestas reikšmes, kurias galima naudoti tiesiogiai.

Record References

Skaitykite Įrašų nuorodų ir polimorfiškų peržvalgų supratimas, kad gautumėte daugiau informacijos.

Peržvalgos laukas paprastai nurodo konkrečios lentelės įrašus. Kadangi lentelės tipas yra gerai žinomas, pasiekite peržvalgos laukus naudodami paprastą taškų žymėjimą. Pavyzdžiui, Pirmasis( klientai ).'Pirminis kontaktas'.'Visas vardas' išėjimai iš Sąskaitos lentelė į pirminio kontakto įrašų kontaktų lentelėje ir išskleiskite Visas vardas laukelis.

Microsoft Dataverse taip pat palaikomorphic peržvalgos laukus, kurie gali nurodyti įrašus iš lentelių rinkinio, kaip nurodyta šiuose pavyzdžiuose.

Lookup field Gali nurodyti
Owner Vartotojai arba komandos
Customer Paskyros arba kontaktai
Regarding Paskyros, kontaktai, informaciniai straipsniai ir kt.

Drobės programos formulėse darbui su polimorfinėmis peržvalgomis naudokite įrašų nuorodas. Kadangi įrašo nuoroda gali nurodyti skirtingas lenteles, negalite žinoti, kurie laukai yra pasiekiami vykdymo metu, kai rašote formulę. Record.Field žymėjimas yra negalimas. Šios formulės turi prisitaikyti prie įrašų, su kuriais programa susiduria, kai ji veikia.

Funkcija IsType tikrina, ar įrašo nuoroda nurodo konkretų lentelės tipą. Funkcija pateikia Bulio logikos reikšmę TRUE arba FALSE.

Funkcija AsType įrašo nuorodą traktuoja kaip konkretų lentelės tipą, dar vadinamą liejimu. Rezultatą naudojate taip, lyg jis būtų lentelės įrašas, ir naudokite įrašą Record.Field , kad pasiektumėte visus to įrašo laukus. Jei nuoroda nėra konkretaus tipo, įvyksta klaida.

Naudokite šias funkcijas, kad pirmiausia patikrintumėte įrašo lentelės tipą ir tada galėtumėte laikyti jį to tipo įrašu, kad laukai būtų pasiekiami:

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

Šios funkcijos reikalingos tik tada, jei pasiekiate įrašo nuorodos laukus. Pavyzdžiui, galite naudoti įrašo nuorodas funkcijoje Filtras be IsType arba AsType:

Filter( Accounts, Owner = First( Users ) )

Taip pat galite naudoti įrašų nuorodas su Pataisos funkcija:

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

Kai naudojate šias funkcijas įrašo kontekste, pvz., galerijoje arba formos valdiklyje Redaguoti , gali reikėti visuotinio dviprasmiškumo operatoriaus , kad nurodytumėte lentelės tipą. Pavyzdžiui, ši formulė veikia galerijoje, kurioje rodomas kontaktų sąrašas, kai įmonės pavadinimas yra klientų peržvalga:

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

Abiem funkcijoms nurodykite tipą naudodami prie lentelės prijungto duomenų šaltinio pavadinimą. Kad formulė veiktų, įtraukite duomenų šaltinį į programėlę, jei norite patikrinti ar pakeisti. Pavyzdžiui, įtraukite lentelę Vartotojai kaip duomenų šaltinį, jei norite naudoti IsType , ir AsTypesu savininko peržvalga ir įrašais iš tos lentelės. Įtraukite tik duomenų šaltinius, kuriuos naudojate savo programoje; jums nereikia įtraukti visų lentelių, kurias gali nurodyti peržvalga.

Jei įrašo nuoroda yra tuščia, IsType pateikia FALSE ir AsType pateikia tuščią. Visi tuščio įrašo laukai taip pat yra tušti .

Dynamic values

Dinaminę reikšmę iš žiniatinklio API arba [ParseJSON funkcijos] reikia konvertuoti į konkrečią įvestą reikšmę, kad galėtumėte ją naudoti "Power Fx". Toliau pateikiamos kelios parinktys.

  1. Netiesiogiai įveskite lauką naudojimo vietoje. Pavyzdžiui, objektas konvertuojamas į skaičių, jei jį naudojate su + operatoriumi, jei jį galima konvertuoti į skaičių. Ši parinktis gali sukelti netikėtų konvertavimų ir negali konvertuoti įrašų ir lentelių kaip visumos.
  2. Aiškiai įveskite kiekvieną lauką atskirai, naudodami dešimtainio skaičiaus, teksto, datetime, GUID ir kitas tipo konstruktoriaus funkcijas. Ši parinktis labiausiai invazinė formulėms, nes kiekvieną lauką reikia atlikti atskirai.
  3. Aiškiai įveskite JSON su antruoju argumentu į ParseJSON funkciją. Ši parinktis yra paprasta ir jos nereikia dinaminei reikšmei.
  4. Aiškiai įveskite dinaminę reikšmę naudodami AsType funkciją. Prieš bandydami konvertuoti funkciją IsType , taip pat galite patikrinti tipą.

Syntax

AsType( Įrašo nuoroda, Lentelės tipas )

  • "RecordReference" - būtina. Įrašo nuoroda, dažnai peržvalgos laukas, nurodantis įrašą bet kurioje iš kelių lentelių.
  • TableType - būtina. Konkreti lentelė įrašui perduoti.

AsType( DynamicValue, TypeSpecification )

  • DynamicValue – būtina. Dinaminė reikšmė iš funkcijos ParseJSON arba API iškvietimo.
  • TypeSpecification - būtina. Tipo pavadinimas arba tipo specifikacija, kurią apibrėžiate naudodami funkciją Tipas.

IsType( Įrašo nuoroda, Lentelės tipas )

  • "RecordReference" - būtina. Įrašo nuoroda, dažnai peržvalgos laukas, gali kuris gali nurodyti įrašą bet kurioje iš kelių lentelių.
  • TableType - būtina. Konkreti lentelė, kurios testą reikia patikrinti.

IsType( DynamicValue, TypeSpecification )

Examples

Record References

Suprasti įrašų nuorodas ir polimorfines peržvalgas yra daug pavyzdžių.

  1. Sukurkite tuščią drobės programą, skirtą planšetiniams kompiuteriams.

  2. Kairiojoje srityje pasirinkite Duomenys>Įtraukti duomenis, tada įtraukite lenteles Paskyros ir Kontaktai .

    Tuščia programa su dviem duomenų šaltiniais: klientai ir kontaktai.

  3. Kairiojoje srityje pasirinkite + (Įterpti) >Maketo>tuščias vertikalią galeriją.

    Galerijos valdiklio įterpimas naudojant tuščią vertikalų maketą.

  4. Pasirinkite Prisijungti prie duomenų, tada rinkitės Kontaktai duomenų šaltinis.

  5. Nustatykite galerijos maketo pavadinimą ir paantraštę.

    Atidarykite maketo parinkiklį ypatybių srityje.

    Nustatykite išdėstymą į Pavadinimas ir subtitrai.

  6. Duomenų srityje atidarykite Title1 sąrašą ir pasirinkite Vardas ir pavardė.

    Nustatykite pavadinimo reikšmę.

  7. Pasirinkite Subtitle1 žymos valdiklį.

    Nustatykite subtitrų vertę.

  8. Nustatykite Subtitle1Teksto ypatybę pagal šią 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'
    )
    

    Dabar baigtas ekranas, kuriame rodomos galerijoje sumaišytos paskyros ir kontaktai.

    Galerijos paantraštė rodo šias reikšmes:

    • „--“, jei Įmonės pavadinimas yra tuščias.
    • "Paskyra: " ir laukas Sąskaitos pavadinimas iš lentelės Klientai , jei laukas Įmonės pavadinimas nurodo paskyrą.
    • "Kontaktas: " ir laukas Vardas ir pavardė iš lentelės Kontaktai , jei laukas Įmonės pavadinimas nurodo kontaktą.

    Jūsų rezultatai gali skirtis, nes duomenų pavyzdžius galima modifikuoti, kad būtų rodoma daugiau rezultatų tipų.

Dynamic values

Toliau pateikti pavyzdžiai rodo paprastą JSON įrašą, kurį Įvairiais būdais interpretuoja ParseJSON, AsTypeir IsTypePac CLI Power Fx REPL.

Šiame pirmajame pavyzdyje ParseJSON nepateikiama jokia tipo informacija, todėl ji grąžina dinaminę reikšmę.

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

Laukas netiesiogiai konvertuojamas į skaičių, kai naudojamas skaitiniame kontekste.

>> 1 + rec.a
2

Kaip alternatyva, šiame pavyzdyje įrašas aiškiai konvertuojamas į įvestą Power Fx įrašą, o antrasis argumentas - į ParseJSON.

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

Be to, šiame pavyzdyje įrašas aiškiai konvertuojamas į įvestą "Power Fx" įrašą naudojant AsType.

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

Galiausiai, jei nesate tikri, šiame pavyzdyje patikrinamas tipas prieš konvertuojant jį naudojant IsType funkciją.

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