Funkcijos AsType ir IsType
Taikoma: Drobės programoms
Modeliu pagrįstoms programoms
Power Pages
Power Platform CLI
Tikrina, ar įrašo nuoroda yra konkretus lentelės tipas (IsType), ir laiko nuorodą tuo tipu (AsType).
Pastaba
PAC CLI pac power-fx komandos nepalaiko IsType.
Funkcijas AsType ir IsType galima naudoti norint konvertuoti įrašų nuorodas (pvz., polimorfines peržvalgas Dataverse) ir neįvestus objektus į įvestus objektus, kuriuos galima naudoti tiesiogiai.
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.
Peržvalgos laukas | Gali nurodyti |
---|---|
Savininkas | Vartotojai arba komandos |
Klientas | Paskyros arba kontaktai |
Dėl | 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, rašant formulę neaišku, kurie laukai pasiekiami vykdymo metu. Record.Field žymėjimas yra negalimas. Šios formulės turi būti pritaikytos prie įrašų, su kuriais veikianti programa susiduria.
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ą perdavimu. Rezultatą galite naudoti, tarsi tai būtų lentelės įrašas, ir dar kartą naudokite lauko įrašą Record.Field notavimas prieigai prie visų to įrašo laukų. Jei nuoroda nėra specialaus tipo, įvyksta klaida.
Šias funkcijas naudokite kartu, jei norite iš pradžių patikrinti įrašo lentelės tipą, o tada jį laikyti kaip to tipo įrašą, kad būtų prieinami laukai:
If( IsType( First( Accounts ).Owner, Users ),
AsType( First( Accounts ).Owner, Users ).'Full Name',
AsType( First( Accounts ).Owner, Teams ).'Team Name'
)
Šios funkcijos reikalingos tik tuo atveju, jei pasiekiate įrašo nuorodos laukus. Pavyzdžiui, galite naudoti įrašo nuorodas Filtro funkcijoje 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 naudojamas įrašo kontekste, pvz ., valdiklyje Galerija arba Redaguoti formą , visuotinis disambiguacijos operatorius gali būti reikalingas lentelės tipui nurodyti. Pavyzdžiui, ši formulė būtų veiksminga galerijai, kurioje rodomas kontaktų sąrašas, kur Įmonės pavadinimas yra Kliento peržvalga:
If( IsType( ThisItem.'Company Name', Accounts ),
AsType( ThisItem.'Company Name', Accounts ).'Account Name',
AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)
Abiejų funkcijų tipą nurodykite naudodami prie lentelės prijungto duomenų šaltinio pavadinimą. Kad formulė veiktų, į programą dėl bet kokio tikrintino arba konvertuotino tipo reikia įtraukti duomenų šaltinį. Pavyzdžiui, turite įtraukti vartotojų lentelę kaip įrašą duomenų šaltinis norite naudoti IsType ir AsType su Savininku peržvalga ir įrašais iš tos lentelės. Galite įtraukti tik duomenų šaltinius, kuriuos iš tiesų naudojate savo programoje; jums nereikia įtraukti visų lentelių, kurias gali nurodyti peržvalga.
Jei įrašo nuoroda yra tuščia, IsType pateikia FALSE, o AsType pateikia tuščia. Visi tuščio įrašo laukai taip pat yra tušti .
Svarbu
- "AsType" ir "IsType" naudojimas su neįvestais objektais yra eksperimentinė funkcija.
- Eksperimentinės funkcijos nėra skirtos naudoti gamyboje ir gali būti neišbaigtos. Šios funkcijos pasiekiamos prieš oficialų išleidimą, kad galėtumėte gauti išankstinę prieigą ir pateikti atsiliepimų. Daugiau informacijos: Nebenaudojamų, eksperimentinių ir peržiūros funkcijų supratimas ir nebenaudojamos funkcijos drobės programose
- Šiame straipsnyje aprašytas veikimas galimas tik tada, kai įjungta vartotojo apibrėžtų tipų eksperimentinė funkcija parametruoseBūsimos eksperimentinės > funkcijos > (pagal numatytuosius nustatymus ji išjungta ).
- Jūsų atsiliepimai mums yra vertingi. Praneškite mums, ką manote eksperimentinių funkcijų bendruomenės forume Power Apps .
Neįvestą objektą iš žiniatinklio API arba funkcijos [ParseJSON ] reikia konvertuoti į įvestą objektą, Power Fx kad jį būtų galima naudoti. Parinktys, kaip tai padaryti, apima:
- Netiesiogiai įveskite lauką toje vietoje, kur jis naudojamas. Pavyzdžiui, objektas konvertuojamas į skaičių, jei jis naudojamas su
+
operatoriumi, jei jį galima konvertuoti į skaičių. Ši parinktis gali turėti netikėtų konversijų ir negali konvertuoti įrašų bei lentelių kaip visumos. - Aiškiai įveskite kiekvieną lauką atskirai, naudodami dešimtainio skaičiaus, teksto, datetime, GUID ir kitas tipo konstruktoriaus funkcijas. Tai yra labiausiai invazinė jūsų formulėms, nes kiekvienas laukas turi būti atliekamas atskirai.
- Aiškiai įveskite JSON su antruoju argumentu į ParseJSON funkciją. Tai paprastas pasirinkimas, leidžiantis išvengti neįvesto objekto poreikio.
- Aiškiai įveskite neįvestą objektą naudodami funkciją AsType . Taip pat galite patikrinti tipą prieš bandydami konvertuoti naudodami funkciją "IsType ".
AsType(RecordReference,TableType )
- "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ė, su kuria įrašas turi būti susumuoti.
AsType(UntypedObject,TypeSpecification )
- UntypedObject - būtina. Įrašo nuoroda, dažnai peržvalgos laukas, gali kuris gali nurodyti įrašą bet kurioje iš kelių lentelių.
- TypeSpecification - būtina. Tipo pavadinimas arba tipo specifikacija, apibrėžta su funkcija Tipas.
IsType(RecordReference,TableType )
- "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ė, kurią reikia tikrinti.
IsType(UntypedObject,TypeSpecification )
- UntypedObject - būtina. Įrašo nuoroda, dažnai peržvalgos laukas, gali kuris gali nurodyti įrašą bet kurioje iš kelių lentelių.
- TypeSpecification - būtina. Tipo pavadinimas arba tipo specifikacija, apibrėžta su funkcija Tipas.
Suprasti įrašų nuorodas ir polimorfines peržvalgas yra daug pavyzdžių.
Sukurkite tuščią drobės programą, skirtą planšetiniams kompiuteriams.
Kairiojoje juostoje pasirinkite Duomenys>Įtraukti duomenys. Tada įtraukite abonementų ir kontaktų lenteles.
Kairiojoje srityje pasirinkite + (Įterpti) >Maketas>Tuščia vertikali galerija.
Pasirinkite Prisijungti prie duomenų, tada rinkitės Kontaktai duomenų šaltinis.
Nustatykite galerijos maketą į Antraštė ir paantraštė.
Duomenų srityje atidarykite Title1 sąrašą ir pasirinkite Vardas ir pavardė.
Pasirinkite Subtitle1 žymos valdiklį.
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' )
Galerijos paantraštė rodo šias reikšmes:
- „--“, jei Įmonės pavadinimas yra tuščias.
- "Abonementas: " ir tada Kliento vardas laukelis iš abonementų lentelės jei Įmonės pavadinimo laukelis rodo abonementą.
- "Kontaktas: " ir tada Visas vardas laukelis iš Kontaktai lentelės jei Įmonės pavadinimo laukelis rodo kontaktą.
Jūsų rezultatai gali skirtis, nes duomenų pavyzdžiai galėjo būti modifikuoti, kad būtų rodoma daugiau rezultatų tipų.
Šie pavyzdžiai rodo paprastą JSON įrašą, kurį įvairiais būdais interpretavo ParseJSON, AsType irIsType Pac CLI REPL. Power Fx
Šiame pirmame pavyzdyje ParseJSON nepateikiamajokia tipo informacija, todėl jis grąžina neįvestą objektą.
>> Set( rec, ParseJSON( "{""a"":1}" ) )
rec: <Untyped: 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}
Kita alternatyva, šis pavyzdys aiškiai konvertuoja įrašą į įvestą Power Fx įrašą naudojant AsType.
>> AsType( ParseJSON( "{""a"":1}" ), Type( {a: Number} ) )
{a:1}
Galiausiai, jei nebuvome tikri, šiame pavyzdyje tipas tikrinamas prieš konvertuojant jį naudojant funkciją IsType .
>> IsType( ParseJSON( "{""a"":1}" ), Type( {a: Number} ) )
true