Alkalmazás objektum a Power Apps rendszerben

A következőkre vonatkozik: Vászonalapú alkalmazások Modellvezérelt alkalmazások

Információt nyújt az éppen futó alkalmazásról, és szabályozza az alkalmazás viselkedését.

Ismertetés

A vezérlőkhöz hasonlóan az Alkalmazás objektum olyan tulajdonságokat is tartalmaz, amelyek meghatározzák, hogy melyik képernyő jelenjen meg, és rákérdez, hogy a felhasználó szeretné-e menteni a változtatásokat, hogy ne vesszenek el. Minden alkalmazáshoz tartozik egy Alkalmazás objektum.

Az Alkalmazás objektum bizonyos tulajdonságaihoz képleteket írhat. A Fanézet ablaktábla tetején jelölje ki az Alkalmazás objektumot, ahogy bármely más vezérlővel vagy képernyővel tenné. Az objektum tulajdonságainak megtekintéséhez és szerkesztéséhez jelölje ki a képletsáv bal oldalán található legördülő listából.

Az App objektum a Fanézet ablaktáblában.

ActiveScreen tulajdonság

Az ActiveScreen tulajdonság azonosítja a megjelenített képernyőt.

Ez a tulajdonság egy képernyőobjektumot ad vissza. Használja az aktuálisan megjelenített képernyő tulajdonságaira, például a névre a App.ActiveScreen.Name képlettel . Ezt a tulajdonságot összehasonlíthatja egy másik képernyőobjektummal is, például az App.ActiveScreen = Screen2 összehasonlító képlettel annak teszteléséhez, hogy a Screen2 az aktuálisan megjelenített képernyő-e .

A megjelenített képernyő módosításához használja a Back vagy a Navigate függvényeket.

BackEnabled tulajdonság

A BackEnabled tulajdonság megváltoztatja, hogy az alkalmazás hogyan reagál az eszköz vissza kézmozdulatára (pöccintsen vagy használja a hardveres vissza gombot Android az eszközökön, csúsztassa ujját balról az iOS eszközökön) mobileszközön Power Apps való futtatáskor. Ha engedélyezve van, az eszköz vissza kell navigálnia a legutóbb megjelenített képernyőre, amely hasonló a Vissza képlethez. Ha le van tiltva, az eszköz vissza kézmozdulata visszaadja a felhasználót az alkalmazáslistának.

ConfirmExit tulajdonságai

Senki nem akarja elveszíteni a nem mentett változtatásokat. Az alkalmazás bezárása előtt figyelmeztesse a felhasználót a ConfirmExit és a ConfirmExitMessage tulajdonságokkal.

Feljegyzés

  • A ConfirmExit nem működik olyan alkalmazásokban, amelyeket például a Power BI vagy SharePoint rendszerekbe ágyaztak be.
  • Jelenleg ezek a tulajdonságok csak az első képernyőn levő vezérlőkre hivatkozhatnak, ha a Késleltetett betöltési előzetes funkciót engedélyezték (új alkalmazásoknál ez az alapértelmezett) Ha a hivatkozások létrejöttek, és Power Apps Studio nem mutat hibaüzenetet, de a létrejövő közzétett alkalmazás nem nyitható meg a Power Apps Mobile alkalmazásban vagy böngészőben. Jelenleg is dolgozunk ezen korlátozás feloldásán. Eközben kikapcsolhatja a Késleltetett betöltés lehetőséget a Beállítások>Hamarosan megjelenő funkciók pontban (az Előzetes verzió alatt).

ConfirmExit

A ConfirmExit egy logikai tulajdonság, amely ha igaz, az alkalmazás bezárása előtt megnyit egy megerősítő párbeszédpanelt. Alapértelmezetten ez a tulajdonság hamis, és nem jelenik meg párbeszédpanel.

Olyan helyzetekben, amikor a felhasználónak nem mentett módosításai vannak az alkalmazásban, ezzel a tulajdonsággal megjeleníthet egy megerősítő párbeszédpanelt az alkalmazásból való kilépés előtt. Használjon olyan képletet, amely képes a változók és a vezérlőelem tulajdonságait ellenőrizni (például a Szerkesztési űrlap vezérlő Nem mentett tulajdonsága).

A megerősítő párbeszédpanel minden olyan helyzetben megjelenik, ahol az adatok elveszhetnek, mint az alábbi példákban:

  • Az Exit függvény futtatása.
  • Ha az alkalmazás a böngészőben fut:
    • A böngészőt vagy azon böngészőlap bezárása, ahol az alkalmazás fut.
    • A böngésző Vissza gombjának kiválasztása.
    • A Launch függvény futtatása, amelynél a LaunchTargetÖnmaga.
  • Ha az alkalmazás Mobil Power Apps (vagyiOS ) módban Androidfut:
    • Másik alkalmazásra váltás pöccintéssel a Power Apps Mobile alkalmazásban.
    • A Vissza gomb kiválasztása Android-eszközön.
    • A Launch függvény futtatása egy másik vászonalapú alkalmazás elindításához.

A megerősítő párbeszédpanel pontos kinézete eltérő lehet az eszközök és a Power Apps-verziók között.

A jóváhagyást kérő párbeszédpanel nem jelenik meg a Power Apps Studio alkalmazásban.

ConfirmExitMessage

A megerősítő párbeszédpanel alapértelmezetten egy általános üzenetet jelenít meg a felhasználó nyelvén, például: „Lehetnek nem mentett változtatásai.”

A ConfirmExitMessage segítségével egyéni üzenetet írhat ki a megerősítő párbeszédpanelen. Ha a tulajdonság üres, a rendszer az alapértelmezett értéket használja. Az egyéni üzeneteket a rendszer a megerősítő párbeszédpanelbe való illeszkedéshez szükséges módon csonkolja, így az üzenet legfeljebb néhány sor hosszú lehet.

Böngészőben a megerősítő párbeszédpanel a böngésző egy általános üzenetével együtt is megjelenhet.

Feljegyzés

Az Alkalmazás objektumnak két további tulajdonsága is van OnMessage és BackEnabled, amelyek kísérleti jellegűek. Ezeket a tulajdonságokat a rendszer végül eltávolítja az alkalmazásobjektumból. Javasoljuk, hogy ezeket a tulajdonságokat ne használja a termelési környezetben.

Példa

  1. Hozzon létre egy olyan alkalmazást, amely két űrlapvezérlőt tartalmaz, AccountForm és ContactForm.

  2. Állítsa be az Alkalmazás objektum ConfirmExit tulajdonságát erre a kifejezésre:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Ez a párbeszédpanel akkor jelenik meg, ha a felhasználó bármelyik űrlapon módosítja az adatokat, majd a változtatások mentése nélkül megpróbálja bezárni az alkalmazást.

    Általános megerősítést kérő párbeszédpanel.

  3. Állítsa be az Alkalmazás objektum ConfirmExitMessage tulajdonságát erre a képletre:

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

    Ez a párbeszédpanel akkor jelenik meg, ha a felhasználó módosítja az adatokat a Partner űrlapon, majd a változtatások mentése nélkül megpróbálja bezárni az alkalmazást.

    Űrlapspecifikus megerősítő párbeszédpanel.

Beállítási eszközkulcs a következőhöz: Application Insights

A rendszer által generált alkalmazásnaplók Application Insights exportálásához be kell állítania a vászonalapú alkalmazás eszközkulcsát .

  1. Nyissa meg az alkalmazást szerkesztésre a Stuido alkalmazásban Power Apps .
  2. Válassza ki az App objektumot a bal oldali navigációs fanézetben.
  3. Adja meg a kialakítási kulcsot a tulajdonságok ablaktáblán.

Ha a rendszer nem küld adatokat az App Insightsnak, forduljon a Power Platform rendszergazdához, és ellenőrizze, hogy az App Insights le van-e tiltva a bérlő szintjén.

Képletek tulajdonság

A Képletek tulajdonságban elnevezett képletek segítségével definiálhat egy olyan képletet, amely újra felhasználható az alkalmazásban.

A Power Apps vezérlőtulajdonságokat képletek hajtották. Ha például egy alkalmazáson keresztül egységesen be van állítva a háttérszín, a Kitöltés tulajdonságot beállíthatja közös képletre:

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

Olyan sok helyen, ahol ez a képlet megjelenhet, unalmassá és hibává válik, ha mindegyiket frissíteni kell, ha módosításra van szükség. Ehelyett létrehozhat egy globális változót az OnStart alkalmazásban, hogy egyszer beállítsa a színét, majd az értéket újra felhasználhatja az alkalmazásban:

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

Bár ez a módszer jobb, attól is függ, hogy az OnStart fut-e a BGStart értéke előtt. A BGIkonra az alkalmazás egy olyan sarkában is manipulálható, amelyről a készítő nem tud, egy valaki más által készített változtatást, és ezt nehéz lehet nyomon követni.

A elnevezett képletek alternatívát biztosítanak. Ahogyan általában a control-property = expression kifejezést írjuk, ehelyett a név = kifejezés írása után újra felhasználhatja a nevet az alkalmazásban a kifejezés helyére. Ezeknek a képleteknek a definícióit a Képletek tulajdonságban lehet definiálni:

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

A elnevezett képletek használatának előnye a következők:

  • A képlet értéke mindig elérhető. Nincs időzítési függőség, nincs OnStart, amelynek elsőnek kell futnia az érték beállítása előtt, és nincs idő, amikor helytelen a képlet értéke. A elnevezett képletek bármilyen sorrendben hivatkozni tudnak egymásra, amíg nem hoznak létre körkörös hivatkozást. Ezek párhuzamos számítást is tudnak.
  • A képlet értéke mindig frissített. A képlet olyan számítást hajthat végre, amely a vezérlőtulajdonságoktól vagy az adatbázis-bejegyzésektől függ, és a módosítások során a képlet értéke automatikusan frissül. Az értéket nem kell manuálisan frissítenie, mint a változók esetében. A képletek pedig csak szükség esetén számlálódnak újra.
  • A képlet definíciója nem használható. A Képletek definíciója az igazság egyetlen forrását használja, és az érték nem módosítható az alkalmazásban. A változók esetében előfordulhat, hogy bizonyos kódok váratlanul megváltoztatnak egy értéket, de ez a elnevezett képletekkel nem lehetséges.
  • A képlet számítása halasztható. Mivel az értéke megváltoztathatatlan, szükség esetén mindig kiszámítható, ami azt jelenti, hogy nem kell kiszámítani, amíg nincs rá szükség. Az alkalmazások screen2 képernyője megjelenítéséig nem használt képletértékeket nem kell kiszámítani, amíg a screen2 képernyő nem látható. A munka elhalasztása javíthatja az alkalmazás betöltési idejét. A elnevezett képletek deklaratívak, és lehetőséget biztosítanak a rendszer számára a számítás optimalizálása érdekében.
  • A elnevezett képletek egy Excel-fogalom. A Power Fx Excel-fogalmakat használ, ahol lehetséges, mivel olyan sok ember ismeri az Excelt. Az elnevezett képletek a névkezelővel kezelt, elnevezett cellákkal és elnevezett képletekkel egyenértékűek az Excel alkalmazásban. Automatikusan újraszámosulnak, mint a számolótáblák, mint a vezérlőelemek tulajdonságai.

A elnevezett képletek egymás után definiálva vannak a Képletek tulajdonságban, amelyek mind pontosvesszővel végződnek. A képlet típusát a kifejezéstípusokból lehet kikövetkezni, amely a kifejezésben található elemek típusán és azok együttesen való együttesen való használhatóségán alapul. Ezek a elnevezett képletek például hasznos információkat beolvasnak az aktuális felhasználóról a Dataverse-ből:

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' );

Ha frissíteni kell a UserTitle képletét, könnyen elvégezhető ezen a helyen. Ha a UserPhone-ra nincs szükség az alkalmazásban, akkor a Dataverse Felhasználók táblája ilyen hívásokra nem jön létre. A nem használt képletmeghatározások nem használhatók.

Az elnevezett képletek néhány korlátozása:

  • Nem használhatnak viselkedésfunkciókat, és nem okozhatnak egyéb mellékhatásokat az alkalmazásban.
  • Körkörös hivatkozást nem tudnak létrehozni. Az a = b; és a b = a; nem engedélyezett ugyanabban az alkalmazásban.

OnError tulajdonság

A hiba észlelése utáni művelet az OnError segítségével használhatja. Globális lehetőséget biztosít a hibasáv megjelenítésére, mielőtt a végfelhasználónak megjeleníte volna. A Nyomkövetési funkcióval hibát naplózhat, illetve adatbázisba vagy webszolgáltatásba írhat.

A rendszer minden képletértékelés eredményét ellenőrzi hiba miatt. Hiba esetén az OnError kiértékelése ugyanazokkal a FirstError és AllErrors hatókör-változókkal történik, amelyek jelen voltak, ha a teljes képletet átszabadják az IfError függvényben.

Ha az OnError üres, a FirstError.Message of the error (A hiba üzenete) alapértelmezett hibasáv jelenik meg. Az OnError képlet definiálása felülbírálja ezt a viselkedést, így a gyártó a saját formájuk szerint kezeli a hibajelentéseket. Az Alapértelmezett viselkedés az OnError szolgáltatásban a hiba hiba funkcióval való újratolásával kérhető. Ez akkor lehet hasznos, ha bizonyos hibákat ki kell szűrni vagy más módon kell kezelni, míg másoknak át kell őket oldani.

Az OnError nem tudja lecserélni a hibákat az IfError által használható számításokban. Az OnError meghívásának pontján a hiba már megtörtént, és már feldolgozásra került a képletszámítások segítségével. *Az OnError* csak a hibajelentést szabályozza.

Az OnError képletek kiértékelése egyidejűleg történik, és előfordulhat, hogy azok értékelése átfedésben van az egyéb hibák feldolgozásával. Ha például egy globális változót ad meg egy OnError tetején, és később olvassa el ugyanabban a képletben, akkor az érték megváltozhat. A With függvény használatával hozzon létre a képlethez helyi értéket.

Bár az OnError egyesével feldolgoz minden hibát, az alapértelmezett hibasáv nem minden esetben jelenik meg külön-külön. Annak elkerülése érdekében, hogy egyszerre túl sok hibaüzenet jelenik meg, ugyanez a hiba nem indítja el az új hibasávot, ha az utóbbi időben látható.

Példa

Tekintsen meg egy Címke és Csúszka vezérlőt, amely a képleten keresztül egymáshoz van kötve:

Label1.Text = 1/Slider1.Value

A Címke1.Text = 1/Slider1.Value.

A csúszka alapbeállítása 50. Ha a csúszka 0-ra van áthelyezve, a Label1 címke nem fog értéket mutatni, és egy hibaüzenet jelenik meg:

A csúszka vezérlése 0-ra váltott, ami nullával való osztást és hibasávot eredményezett.

Nézzük meg részletesen a történteket:

  1. A felhasználó a csúszkát a balra mozgatta, és az Slide1.Value tulajdonság 0-ra változott.
  2. A Label1.Text kiértékelése automatikusan történt. Az osztás nullával történt, hibát eredményezve.
  3. Ebben a képletben nincs IfError. A képletértékelés visszaadja a nulla hibával való osztást.
  4. A Label1.Text semmit nem mutat erre a hibára, tehát üres állapotú.
  5. Az OnError meghívást ad. Mivel nincs kezelő, a normál hibasáv hibaüzenetekkel jelenik meg.

Szükség esetén a képletet is módosíthatjuk errre: Label1.Text = IfError( 1/Slider1.Value, 0 ). Ennek eredményeképpen nem jelenik meg hibaüzenet vagy hibabanner. Az OnError hibaüzenet értéke nem változtatható meg, mert a hiba már megtörtént, csak az a kérdés, hogyan kell jelenteni.

Ha hozzáadunk egy OnError kezelőt, az az 5. lépés előtt nem lesz hatással az 5. lépésre, de befolyásolhatja a hiba jelentésének mikéntjét:

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

App.OnError képlet nyomkövetés létrehozására beállítva.

Ha ez a helyén van, az alkalmazás felhasználója szempontjából nem lesz hiba. A hibát azonban hozzáadja a Figyelő nyomkövetési naplója, kiegészítve a FirstError hibainformációi forrásával:

A csúszka vezérlése 0-ra váltott, ami nulla osztást eredményezett, de nem hibasávot.

Ha a nyomkövetés mellett ugyanazt az alapértelmezett hibaüzenet-transzparenst is meg szeretnénk jelenni, akkor a nyomkövetési hívás után is újra el lehet követni a hibát ugyanúgy, mint ha a nyomkövetési napló ott lenne:

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

OnStart tulajdonság

Feljegyzés

Az OnStart tulajdonság használata alkalmazás betöltésekor teljesítményproblémákat okozhat. Jelenleg azon dolgozunk, hogy alternatívákat hozzunk a tulajdonság használatának legfontosabb két okára: az adatok gyorsítótárazása és globális változók beállítása. Már létrehoztunk egy alternatívát, hogy az első képernyő megjelenítésének definiálására a Navigate függvénnyel. A környezettől függően előfordulhat, hogy ez a tulajdonság alapértelmezés szerint le van tiltva. Ha nem látja, és használnia kell, akkor keresse meg az alkalmazás Speciális beállításai között a kapcsolót az engedélyezéséhez. A képernyő OnVisible tulajdonsága is használható.

Az OnStart tulajdonság akkor fut, amikor a felhasználó elindítja az alkalmazást. Ezt a tulajdonságot gyakran a következő feladatok végrehajtásához használják:

  • Adatok beolvasása és gyorsítótárazása a gyűjteményekbe a Collect függvény segítségével.
  • Globális változók létrehozása a Set függvénnyel.

A képlet kiértékelése az első képernyő megjelenése előtt történik. A rendszer nem tölti be a képernyőt, így nem lehet környezeti változókat beállítani az UpdateContext függvénnyel. A kontextus változóit azonban átadhatja a Navigate függvénnyel.

Miután megváltoztatta az OnStart tulajdonságot, tesztelje: mutasson az Alkalmazás objektumra a Fa nézet ablaktáblában, és válassza a három pontot (...), majd válassza az OnStart futtatás elemet. Az alkalmazás első betöltésével ellentétben a meglévő gyűjtemények és változók beállítása már megtörténik. Ha üres gyűjteményekkel szeretne kezdeni, használja a ClearCollect függvényt a Collect függvény helyett.

Alkalmazáselem – parancsikonmenü az OnStart függvényhez

Feljegyzés

  • Az OnStart tulajdonság Navigate függvénye ki lett vezetve. A meglévő alkalmazások továbbra működnek. Korlátozott ideig még engedélyezheti az alkalmazás beállításaiban (elérhető a Visszavont csoportban). Azonban a Navigate ily módon való használata az alkalmazás betöltési késéséhez vezethet, mivel a rendszert arra kényszeríti, hogy az első képernyő megjelenítése előtt kiértékelje az OnStart tulajdonságot. Az első megjelenített képernyő kiszámításához használja a StartScreen tulajdonságot.
  • A Visszavont kapcsoló a 2021 márciusa előtt létrehozott alkalmazásoknál ki lesz kapcsolva, ahol 2021 márciusa és most között adta hozzá a Navigate függvényt az OnStart tulajdonsághoz. Az ilyen alkalmazások szerkesztésekor a Power Apps Studio alkalmazásban hibaüzenet jelenhet meg. A fenti Visszavont kapcsoló átkapcsolásával törölje a hibát.

StartScreen tulajdonság

Feljegyzés

Ha be van kapcsolva a Továbbfejlesztett képletsáv, akkor a StartScreen tulajdonság nem jelenik meg a tulajdonságok listájában. Ha ki szeretné kapcsolni a Továbbfejlesztett képletsávot, akkor a Beállítások>Hamarosanelérhető funkciók>Visszavont> lehetőségek között kikapcsolhatja a Továbbfejlesztett képletsáv kapcsolót, amikor használni szeretné a StartScreen tulajdonságot.

A StartScreen tulajdonság határozza meg, hogy először melyik képernyő fog megjelenik. A rendszer egyszer értékeli ki, amikor betöltődik az alkalmazás, és visszaadja a megjelenítendő képernyőobjektumot. Alapértelmezés szerint ez a tulajdonság üres, és megjelenik az első képernyő a Studio fanézetből.

A StartScreen egy olyan adatfolyam-tulajdonság, amely nem tartalmazhat viselkedési függvényeket. Az összes adatfolyam-függvény elérhető, ezért használja ezeket a függvényeket és jeleket annak meghatározásához, hogy melyik képernyőt szeretné elsőként megjeleníteni:

  • Param függvény az alkalmazás indítási paramétereinek olvasásához.
  • User függvény az aktuális felhasználóra vonatkozó információk beolvasásához.
  • sLookUp, Filter, CountRows, Max és egyéb függvények a beolvasáshoz az adatforrásból.
  • Bármely API-hívás egy összekötőn keresztül, de ügyeljen arra, hogy gyorsan vissza legyen adva.
  • Olyan jelzésekkel, mint a Connection, Compass és Alkalmazás.

Feljegyzés

A globális változók és gyűjtemények – beleértve az OnStart tulajdonságban létrehozott változókat is – nem érhetők el a StartScreen tulajdonságban. Ennek deklaratív alternatívái már úton vannak. Ha visszajelzést szeretne küldeni erről a korlátozásról, menjen a Power Apps közösségi fórumra.

Ha a StartScreen hibát ad eredményül, akkor a Studio fanézet első képernyője úgy jelenik meg, mintha nem lett volna beállítva a StartScreen. Az IfError függvénnyel minden hibát elfoghat, és átirányíthat a megfelelő hibaképernyőre.

Miután megváltoztatta az StartScreen tulajdonságot a Studban, tesztelje: mutasson az Alkalmazás objektumra a Fa nézet ablaktáblában, és válassza a három pontot (...), majd válassza a Navigálás a StartScreen képernyőre elemet. A képernyő úgy változik, mintha az alkalmazás betöltődött volna.

Navigálás a StartScreen képernyőre

Példák

Screen9

Azt jelzi, hogy az alkalmazás minden indításakor először Screen9 képernyőnek kell láthatónak lennie.

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

Ellenőrzi, hogy a felhasználó beállította-e a Param "admin-módot", és azt használja-e annak eldöntésében, hogy előbb a HomeScreen vagy az AdminScreen képernyő jelenjen-e meg.

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

Ellenőrzi, hogy egy konferencia résztvevője munkatárs-e, és az indításkor a megfelelő képernyőre irányítja.

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

Az alkalmazást egy API-hívás alapján irányítja a ForestScreen vagy az OceanScreen képernyőre. Ha az API valamilyen okból sikertelen, a ErrorScreen lesz használva helyette.

StudioVersion tulajdonság

A StudioVersion tulajdonsággal megjelenítheti vagy naplózhatja az alkalmazás közzétételéhez használt verziót Power Apps Studio . Ez hibakereséskor lehet hasznos, és ha meg szeretne győződni arról, hogy az alkalmazást újra közzétette az Power Apps Studio újabb verziójával.

A StudioVersion szövegként lesz visszaadva. A szöveg formátuma idővel változhat, és azt egy egészként kell kezelni; Kerülje az egyes adagok kivonását.