App-Objekt in Power Apps

Bietet Informationen zur aktuell ausgeführten App und dem Steuerelement über das Verhalten der App.

Beschreibung

Wie ein Steuerelement bietet das App-Objekt Eigenschaften, die angeben, welcher Bildschirm angezeigt wird, und die den Benutzer auffordern, Änderungen zu speichern, damit sie nicht verloren gehen. Jede App hat ein App-Objekt.

Sie können Formeln für einige Eigenschaften von App-Objekt schreiben. Wählen Sie oben im Bereich der Strukturansicht das App-Objekt aus, so wie Sie jedes andere Steuerelement oder einen Bildschirm auswählen. Zeigen Sie eine der Objekteigenschaften an und bearbeiten Sie sie, indem Sie sie in der Dropdownliste links neben der Formelleiste auswählen.

Das App-Objekt in der Strukturansicht

ActiveScreen-Eigenschaft

Die ActiveScreen-Eigenschaft gibt den angezeigten Bildschirm an.

Diese Eigenschaft gibt ein Bildschirmobjekt zurück, das Sie zum Verweisen auf Bildschirmeigenschaften oder Vergleichen mit einem anderen Bildschirm verwenden können, um zu bestimmen, welcher Bildschirm angezeigt wird. Sie können auch den Ausdruck App.ActiveScreen.Name verwenden, um den Namen des angezeigten Bildschirms abzurufen.

Verwenden Sie die Back- oder Navigate-Funktion zum Ändern des angezeigten Bildschirms.

ConfirmExit-Eigenschaften

Niemand möchte nicht gespeicherte Änderungen verlieren. Verwenden Sie die ConfirmExit- und ConfirmExitMessage-Eigenschaften, um den Benutzer zu warnen, bevor er Ihre App schließt.

Hinweis

  • ConfirmExit funktioniert nicht in Apps, die beispielsweise in Power BI und SharePoint eingebettet sind.
  • Gegenwärtig können diese Eigenschaften nur auf dem ersten Bildschirm auf Steuerelemente verweisen, wenn die Delayed load-Vorschaufunktion aktiviert ist (standardmäßig für neue Apps). Wenn Verweise erstellt werden, zeigt Power Apps Studio keinen Fehler an, aber die resultierende veröffentlichte App wird nicht in Power Apps Mobile oder einem Browser geöffnet. Wir arbeiten aktiv daran, diese Einschränkung aufzuheben. In der Zwischenzeit können Sie Verzögertes Laden in Einstellungen > Neue Funktionen (unter Vorschau) festlegen.

ConfirmExit

ConfirmExit ist eine boolesche Eigenschaft, die, wenn sie true ist, ein Bestätigungsdialogfeld öffnet, bevor die App geschlossen wird. Standardmäßig ist diese Eigenschaft false und es wird kein Dialogfeld angezeigt.

Verwenden Sie diese Eigenschaft, um ein Bestätigungsdialogfeld anzuzeigen, wenn der Benutzer Änderungen vorgenommen, diese jedoch nicht gespeichert hat. Verwenden Sie eine Formel, mit der Variablen und Steuerelementeigenschaften überprüft werden können (z. B. Unsaved-Eigenschaft des Edit form-Steuerelements).

Das Bestätigungsdialogfeld wird in allen Situationen angezeigt, in denen Daten verloren gehen könnten, wie in den folgenden Beispielen:

  • Ausführen der Exit-Funktion.
  • Wenn die App in einem Browser ausgeführt wird:
    • Schließen des Browsers oder der Browser-Registerkarte, in der die App ausgeführt wird.
    • Auswahl der Zurück-Schaltfläche des Browsers.
    • Ausführen der Funktion Launch mit einem LaunchTarget von Self.
  • Wenn die App in Power Apps Mobile (iOS oder Android) ausgeführt wird:
    • Wischen, um zu einer anderen App in Power Apps Mobile zu wechseln.
    • Auswahl der Zurück-Taste auf einem Android-Gerät.
    • Ausführen der Funktion Launch, um eine weitere Canvas App zu starten.

Das genaue Erscheinungsbild des Bestätigungsdialogfelds kann je nach Gerät und Version von Power Apps variieren.

Das Bestätigungsdialogfeld wird nicht in Power Apps Studio angezeigt.

ConfirmExitMessage

Standardmäßig wird im Bestätigungsdialogfeld eine allgemeine Meldung, z. B. „Möglicherweise haben Sie nicht gespeicherte Änderungen.“ in der Sprache des Benutzers angezeigt.

Verwenden Sie ConfirmExitMessage, um eine benutzerdefinierte Nachricht im Bestätigungsdialogfeld bereitzustellen. Wenn diese Eigenschaft leer ist, wird der Standardwert verwendet. Benutzerdefinierte Nachrichten werden nach Bedarf abgeschnitten, damit sie in das Bestätigungsdialogfeld passen. Verfassen Sie die Nachricht daher höchstens in wenigen Zeilen.

In einem Browser wird das Bestätigungsdialogfeld möglicherweise mit einer allgemeinen Meldung des Browsers angezeigt.

Hinweis

App-Objekt hat zwei weitere zusätzliche Eigenschaften OnMessage und BackEnabled, dies sind experimentelle Eigenschaften und werden in Zukunft vom App-Objekt entfernt. Wir empfehlen, diese Eigenschaften in Ihrer Produktionsumgebung nicht zu verwenden.

Beispiel

  1. Erstellen Sie eine App, die zwei Formular-Steuerelemente enthält: AccountForm und ContactForm.

  2. Legen Sie die ConfirmExit-Eigenschaft des App-Objekts auf diesen Ausdruck fest:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Dieses Dialogfeld wird angezeigt, wenn der Benutzer Daten in beiden Formularen ändert und dann versucht, die App zu schließen, ohne diese Änderungen zu speichern.

    Allgemeines Bestätigungsdialogfeld

  3. Legen Sie die ConfirmExitMessage-Eigenschaft des App-Objekts auf diese Formel fest:

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

    Dieses Dialogfeld wird angezeigt, wenn der Benutzer Daten im Konto-Formular ändert und dann versucht, die App zu schließen, ohne diese Änderungen zu speichern.

    Formularspezifisches Bestätigungsdialogfeld

Eigenschaft „OnError“

Hinweis

Benutzen Sie OnError, um Maßnahmen zu ergreifen, nachdem ein Fehler erkannt wurde. Es bietet eine globale Möglichkeit, ein Fehlerbanner abzufangen, bevor es dem Endbenutzer angezeigt wird. Es kann auch verwendet werden, um einen Fehler mit der Funktion Trace zu protokollieren oder in eine Datenbank oder einen Webdienst zu schreiben.

Das Ergebnis jeder Formelauswertung wird auf Fehler überprüft. Wenn es sich um einen Fehler handelt wird OnError mit den gleichen FirstError- und AllErrors Umfangsvariablen bewertet, die vorhanden gewesen wären, wenn die gesamte Formel in eine IfError-Funktion eingeschlossen worden wäre.

Wenn OnError leer ist, wird ein Standardfehlerbanner mit der FirstError.Message des Fehlers angezeigt. Die Definition einer OnError-Formel setzt dieses Verhalten außer Kraft, sodass der Hersteller die Fehlerberichterstattung nach eigenem Ermessen handhaben kann. Das Standardverhalten kann im OnError angefordert werden, indem der Fehler mit der Error-Funktion erneut ausgelöst wird. Dies ist nützlich, wenn einige Fehler herausgefiltert oder anders behandelt werden sollen, während andere weitergereicht werden sollen.

OnError kann so einen Rechenfehler nicht wie IfError ersetzen. An dem Punkt, wo OnError aufgerufen wird, ist der Fehler bereits aufgetreten und wurde bereits durch Formelberechnungen verarbeitet. *OnError* steuert nur die Fehlerberichterstattung.

OnError-Formeln werden gleichzeitig ausgewertet und es ist möglich, dass sich ihre Auswertung mit der Verarbeitung anderer Fehler überschneidet. Wenn Sie beispielsweise eine globale Variable am Anfang einer OnError festlegen und später in derselben Formel feststellen, kann sich der Wert geändert haben. Verwenden Sie die With-Funktion, um einen benannten Wert zu erstellen, der für die Formel lokal ist.

Zwar wird durch OnError jeder Fehler einzeln bearbeitet, doch das Standardfehlerbanner wird möglicherweise nicht für jeden Fehler einzeln angezeigt. Um zu vermeiden, dass zu viele Fehlerbanner gleichzeitig angezeigt werden, löst derselbe Fehler kein neues Fehlerbanner aus, wenn er kürzlich angezeigt wurde.

Beispiel

Nehmen wir an, ein Label-Steuerelement und ein Slider-Steuerelement sind durch die Formel miteinander verbunden:

Label1.Text = 1/Slider1.Value

„Label“- und „Slider“-Steuerelement sind durch die Formel „Label1.Text = 1/Slider1.Value“ verbunden.

Der Schiebereglerwert ist standardmäßig 50. Wenn der Schieberegler auf 0 bewegt wird, zeigt Label1 keinen Wert an, und ein Fehlerbanner wird angezeigt:

Das „Slider“-Steuerelement wurde auf 0 verschoben, was zu einem Fehler „Division durch Null“ und einem Fehlerbanner führte.

Sehen wir uns an, was im Detail passiert ist:

  1. Der Benutzer schob den Schieberegler nach links und die Eigenschaft Slide1.Value änderte sich auf 0.
  2. Label1.Text wurde automatisch neu bewertet. Eine Division durch Null ist aufgetreten und hat einen Fehler generiert.
  3. Es gibt in dieser Fehler keinen IfError. Der Division-durch-Null-Fehler wird von der Formelauswertung zurückgegeben.
  4. Label1.Text kann für diesen Fehler nichts anzeigen, also wird ein leerer Status angezeigt.
  5. OnError wird ausgelöst. Da es keinen Handler gibt, wird das Standardfehlerbanner mit Fehlerinformationen angezeigt.

Bei Bedarf könnten wir die Formel auch auf Label1.Text = IfError( 1/Slider1.Value, 0 ) ändern. Dies würde zu keinem Fehler oder Fehlerbanner führen. Wir können den Wert eines Fehlers von OnError nicht ändern, da der Fehler zu diesem Zeitpunkt bereits aufgetreten ist. So stellt sich nur die Frage, wie er gemeldet wird.

Wenn wir einen OnError-Handler hinzufügen, hat er vor Schritt 5 keine Auswirkungen, kann sich aber darauf auswirken, wie der Fehler gemeldet wird:

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

App.OnError-Formel, die auf das Generieren einer Überwachung festgelegt ist.

Wenn dies vorhanden ist, tritt aus Sicht des App-Benutzers kein Fehler auf. Der Fehler wird aber der Ablaufverfolgung hinzugefügt, einschließlich der Quelle der Fehlerinformationen von FirstError:

Das „Slider“-Steuerelement wurde auf 0 verschoben, was zu einem Fehler „Division durch Null“, aber keinem Fehlerbanner führte.

Wenn neben der Verfolgung auch das gleiche Standardfehlerbanner angezeigt werden soll, können wir den Fehler mit der Funktion Error nach dem Verfolgung-Aufruf erneut auslösen, genauso wie wenn die Verfolgung nicht da wäre:

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

OnStart-Eigenschaft

Hinweis

Die Verwendung der Eigenschaft OnStart kann beim Laden einer App zu Leistungsproblemen führen. Wir sind gerade dabei, Alternativen für die beiden wichtigsten Gründe für die Verwendung der Eigenschaft —zu erstellen: Zwischenspeichern von Daten und Einrichten von globalen Variablen. Wir haben bereits eine Alternative für die Definition des ersten Bildschirms erstellt, der mit Navigate angezeigt wird. Abhängig von Ihrem Kontext ist diese Eigenschaft möglicherweise standardmäßig deaktiviert. Wenn sie nicht angezeigt wird und Sie sie verwenden müssen, suchen Sie in den erweiterten Einstellungen der App nach einem Schalter, um sie zu aktivieren. Die OnVisible Eigenschaft eines Bildschirms kann ebenfalls verwendet werden.

Die OnStart-Eigenschaft wird ausgeführt, wenn der Benutzer die App startet. Diese Eigenschaft wird häufig für die folgenden Aufgaben verwendet:

  • Abrufen und Zwischenspeichern von Daten in Sammlungen mithilfe der Collect-Funktion.
  • Einrichten von globalen Variablen mit der Set-Funktion.

Diese Formel wird ausgewertet, bevor der erste Bildschirm angezeigt wird. Es wird kein Bildschirm geladen, daher können Sie mit der UpdateContext-Funktion keine Kontextvariablen festlegen. Sie können jedoch Kontextvariablen mit der Navigate-Funktion übergeben.

Nachdem Sie die Eigenschaft OnStart geändert haben, testen Sie sie, indem Sie den Mauszeiger über das Objekt App im Bereich Baumansicht bewegen, Auslassungspunkte (...) wählen und dann OnStart ausführen. Anders als beim ersten Laden der App werden bereits vorhandene Sammlungen und Variablen festgelegt. Um mit leeren Sammlungen zu beginnen, verwenden Sie die ClearCollect-Funktion anstelle der Collect-Funktion.

App-Element-Kontextmenü für Run OnStart

Hinweis

  • Die Verwendung der Funktion Navigate in der Eigenschaft OnStart wurde abgeschafft. Bestehende Apps werden weiterhin funktionieren. Für eine begrenzte Zeit können Sie die Funktion noch in den Einstellungen der App aktivieren (verfügbar unter Retired). Die Verwendung von Navigate auf diese Weise kann jedoch zu Verzögerungen beim Laden von Apps führen, da das System gezwungen wird, die Auswertung von OnStart abzuschließen, bevor der erste Bildschirm angezeigt wird. Verwenden Sie stattdessen die Eigenschaft StartScreen, um den ersten angezeigten Bildschirm zu berechnen.
  • Der Schalter Retired wird für Apps ausgeschaltet, die vor März 2021 erstellt wurden und bei denen Sie Navigate zu OnStart zwischen März 2021 und jetzt hinzugefügt haben. Wenn Sie solche Apps in Power Apps Studio bearbeiten, wird möglicherweise ein Fehler angezeigt. Schalten Sie den oben erwähnten Retired Schalter um, um diesen Fehler zu löschen.

Eigenschaft StartScreen

Hinweis

Die Eigenschaft StartScreen erscheint nicht in der Liste der Eigenschaften, wenn die Option Erweiterte Formelleiste im Ruhestand aktiviert ist. Um die Erweiterte Formelleiste zu deaktivieren, gehen Sie zu Einstellungen > Neue Funktionen > Abgelaufen > schalten Sie den Schalter Erweiterte Formelleiste aus, wenn Sie die Eigenschaft StartScreen verwenden möchten.

Die Eigenschaft StartScreen bestimmt, welcher Bildschirm zuerst angezeigt wird. Sie wird einmal ausgewertet, wenn die App geladen wird und gibt das anzuzeigende Bildschirmobjekt zurück. Standardmäßig ist diese Eigenschaft leer und der erste Bildschirm in der Studio-Strukturansicht wird zuerst angezeigt.

StartScreen ist eine Eigenschaft des Data Flows, die keine Verhaltensfunktionen enthalten kann. Es stehen alle Funktionen des Data Flows zur Verfügung. Verwenden Sie insbesondere diese Funktionen und Signale, um zu bestimmen, welcher Bildschirm zuerst angezeigt werden soll:

  • Param Funktion zum Lesen der Parameter, die zum Starten der App verwendet werden.
  • User Funktion, um Informationen über den aktuellen Benutzer zu lesen.
  • LookUp, Filter, CountRows, Max, und andere Funktionen, die aus einer Datenquelle lesen.
  • Alle API-Aufrufe über einen Konnektor, aber achten Sie darauf, dass er schnell zurückkehrt.
  • Signale wie Verbindung, Kompass, und App.

Hinweis

Globale Variablen und Sammlungen, einschließlich der in OnStart erstellten, sind in StartScreen nicht verfügbar. Es wird bald deklarative Alternativen geben, die dies ermöglichen. Ihr Feedback zu dieser Einschränkung finden Sie im Power Apps-Community-Forum.

Wenn StartScreen einen Fehler zurückgibt, wird der erste Bildschirm in der Studio-Strukturansicht so angezeigt, als ob StartScreen nicht festgelegt worden wäre. Verwenden Sie die Funktion IfError, um Fehler abzufangen und auf einen entsprechenden Fehlerbildschirm umzuleiten.

Nachdem Sie StartScreen in Studio geändert haben, testen Sie es, indem Sie den Mauszeiger über das Objekt App in der Baumansicht bewegen, die Auslassungspunkte (...) auswählen und dann Zum StartScreen navigieren wählen. Der Bildschirm ändert sich, als ob die App geladen worden wäre.

Zu StartScreen navigieren

Beispiele

Screen9

Gibt an, dass Screen9 beim Start der App zuerst angezeigt werden soll.

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

Prüft, ob der Parameter „Admin-Modus“ vom Benutzer festgelegt wurde und entscheidet anhand dessen, ob der HomeScreen oder der AdminScreen zuerst angezeigt werden soll.

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

Prüft, ob es sich bei einem Konferenzteilnehmer um einen Mitarbeiter handelt und leitet ihn beim Start auf den richtigen Bildschirm weiter.

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

Leitet die App auf der Grundlage eines API-Aufrufs entweder auf ForestScreen oder OceanScreen. Wenn die API aus irgendeinem Grund fehlschlägt, wird stattdessen die ErrorScreen verwendet.

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).