Predmet »App« v rešitvi Power Apps
Velja za: Aplikacije Canvas Aplikacije, ki temeljijo na modelu
Zagotavlja informacije o trenutno delujoči aplikaciji in upravljanju delovanja aplikacije.
Opis
Podobno kot kontrolnik tudi predmet App ponuja lastnosti, ki določajo, kateri zaslon se prikazuje, in uporabnika pozivajo, da shrani spremembe, da se ne izgubijo. Vsaka aplikacija ima predmet App.
Za nekatere lastnosti predmeta App lahko zapišete formule. Na vrhu podokna Drevesni pogled izberite predmet App, kot bi izbrali kateri koli drug kontrolnik ali zaslon. Oglejte si eno od lastnosti predmeta in jo uredite tako, da jo izberete na spustnem seznamu na levi strani vnosne vrstice.
Lastnost ActiveScreen
Lastnost ActiveScreen prepozna zaslon, ki je prikazan.
Ta lastnost vrne zaslonski objekt. Uporabite ga za sklicevanje na lastnosti trenutno prikazanega zaslona, kot je ime s formulo App.ActiveScreen.Name. To lastnost lahko primerjate tudi z drugim zaslonskim objektom, na primer s primerjalno formulo App.ActiveScreen = Screen2 da preizkusite, če Screen2 je trenutno prikazan zaslon.
S funkcijo Back ali Navigate spremenite prikazani zaslon.
Lastnost BackEnabled
Lastnost BackEnabled spreminja, kako se aplikacija odziva na potezo naprave nazaj (povlecite ali uporabite strojni gumb nazaj na Android napravah, povlecite z leve na iOS naprave), ko se izvaja v Power Apps mobilnem. Ko je omogočena, se naprava s potezo nazaj pomakne nazaj na zaslon, ki je bil nazadnje prikazan, kar je podobno formuli Nazaj . Ko je ta možnost onemogočena, vrne naprava uporabnika nazaj na seznam aplikacij.
Lastnosti ConfirmExit
Nihče ne želi izgubiti neshranjenih sprememb. S lastnostma ConfirmExit in ConfirmExitMessage opozorite uporabnika, preden zapre vašo aplikacijo.
opomba,
- ConfirmExit ne deluje v aplikacijah, ki so na primer vdelane v Power BI in SharePoint.
- Trenutno se lahko te lastnosti sklicujejo na kontrolnike samo na prvem zaslonu, če je omogočena funkcija predogleda Delayed load (kar je privzeto za nove aplikacije). V primeru sklicev Power Apps Studio ne prikaže napake, vendar se končna objavljena aplikacija ne odpre v storitvi Power Apps za mobilne naprave ali brskalniku. Aktivno si prizadevamo za odpravo te omejitve. Medtem lahko izklopite možnosti Zapoznelo nalaganje v razdelku Nastavitve>Prihajajoče funkcije (v razdelku Predogled).
ConfirmExit
ConfirmExit je logična lastnost, ki, ko je true, odpre potrditveno pogovorno okno, preden se aplikacija zapre. Privzeto je ta lastnost nastavljena na false in se ne pojavi nobeno pogovorno okno.
V primerih, ko ima uporabnik morda neshranjene spremembe v aplikaciji, uporabite to lastnost za prikaz potrditvenega pogovornega okna pred izhodom iz aplikacije. Uporabite formulo, s katero lahko preverite spremenljivke in lastnosti kontrolnikov (npr. lastnost Unsaved pri kontrolniku Edit form).
Potrditveno pogovorno okno se prikaže v vsakem primeru, ko se podatki lahko izgubijo, npr. v naslednjih primerih:
- Izvajanje funkcije Exit.
- Če se aplikacija izvaja v brskalniku:
- Zapiranje brskalnika ali zavihka brskalnika, v katerem se aplikacija izvaja.
- Izbira gumba »Nazaj« v brskalniku.
- Izvedba funkcije Launch z argumentom LaunchTarget možnosti Self.
- Če se aplikacija izvaja v Power Apps Mobile (iOS ali Android):
- Podrsanje za preklop na drugo aplikacijo v storitvi Power Apps za mobilne naprave.
- Izbira gumba »Nazaj« v napravi Android.
- Izvedba funkcije Launch za zagon druge aplikacije delovnega območja.
Natančen videz potrditvenega pogovornega okna se lahko razlikuje glede na napravo in različico storitve Power Apps.
Potrditveno pogovorno okno se ne prikaže v storitvi Power Apps Studio.
ConfirmExitMessage
Privzeto se v potrditvenem pogovornem oknu prikaže splošno sporočilo v jeziku uporabnika, npr. »Morda imate neshranjene spremembe.«
Z možnostjo ConfirmExitMessage zagotovite sporočilo po meri v potrditvenem pogovornem oknu. Če je ta lastnost prazna, se uporabi privzeta vrednost. Sporočila po meri so prirezana, kolikor je potrebno, da se prilegajo potrditvenemu pogovornemu oknu, zato naj bo sporočilo dolgo največ nekaj vrstic.
V brskalniku se lahko prikaže potrditveno pogovorno okno s splošnim sporočilom brskalnika.
opomba,
Predmet aplikacije ima še dve lastnosti OnMessage
in BackEnabled
, ki sta eksperimentalni. Te lastnosti bodo sčasoma odstranjene iz predmeta aplikacije. Priporočamo, da teh lastnosti ne uporabljate v svojem produkcijskem okolju.
Primer
Ustvarite aplikacijo, ki vsebuje dva kontrolnika za obrazce, AccountForm in ContactForm.
Nastavite lastnost ConfirmExit za predmet Aplikacija na ta izraz:
AccountForm.Unsaved Or ContactForm.Unsaved
To pogovorno okno se prikaže, če uporabnik spremeni podatke v katerem koli obrazcu in nato poskusi zapreti aplikacijo, ne da bi te spremembe shranil.
Nastavite lastnost ConfirmExitMessage za predmet Aplikacija na to formulo:
If( AccountsForm.Unsaved, "Accounts form has unsaved changes.", "Contacts form has unsaved changes." )
To pogovorno okno se prikaže, če uporabnik spremeni podatke v obrazcu kupca in nato poskusi zapreti aplikacijo, ne da bi te spremembe shranil.
Nastavitveni instrumentacijski ključ za Application Insights
Če želite izvoziti sistemsko ustvarjene dnevnike aplikacij v Application Insights, morate nastaviti Instrumentacijski ključ za svojo aplikacijo Canvas.
- Odprite aplikacijo za urejanje v Power Apps Studio.
- Izberite predmet App v levem drevesnem pogledu navigacije.
- V podokno z lastnostmi vnesite instrumentacijski ključ .
Če podatki niso poslani aplikaciji Insights, se obrnite na svojega Power Platform skrbnika in preverite, ali je App Insights onemogočen na ravni najemnika.
Lastnost formul
Uporabite imenovane formule v lastnosti Formule, da definirate formulo, ki jo je mogoče znova uporabiti v vaši aplikaciji.
V Power Apps lastnosti kontrolnika poganjajo formule. Na primer, če želite dosledno nastaviti barvo ozadja v aplikaciji, lahko nastavite lastnost Zapolni za vsako na skupno formulo:
Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )
Ker lahko veliko število mest, kjer se lahko pojavi ta formula, vodi do dolgočasnosti in nagnjenosti k napakam posodobitve vseh, če je potrebna sprememba. Namesto tega lahko ustvarite globalno spremenljivko v OnStart, da enkrat nastavite barvo in nato znova uporabite vrednost v celotni aplikaciji:
App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Medtem ko je ta metoda boljša, je odvisna tudi od zagona aplikacije OnStart, preden se vzpostavi vrednost za BGColor. BGColor je lahko tudi spremenjen v nekem kotu aplikacije, ki se ga izdelovalec ne zaveda, sprememba, ki jo je naredil nekdo drug, in to je težko izslediti.
Imenovane formule ponujajo alternativo. Tako kot običajno pišemo control-property = izraz, lahko namesto tega napišemo name = izraz in nato ponovno uporabimo ime v naši aplikaciji za zamenjavo izraza. Definicije teh formul so izvedene v lastnosti Formule:
App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Prednosti uporabe imenovanih formul vključujejo naslednje:
- Vrednost formule je vedno na voljo. Ni časovne odvisnosti, ni aplikacije OnStart, ki se mora najprej zagnati, preden se nastavi vrednost, ni časa, v katerem je vrednost formule nepravilna. Imenovane formule se lahko sklicujejo druga na drugo v poljubnem vrstnem redu, če ne ustvarijo krožnega sklica. Lahko se izračunajo vzporedno.
- Vrednost formule je vedno posodobljena. Formula lahko izvede izračun, ki je odvisen od lastnosti kontrolnika ali zapisov zbirke podatkov, in ko se spremenijo, se vrednost formule samodejno posodobi. Vrednosti vam ni treba ročno posodabljati, kot to počnete s spremenljivko. In formule preračunajo samo, ko je to potrebno.
- Definicija formule je nespremenljiva. Definicija pod Formule je edini vir resnice in vrednosti ni mogoče spremeniti nikjer drugje v aplikaciji. Pri spremenljivkah je možno, da neka koda nepričakovano spremeni vrednost, vendar to ni mogoče pri imenovanih formulah.
- Izračun formule je mogoče odložiti. Ker je njegova vrednost nespremenljiva, jo je mogoče vedno izračunati, ko je to potrebno, kar pomeni, da je ni treba izračunati, dokler ni potrebna. Vrednosti formule, ki se ne uporabijo, dokler ni prikazan zaslon screen2 aplikacije, ni treba izračunati, dokler zaslon screen2 ni viden. Če odložite to delo, lahko izboljšate čas nalaganja aplikacije. Imenovane formule so deklarativne in nudijo sistemu možnosti za optimizacijo načina in časa njihovega izračuna.
- Poimenovane formule so koncept programa Excel. Power Fx uporablja koncepte programa Excel, kjer je to mogoče, saj veliko ljudi dobro pozna Excel. Imenovane formule so enakovredne poimenovanim celicam in poimenovanim formulam v programu Excel, ki jih upravljate z upraviteljem imen. Samodejno preračunavajo kot preglednica, tako kot to počnejo lastnosti kontrolnika.
Imenovane formule so opredeljene ena za drugo v lastnosti Formulas, vsaka pa se konča s podpičjem. Vrsta formule se izpelje iz vrst izraza, ki temelji na vrstah elementov v izrazu in njihovi skupni uporabi. Na primer, te imenovane formule pridobijo koristne informacije o trenutnem uporabniku iz Dataverse:
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' );
Če je treba formulo za UserTitle posodobiti, lahko to preprosto storite na tej eni lokaciji. Če možnost UserPhone v aplikaciji ni potrebna, potem ti klici v tabelo Uporabniki v Dataverse niso izvedene. Za vključitev definicije formule, ki ni uporabljena, ni nobene kazni.
Nekatere omejitve imenovanih formul:
- Ne morejo uporabljati vedenjskih funkcij ali drugače povzročati stranskih učinkov v aplikaciji.
- Ne morejo ustvariti krožnega sklica. Imeti a = b; in b = a; v isti aplikaciji ni dovoljeno.
Lastnost OnError
Uporabite OnError za ukrepanje po odkritju napake. Ponuja globalno priložnost za prestrezanje pasice z napako, preden se prikaže končnemu uporabniku. Uporablja se lahko tudi za beleženje napake s funkcijo Sledenje ali pisanje v zbirko podatkov ali spletno storitev.
Rezultat vsake ocene formule se preveri glede napake. Če gre za napako, bo lastnost OnError ovrednotena z enakimi spremenljivkami obsega FirstError in AllErrors, ki bi bile prisotne, če bi bila celotna formula ovita v IfError funkcijo.
Če je OnError prazno, se prikaže privzeta pasica z napako z FirstError.Message napake. Definiranje formule OnError preglasi to vedenje in omogoča izdelovalcu, da obravnava poročanje o napakah, kot se mu zdi primerno. Vedenje je lahko zahtevano v OnError s ponovno vrnitvijo napake z Error funkcijo. To je uporabno, če je treba nekatere napake filtrirati ali obravnavati na drugačen način, medtem ko je treba druge spustiti skozi.
OnError ne more nadomestiti napake v izračunih tako, kot lahko IfError . Na točki, ko je OnError priklicano, se je napaka že zgodila in je bila že obdelana z izračuni formule. *OnError* nadzoruje samo poročanje o napakah.
Formule OnError so ovrednotene sočasno in možno je, da se njihovo vrednotenje prekriva z obdelavo drugih napak. Če na primer nastavite globalno spremenljivko na vrh OnError in jo preberete pozneje v isti formuli, se je vrednost morda spremenila. Uporabite With funkcijo za ustvarjanje imenovane vrednosti, ki je lokalna za formulo.
Čeprav OnError vsako napako obdela posebej, se privzeta pasica z napako morda ne prikaže za vsako napako posebej. Da bi se izognili hkratnemu prikazovanju preveč pasic z napakami, ista napaka ne bo sprožila nove pasice z napakami, če je bila nedavno prikazana.
Primer
Razmislite o kontrolniku Oznaka in kontrolniku Drsnik, ki sta povezana s formulo:
Label1.Text = 1/Slider1.Value
Privzeta vrednost drsnika je 50. Če drsnik premaknete na 0, pod Label1 ne bo prikazana nobena vrednost in prikazana je pasica z napako:
Poglejmo podrobneje, kaj se je zgodilo:
- Uporabnik je premaknil drsnik v levo in lastnost Slide1.Value se je spremenila na 0.
- Label1.Text je bil samodejno ponovno ovrednoten. Prišlo je do deljenja z ničlo, kar je povzročilo napako.
- V tej formuli ni IfError. Napaka deljenja z nič vrne vrednotenje formule.
- Label1.Text ne more prikazati ničesar za to napako, zato prikazuje prazno stanje.
- OnError je priklican. Ker ni obravnave, je standardna pasica napake prikazana z informacijami o napaki.
Po potrebi lahko formulo tudi spremenimo v Label1.Text = IfError( 1/Slider1.Value, 0 )
. To ne bi povzročilo nobene napake ali pasice z napako. Vrednosti napake ne moremo spremeniti iz OnError ker se je na tej točki napaka že zgodila, vprašanje je le, kako bo sporočena.
Če dodamo obravnavo OnError, to ne bo imelo vpliva pred 5. korakom, vendar lahko vpliva na način poročanja napake:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" )
Ko je to v veljavi, z vidika uporabnika aplikacije ne bo nobene napake. Toda napaka bo dodana v sled spremljanja, skupaj z virom informacij o napaki iz FirstError:
Če želimo poleg sledenja prikazati tudi isto privzeto pasico z napako, lahko napako znova prikličemo s funkcijo Napaka za klic Sledenje tako kot bi se zgodilo, če Sledenje ne bi bilo prisotno:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )
Lastnost OnStart
opomba,
Uporaba lastnosti OnStart lahko povzroči težave z zmogljivostjo pri nalaganju aplikacije. Smo v procesu ustvarjanja nadomestnih možnosti za glavna dva razloga za uporabo predpomnjenja podatkov lastnosti in nastavitev globalnih spremenljivk. Ustvarili smo že alternativo za določanje prvega zaslona, ki bo prikazan s funkcijo Navigate. Odvisno od vašega konteksta je lahko ta lastnost privzeto onemogočena. Če ga ne vidite in ga morate uporabiti, preverite napredne nastavitve aplikacije za stikalo, da ga omogočite. Uporabite lahko tudi lastnost zaslona OnVisible.
Lastnost OnStart se izvede, ko uporabnik zažene aplikacijo. Ta lastnost se pogosto uporablja za izvajanje naslednjih nalog:
- Pridobite podatke in jih predpomnite v zbirke s funkcijo Collect.
- S funkcijo Set nastavite globalne spremenljivke.
Ta formula se oceni, preden se pojavi prvi zaslon. Noben zaslon se ne naloži, zato ne morete nastaviti spremenljivk konteksta s funkcijo UpdateContext. Vendar lahko spremenljivke konteksta preskočite s funkcijo Navigate.
Ko spremenite lastnost OnStart, jo preizkusite tako, da pomaknete kazalec miške nad predmet Aplikacija v podoknu Drevesni pogled, izberite tri pike (...) in nato izberite Run OnStart. Za razliko od prvega nalaganja aplikacije bodo obstoječe zbirke in spremenljivke zdaj že nastavljene. Za začetek s praznimi zbirkami uporabite funkcijo ClearCollect namesto funkcije Collect.
opomba,
- Uporaba funkcije Navigate v lastnosti OnStart je opuščena. Obstoječe aplikacije bodo še naprej delovale. Za omejen čas ga lahko še vedno omogočite v nastavitvah aplikacije (na voljo pod Umaknjeno). Vendar pa lahko tovrstna uporaba možnosti Navigate povzroči zamude pri nalaganju aplikacije, saj prisili sistem, da dokonča oceno lastnosti OnStart pred prikazom prvega zaslona. Uporabite lastnost StartScreen za izračun prvega prikazanega zaslona.
- Upokojeno stikalo bo izklopljeno za aplikacije, ustvarjene pred marcem 2021, kjer ste dodali Navigate to OnStart med marcem 2021 in zdaj. Ko urejate takšne aplikacije v Power Apps Studio, se vam bo morda prikazala napaka. Preklopite zgoraj omenjeno stikalo Umaknjeno, da počistite to napako.
Lastnost StartScreen
opomba,
Lastnost StartScreen ne bo prikazana na seznamu lastnosti, ko je vklopljena umaknjena možnost Izboljšana vrstica s formulami . Če želite izklopiti funkcijo Izboljšana vrstico s formulami, pojdite na Nastavitve>Prihodnje funkcije>Umaknjeno> izklopite stikalo Izboljšana vrstica s formulami, ko želite uporabiti lastnost StartScreen.
Lastnost StartScreen določa, kateri zaslon bo prikazan prvi. Oceni se enkrat, in sicer ko se aplikacija naloži, in vrne predmet zaslona, ki bo prikazan. Privzeto bo ta lastnost prazna in prvi zaslon v drevesnem pogledu aplikacije Studio bo prikazan prvi.
StartScreen je lastnost toka podatkov, ki ne more vsebovati vedenjskih funkcij. Na voljo so vse funkcije toka podatkov, vendar te funkcije in signale uporabite predvsem za določitev, kateri zaslon naj se prikaže prvi:
- Param funkcija za branje parametrov, ki se uporabljajo za zagon aplikacije.
- Uporabniška funkcija za branje informacij o trenutnem uporabniku.
- Iskanje, Filter, Štetje vrstic, Največ in druge funkcije, ki berejo iz vir podatkov.
- Vsi klici API-ja prek povezovalnika, vendar bodite previdni, da se vrednost hitro vrne.
- Signali, kot so Connection, Compass in App.
opomba,
Globalne spremenljivke in zbirke, vključno s tistimi, ustvarjenimi v OnStart, niso na voljo v StartScreen. Obstajajo deklarativne alternative za to, ki so na poti. Za povratne informacije o tej omejitvi pojdite na forum skupnosti Power Apps.
Če StartScreen vrne napako, bo prvi zaslon v drevesnem pogledu aplikacije Studio prikazan, kot da lastnost StartScreen ni bila nastavljena. Uporabite funkcijo IfError, da ujamete morebitne napake in jih preusmerite na ustrezen zaslon z napakami.
Ko spremenite lastnost StartScreen v aplikaciji Studio, jo preizkusite tako, da pomaknete kazalec miške nad predmet Aplikacija v podoknu Drevesni pogled, izberete tri pike (...) in nato izberite Navigate to StartScreen. Zaslon se bo spremenil, kot da je bila aplikacija naložena.
Primeri
Screen9
Pomeni, da bi morala biti lastnost Screen9
prikazana prva po zagonu aplikacije.
If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )
Preveri, ali je parameter »admin-mode« nastavil uporabnik, in ga uporabi za odločitev, ali naj se najprej prikaže HomeScreen ali AdminScreen.
If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )
Preveri, ali je udeleženec konference član osebja, in ga ob zagonu usmeri na ustrezen zaslon.
IfError( If( CustomConnector.APICall() = "Forest",
ForestScreen,
OceanScreen
),
ErrorScreen
)
Usmeri aplikacijo na podlagi klica API-ja v ForestScreen
ali OceanScreen
. Če API iz kakršnega koli razloga ni uspešen, se uporabi ErrorScreen
.
Lastnost StudioVersion
Uporabite lastnost StudioVersion za prikaz ali beleženje različice Power Apps Studio ki je bila uporabljena za objavo aplikacije. To je lahko uporabno pri odpravljanju napak in pri zagotavljanju, da je bila vaša aplikacija ponovno objavljena z najnovejšo različico Power Apps Studio.
StudioVersion se vrne kot besedilo. Format besedila se lahko sčasoma spremeni in ga je treba obravnavati kot celoto; izogibajte se ekstrakciji posameznih porcij.