Jagamisviis:


Rakenduse objekt Power Appsis

Kehtib: lõuendirakendused Mudelipõhised rakendused

Annab teavet hetkel töötava rakenduse kohta ja kontrolli rakenduse käitumise üle.

Kirjeldus

Sarnaselt juhtelemendile pakub objekt Rakendus atribuute, mis määratlevad, milline ekraan on kuvatud ja see palub kasutajal salvestada muudatused, et need ei läheks kaotsi. Igal rakendusel on objekt Rakendus.

Osade objekti Rakendus atribuutide jaoks saate kirjutada valemeid. Paani Puu vaade ülaosas valige objekt Rakendus, nagu teeksite seda iga teise juhtelemendi või ekraaniga. Vaadake ja redigeerige ühte objekti atribuutidest, valides selle valemiribast vasakul ripploendist.

Rakenduse objekt puuvaatepaanil.

Atribuut ActiveScreen

Atribuut ActiveScreen määratleb kuvava ekraani.

See atribuut tagastab ekraaniobjekti. Kasutage seda praegu kuvatava ekraani atribuutidele viitamiseks, näiteks nimi valemiga App.ActiveScreen.Name. Saate seda atribuuti võrrelda ka mõne muu ekraaniobjektiga, näiteks võrdlusvalemiga App.ActiveScreen = Screen2 , et testida, kas Screen2 on praegu kuvatav ekraan.

Kasutage funktsioone Tagasi või Navigeeri, et muuta kuvavat ekraani.

Atribuut BackEnabled

Atribuut BackEnabled muudab seda, kuidas rakendus reageerib mobiilseadmes Android töötamisel seadme tagasiliikumise žestile (nipsake või kasutage seadmetes riistvara tagasi nuppu iOS , nipsake seadmetes vasakult Power Apps ). Kui see on lubatud, liigub seadme tagasiliikumine tagasi viimati kuvatud ekraanile, mis sarnaneb valemiga Tagasi . Kui see on keelatud, suunab seadme tagasi žest kasutaja rakenduste loendisse.

Atribuudid ConfirmExit

Mitte keegi ei taha salvestamata muudatusi kaotada. Kasutage atribuute ConfirmExit ja ConfirmExitMessage, et hoiatada kasutajat enne rakenduse sulgemist.

Märkus.

  • ConfirmExit ei tööta rakendustes, mis on näiteks Power BI manustatud ja SharePoint.
  • Praegu saavad need atribuudid viidata juhtelementidele ainult esimesel kuval, kui eelvaatefunktsioon Viivitusega laadimine on lubatud (mis on uutel rakendustel vaikimisi lubatud). Viitamisel Power Apps Studio ei kuvata tõrkeid, kuid tulemuseks saadav avaldatud rakendus ei avane Power Appsi mobiilirakenduses ega brauseris. Töötame aktiivselt selle piirangu eemaldamise nimel. Vahepeal saate välja lülitada Hilinenud koormus asukohas Sätted>Tulevased funktsioonid (Eelvaadeall).

ConfirmExit

ConfirmExit on loogiline atribuut, mis avab enne rakenduse sulgemist kinnituse dialoogiboksi, kui see on tõene. Vaikimisi on selle atribuudi väärtuseks väär ja dialoogiboksi ei kuvata.

Olukordades, kus kasutajal võib olla rakenduses salvestamata muudatusi, kasutage seda atribuuti kinnituse dialoogiboksi kuvamiseks enne rakendusest väljumist. Kasutage valemit, mis saab kontrollida muutujate ja juhtelemendi atribuute (nt atribuut Salvestamata juhtelemendis Redigeeri vormi).

Kinnituse dialoogiboks kuvatakse igas olukorras, kus andmed võivad kaotsi minna, nagu on kirjeldatud järgmistes näidetes.

  • Funktsiooni Exit käitamisel.
  • Kui rakendus töötab brauseris:
    • Brauseri või brauseri vahekaardi sulgemine, kus rakendus töötab.
    • Brauseri nupu Tagasi valimine.
    • Funktsiooni Launch käivitamine, mille suvandi LaunchTarget väärtus on Self.
  • Kui rakendus töötab rakenduses Power Apps Mobile (iOS või Android):
    • Power Appsi mobiilirakenduses teisele rakendusele vahetamiseks nipsamine.
    • Android seadmes nupu Tagasi valimine.
    • Funktsiooni Launch käivitamine, et avada teine lõuendirakendus.

Kinnituse dialoogiboksi täpne välimus võib erinevates Power Apps seadmetes ja versioonides olla erinev.

Kinnituse dialoogiboks ei ilmu Power Apps Studios.

ConfirmExitMessage

Vaikimisi kuvab kinnituse dialoogiboks üldise sõnumi nagu näiteks "Teil võib olla salvestamata muudatusi.” kasutaja keeles.

Kasutage elementi ConfirmExitMessage kinnituse dialoogiboksis kohandatud sõnumi edastamiseks. Kui see atribuut on tühi, kasutatakse vaikeväärtust. Kohandatud sõnumeid kärbitakse vastavalt vajadusele, et need mahuksid kinnituse dialoogiboksi, seega piirduge sõnumis kõige rohkem paari reaga.

Brauseris võib kinnituse dialoogiboks ilmuda brauseri üldise sõnumiga.

Märkus.

Rakenduse objektil on veel kaks atribuuti OnMessage ja BackEnabled mis on eksperimentaalsed. Need atribuudid eemaldatakse rakenduse objektist lõpuks. Me ei soovita neid atribuute oma tootmiskeskkonnas kasutada.

Näide

  1. Looge rakendus, mis sisaldab kahte vormi juhtelementi, AccountForm ja ContactForm.

  2. Määrake objekti Rakendus atribuut ConfirmExit järgmisele avaldisele:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    See dialoogiboks kuvatakse, kui kasutaja muudab andmeid ühes nendest vormidest ja proovib seejärel sulgeda rakenduse ilma neid muudatusi salvestamata.

    Üldise kinnituse dialoogiboks.

  3. Määrake objekti Rakendus atribuut ConfirmExitMessage järgmisele valemile:

    If( AccountsForm.Unsaved,
        "Accounts form has unsaved changes.",
        "Contacts form has unsaved changes."
    )
    

    See dialoogiboks kuvatakse, kui kasutaja muudab vormi Konto andmeid ja proovib seejärel sulgeda rakenduse ilma neid muudatusi salvestamata.

    Vormipõhine kinnituse dialoogiboks.

Mõõteriistade võtme seadistamine Application Insights

Süsteemi loodud rakenduselogide eksportimiseks seadmesse Application Insights peate seadistama oma lõuendirakenduse jaoks mõõteriistavõtme .

  1. Avage rakendus redigeerimiseks Power Apps Studio.
  2. Valige vasakpoolses navigeerimispuu vaates objekt App .
  3. Sisestage atribuutide paanile mõõteriistade võti .

Kui andmeid ei saadeta rakenduse statistikasse, võtke ühendust administraatoriga Power Platform ja kontrollige, kas rakenduse statistika on rentniku tasemel keelatud.

Valemite atribuudid

Kasutage atribuudis Valemid nimega valemeid atribuuti , et määratleda valem, mida saab kogu rakenduses uuesti kasutada.

Juhtelemendi Power Apps atribuudid lähtuvad valemitest. Näiteks taustvärvi järjepidevalt rakenduseti järjepidev Täitmine võib seada atribuudi ühtseks valemiks:

Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )

Kuna see valem võib ilmuda nii paljudes kohtades, muutub nende kõigi värskendamine, kui on vaja muudatusi, tüütuks ja veaohtlikuks. Selle asemel saate luua OnStart globaalse muutuja, et värvi üks kord määrata, ja seejärel kasutada väärtust kogu rakenduses:

App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

Kuigi see meetod on parem, sõltub see ka rakendusest OnStart , mis töötab enne BGColor välja töötamist. BGColoriga võidakse manipuleerida ka rakenduse mõnes nurgas, millest tegija pole teadlik, kellegi teise tehtud muudatusest ja millele võib olla raske jälile saada.

Nimega valemid pakuvad alternatiivi. Nagu me tavaliselt kirjutame juhtelemendi atribuut = avaldis, asemel võib kirjutada nimi = avaldis ja seejärel uuesti kasutada nimi asendamiseks rakenduse avaldises. Nende valemite määratlusi kasutatakse Valemid atribuudis:

App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

Nimega valemite kasutamise eelised on järgmised:

  • Valemi väärtus on alati saadaval. Pole ajastussõltuvust, pole rakendust OnStart mis peab käivituma esmalt enne väärtuse seadmist, pole aega, mil valemi väärtus on vale. Nimega valemid võivad üksteisele viidata igas järjekorras, kui nad ei loo ringviitet. Neid saab arvutada paralleelselt.
  • Valemi väärtus on alati ajakohane. Valem võib teostada arvutuse, mis sõltub juhtelemendi atribuutidest või andmebaasikirjetest, ja kui need muutuvad, siis valemi väärtus värskendatakse automaatselt. Muutuja puhul ei pea väärtust käsitsi värskendama. Ja valemeid arvutatakse ümber ainult vajadusel.
  • Valemi määratlus on muutumatu. Määratlus Valemites on üks sisestamisallikas ning väärtust ei saa rakenduses mujal muuta. Muutujate puhul on võimalik, et mõni kood muudab väärtust ootamatult, kuid see pole võimalik nimega valemitega.
  • Valemi arvutuse saab edasi lükata. Kuna selle väärtus on muutumatu, saab seda alati vajadusel arvutada, mis tähendab, et seda ei pea arvutama enne, kui seda on vaja. Valemiväärtusi, mida ei kasutata enne kui kuvatakse rakendus ekraan2 ei pea arvutama enne kui ekraan2 on nähtav. Selle töö edasilükkamine võib parandada rakenduse laadimisaega. Nimega valemid on deklaratiivsed ja pakuvad süsteemi jaoks võimalusi arvutamise aja optimeerimiseks.
  • Nimega valemid on Exceli kontseptsiooniks. Power Fx kasutab võimalusel Excel-i mõisteid, kuna nii paljud inimesed teavad Excel-it hästi. Nimega valemid on nimega lahtrite ja nimega valemite ekvivalendid Excelis, mida hallatakse nimehalduriga. Need arvutavad ümber automaatselt arvutustabeli nagu ka juhtelemendi atribuudid.

Nimega valemid määratletakse atribuudis Valemid, lõpetades iga semikooloniga. Valemi tüüp tuletatakse avaldise tüüpidest, mis põhinevad avaldise elemenditüüpidel ja kuidas neid koos kasutatakse. Näiteks need nimega valemid võivad tuua kasulikku teavet praeguse kasutaja Dataverse rakenduse kohta:

UserEmail = User().Email;
UserInfo = LookUp( Users, 'Primary Email' = User().Email );
UserTitle = UserInfo.Title;
UserPhone = Switch( UserInfo.'Preferred Phone', 
                    'Preferred Phone (Users)'.'Mobile Phone', UserInfo.'Mobile Phone',
                    UserInfo.'Main Phone' );

Kui KasutajaNimi valemit on vaja värskendada, saab seda ühes kohas hõlpsasti teha. Kui UserPhone pole rakenduses vaja, siis neid kõnesid Kasutajad tabelisse rakenduses Dataverse ei ole tehtud. Kasutamata valemi määratluse lisamise eest ei karistata.

Teatud nimega valemite piirangud:

  • Nad ei saa rakenduses käitumisfunktsioone kasutada ega muul viisil kõrvalmõjusid põhjustada.
  • Nad ei saa luua ringviidet. Võrrandid a = b; ja b = a; samas rakenduses pole lubatud.

OnError atribuut

Kasutage OnError rakendust selleks, et teha toimingut pärast tõrke tuvastamist. See annab globaalse müügivõimaluse tõrke banneri katkestamiseks enne selle lõppkasutajale kuvamist. Seda saab kasutada ka jälgimisfunktsiooniga tõrke Logimise funktsiooniks või andmebaasi või veebiteenusesse kirjutamiseks.

Iga valemi hindamise tulemust kontrollitakse vea pärast. Kui see on viga, siis OnError hinnatakse samade FirstError ja AllErrors ulatuse muutujatega, mis oleks olemas olnud, kui kogu valem oleks mähitud IfError funktsiooni.

Kui OnError on tühi, kuvatakse tõrkeriba vaikebänner koos vea teatega FirstError.Message. Valemite OnError määratlemine alistab selle käitumise, võimaldades loojatel tõrkearuandlusega tegeleda nii, nagu see neile sobib. Vaikekäitumist saab taotleda lahtris OnError kõrvaldades vea uuesti koos Tõrge funktsiooniga. See on kasulik juhul, kui teatud tõrkeid tuleb filtreerida või käsitleda mõnel erineval viisil, samal ajal kui teatud tõrked tuleb edasi anda.

OnError ei saa asendada arvutustes olevat viga nii, nagu seda saab teha IfError . Juhul kui OnError käivitatakse, on viga juba ilmnenud ja seda on juba ka valemiarvutustega töödeldud. *OnError* juhib ainult tõrketeavitust.

OnErrori valemeid hinnatakse samaaegselt ja on võimalik, et nende hindamine võib kattuda muude vigade töötlemisega. Näiteks kui seate globaalse muutuja OnError ülaosas ja loete seda hiljem samas valemis, võis see väärtus olla muutunud. Kasutage Abil funktsiooni et luua valemi jaoks kohaliku nimega väärtuse.

Kuigi OnError töötleb iga tõrget eraldi, ei pruugi vaikevea bänner ilmuda iga vea puhul eraldi. Selleks, et korraga ei kuvataks liiga palju tõrkeribasid, ei käivita sama tõrge uut tõrkeriba, kui see on hiljuti kuvatud.

Näide

Mõelge Sildi juhtelemendile ja Liugur juhtelemendile, mis on valemiga kokku seotud.

Label1.Text = 1/Slider1.Value

Silt ja liuguri juhtelement, mis on seotud valemiga Label1.Text = 1/Slider1.Value.

Vaikimisi on liugur kuni 50. Kui liugur on viidud väärtusele 0, Label1 ei kuvata väärtust ja kuvatakse tõrkeriba:

Liuguri juhtimine liikus asendisse 0, mille tulemuseks oli jagamine nullveaga ja veariba.

Vaatame juhtunut üksikasjalikult:

  1. Kasutaja liigutas slaidi vasakule ja atribuut Slide1.Value muudeti väärtusele 0.
  2. Label1.Tekst hinnati automaatselt ümber. Toimus nulliga jagamine, tekitades vea.
  3. Selles valemis ei ole IfError atribuuti. Nullveaga jagamise tagastab valemi hindamine.
  4. Label1.Tekst ei saa selle tõrke korral midagi kuvada, seega kuvab see tühja oleku.
  5. Käivitatakse OnError . Kuna töötlejat pole, kuvatakse standardne veabänner koos veateabega.

Vajadusel võime ka seda valemit muuta Label1.Text = IfError( 1/Slider1.Value, 0 ). Selle tulemuseks ei oleks tõrge ega tõrkeriba. Me ei saa muuta tõrke väärtust OnError kuna sel hetkel on viga juba juhtunud, küsimus on ainult selles, kuidas sellest teatatakse.

Kui lisame OnError ohjuri, ei mõjuta see enne 5. etappi, kuid see võib mõjutada tõrkest teatamist:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" )

App.OnErrori valem on seatud jälituse loomiseks.

Kui see on paigas, ei ilmne rakenduse kasutaja vaatenurgast ühtegi tõrget. Kuid tõrge lisatakse monitori jälgimisse, täielikuks tõrketeabe allikaks FirstError:

Liuguri juhtimine liikus 0-le, mille tulemuseks oli jagamine nullveaga, kuid mitte veariba.

Kui lisame jälje ka sama vaikeveariba kuvamisele, Error funktsioon peale Jälg kõnet ilmneb täpselt nii nagu see toimis kui Jälgimine funktsiooni polnud:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )

Atribuut OnStart

Märkus.

Atribuudi OnStart kasutamine võib rakenduse laadimisel põhjustada jõudlusprobleeme. Oleme loomas alternatiive kaheks peapõhjuseks, miks kasutada atribuudi vahemälu andmeid ja seadistada globaalseid muutujaid. Oleme juba loonud alternatiivi valikuga Navigate kuvatava esimese ekraani määratlemiseks. Sõltuvalt teie kontekstist võidakse see atribuut vaikimisi keelata. Kui te seda ei näe ja peate seda kasutama, vaadake selle lubamiseks rakenduse täpsemaid sätteid. Kasutada saab ka ekraani atribuuti OnVisible.

Atribuut OnStart käivitub, kui kasutaja käivitab rakenduse. Seda atribuuti kasutatakse sageli järgmiste toimingute sooritamiseks.

  • Funktsiooni Collect kasutades andmete toomine ja kogumite vahemällu salvestamine.
  • Funktsiooni Määra kasutades globaalsete muutujate häälestamine.

Seda valemit hinnatakse enne esimese ekraani kuvamist. Ühtegi ekraani ei laadita, seega ei saa te funktsiooniga UpdateContext konteksti muutujaid määrata. Samas saate edastada konteksti muutujaid funktsiooniga Navigate.

Pärast atribuudi OnStart muutumist testige seda, klõpsates üle rakenduse objekti puuvaate paanil, valides kolmikpunkti (...) ja valides siis käsu Run OnStart. Erinevalt rakenduse esmakordsest laadimisest, olemasolevad kollektsioonid ja muutujad on juba määratud. Tühjade kogumitega alustamiseks kasutage funktsiooni Collect (Kogu) asemel funktsiooni ClearCollect (Tühjenda kogumine).

Käivitamisel käivitamise rakenduse üksuse kiirmenüü

Märkus.

  • Funktsiooni Navigate kasutamine atribuudis OnStart on eemaldatud. Olemasolevad rakendused töötavad edasi. Piiratud aja jooksul saate selle siiski lubada rakenduse sätetes (saadaval jaotises Aegunud). Kuid sel viisil Navigate kasutamine võib kaasa tuua rakenduse laadimisaja kasvu, kuna siis süsteem viib enne esimese ekraani kuvamist OnStart hindamise lõpuni. Kasutage esimese kuvatava ekraani arvutamiseks selle asemel atribuuti StartScreen.
  • Aegunud lüliti lülitatakse välja rakenduste jaoks, mis on loodud enne 2021. aasta märtsi, kus lisasite 2021. aasta märtsist praeguseni rakenduse Navigeeri rakendusse OnStart . Kui redigeerite selliseid rakendusi Power Apps Studios, võib ilmneda tõrge. Selle vea kustutamiseks keerake ülalmainitud Retired lülitit.

Atribuut StartScreen

Märkus.

Atribuuti StartScreen ei kuvata atribuutide loendis, kui aegunud suvand Täiustatud valemiriba on sisse lülitatud. Riba Täiustatud valemiriba välja lülitamiseks minge Sätted>Eelseisvad sätted>Vanad> lülitage välja Täiustatud valemiriba lülitage kui soovite kasutada atribuuti StartScreen atribuut.

Atribuut StartScreen määratleb, milline ekraan kõigepealt kuvatakse. Seda hinnatakse üks kord rakenduse laadimisel ja see tagastab kuvatava ekraaniobjekti. Vaikimisi on see atribuut tühi ja esmalt kuvatakse Studio puuvaates esimene kuva.

StartScreen on andmevoo atribuut, mis ei tohi sisaldada käitumisfunktsioone. Kõik andmevoo funktsioonid on saadaval, eelkõige kasutage neid funktsioone ja kaasaja funktsiooni, et määratleda, milline kuva esimesena kuvada.

  • Param funktsioon rakenduse käivitamiseks kasutatud parameetrite lugemiseks.
  • Kasutaja funktsioon praeguse kasutaja kohta teabe lugemiseks.
  • LookUp, Filter, CountRows, Max ja muud funktsioonid, mis loevad andmeallikas.
  • Kõik API-päringud konnektori kaudu, kuid olge hoolikas, et see peaks kiiresti tagastama.
  • Signaalid, nagu Connection, Compass ja Rakendus.

Märkus.

Globaalsed muutujad ja kogud, sh need, mis on loodud OnStart-s pole saadaval valikus StartScreen. Selle tegemiseks on olemas deklaratiivsed alternatiivid. Tagasiside saamiseks selle piirangu kohta minge Power Apps kogukonna foorumisse.

Kui funktsioon StartScreen tagastab tõrke, kuvatakse Studio puuvaates esimene ekraan nii, nagu poleks StartScreen määratud. Kasutage funktsiooni IfError, et püüda tõrkeid ja suunata see sobivale tõrkekuvale.

Pärast funktsiooni StartScreen muutumist Studios testige seda, klõpsates üle rakenduse objekti puuvaate paanil, valides kolmikpunkti (...) ja valides siis käsu Navigeeri funktsioonini StartScreen. Ekraan muutub nii, nagu oleks rakendus laaditud.

Avage StartScreen

Näited

Screen9

Näitab, et Screen9 tuleks esmalt kuvada alati, kui rakendust käivitatakse.

If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )

Kontrollib, kas kasutaja on määranud parameetri "admin-mode" ja kasutab seda otsustamaks, kas esmalt tuleks kuvada avakuva või administraatori ekraan.

If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )

Kontrollib, kas konverentsil osaleja on töötaja ja suunab nad käivitamisel õigele ekraanile.

IfError( If( CustomConnector.APICall() = "Forest", 
             ForestScreen, 
             OceanScreen 
         ), 
         ErrorScreen 
)

Suunab rakenduse API-päringu põhjal kas ForestScreen või OceanScreen-ni. Kui API mingil põhjusel nurjub, kasutatakse selle asemel ErrorScreen.

Atribuut StudioVersion

Kasutage atribuuti StudioVersion , et kuvada või logida rakenduse avaldamiseks kasutatud versioon Power Apps Studio . See võib olla kasulik silumisel ja tagamaks, et teie rakendus on uuesti avaldatud koos selle Power Apps Studio uusima versiooniga.

StudioVersion tagastatakse tekstina. Teksti vorming võib aja jooksul muutuda ja seda tuleks käsitleda tervikuna; vältida üksikute portsjonite ekstraheerimist.