Deli z drugimi prek


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.

Predmet aplikacije v podoknu drevesnega pogleda.

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 ta možnost omogočena, se naprava vrne 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 vgrajene, npr. 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 lastnost logičnega elementa, ki odpre potrditveno pogovorno okno, preden se aplikacija zapre, ko je njena vrednost nastavljena na true. 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

  1. Ustvarite aplikacijo, ki vsebuje dva kontrolnika za obrazce, AccountForm in ContactForm.

  2. 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.

    Splošno potrditveno pogovorno okno.

  3. 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.

    Potrditveno pogovorno okno, specifično za obrazec.

Nastavitveni instrumentacijski ključ za Application Insights

Če želite izvoziti sistemsko ustvarjene dnevnike aplikacij v Application Insights, morate nastaviti Instrumentacijski ključ za vašo aplikacijo Canvas.

  1. Odprite svojo aplikacijo za urejanje v Power Apps Stuido.
  2. Izberite predmet Aplikacija v levem drevesnem pogledu navigacije.
  3. 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. Lastnost BGColor je lahko tudi spremenjena 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 zamenjati napako v izračunih, kot to lahko IfError. Na točki, ko je OnError priklicano, se je napaka že zgodila in je bila že obdelana z izračuni formule. *OnError* nadzira samo poročanje napak.

OnError formule se vrednotijo 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

Kontrolnik oznake in drsnika, vezan 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:

Nadzor drsnika je bil premaknjen na 0, kar je povzročilo napako deljenja z ničlo in pasico napake.

Poglejmo podrobneje, kaj se je zgodilo:

  1. Uporabnik je premaknil drsnik v levo in lastnost Slide1.Value se je spremenila na 0.
  2. Label1.Text je bilo ponovno ovrednoteno. Prišlo je do deljenja z ničlo, kar je povzročilo napako.
  3. V tej formuli ni IfError. Napaka deljenja z nič vrne vrednotenje formule.
  4. Label1.Text ne more prikazati ničesar za to napako, zato prikazuje prazno stanje.
  5. OnError se prikliče. 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}" )

Formula App.OnError je nastavljena za ustvarjanje sledi.

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:

Kontrolnik drsnika je bil premaknjen na 0, kar je povzročilo napako deljenja z nič, vendar brez pasice napake.

Č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.

Priročni meni predmeta »Aplikacija« za možnost »Run OnStart«

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.
  • Stikalo Umaknjeno bo izklopljeno za aplikacije, ustvarjene pred marcem 2021, kamor ste dodali Navigate v OnStart od marca 2021 do danes. 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 možnost za umaknjeno 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:

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.

Pomik na »StartScreen«

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.