Condividi tramite


Oggetto App in Power Apps

Si applica a: App canvas App basate su modello

Fornisce informazioni sull'app attualmente in esecuzione e il controllo sul comportamento dell'app.

Descrizione

Come un controllo, l'oggetto App fornisce proprietà che identificano quale schermata viene visualizzata e che richiedono all'utente di salvare le modifiche in modo che non vengano perse. Ogni app ha un oggetto App.

Puoi scrivere le formule per alcune proprietà dell'oggetto App. Nella parte superiore del riquadro Visualizzazione ad albero, seleziona l'oggetto App come qualsiasi altro controllo o schermo. Visualizza e modifica una delle proprietà dell'oggetto selezionandola nell'elenco a discesa a sinistra della barra della formula.

L'oggetto App nel riquadro Visualizzazione ad albero.

Proprietà ActiveScreen

La proprietà ActiveScreen identifica la schermata visualizzata.

Questa proprietà restituisce un oggetto schermo. Usalo per fare riferimento alle proprietà della schermata attualmente visualizzata, come il nome con la formula App.ActiveScreen.Name. Puoi anche confrontare questa proprietà con un altro oggetto della pagina, ad esempio con la formula di confronto App.ActiveScreen = Schermo2 per testare se Screen2 è la schermata attualmente visualizzata.

Usa la funzione Back o Navigate per cambiare la schermata visualizzata.

Proprietà BackEnabled

La proprietà BackEnabled modifica il modo in cui l'app risponde al gesto indietro del dispositivo (scorri o utilizza il pulsante Indietro sui dispositivi Android, scorri da sinistra sui dispositivi iOS) quando eseguita in Power Apps per dispositivi mobili. Se abilitata, il gesto Indietro del dispositivo torna alla schermata visualizzata più di recente. Questo comportamento è simile a quello della formula Back. Quando disabilitata, il gesto indietro del dispositivo riporta l'utente all'elenco delle app.

Proprietà ConfirmExit

Nessuno vuole perdere le modifiche non salvate. Usa le proprietà ConfirmExit e ConfirmExitMessage per avvisare l'utente prima che chiuda l'app.

Nota

  • ConfirmExit non funziona nelle app integrate, ad esempio, Power BI e SharePoint.
  • Al momento, queste proprietà possono fare riferimento ai controlli solo sulla prima schermata se la funzione Delayed load di anteprima è abilitata (come per impostazione predefinita per le nuove app). Se vengono fatti riferimenti, Power Apps Studio non mostra un errore, ma l'app pubblicata risultante non si apre in Power Apps per dispositivi mobili o un browser. Questa limitazione è in fase di risoluzione. Nel frattempo puoi disabilitare Carico ritardato in Impostazioni>Funzionalità in arrivo (in Anteprima).

ConfirmExit

ConfirmExit è una proprietà booleana che, quando è true, apre una finestra di dialogo di conferma prima della chiusura dell'app. Per impostazione predefinita, questa proprietà è false e non viene visualizzata alcuna finestra di dialogo.

Nelle situazioni in cui l'utente potrebbe avere modifiche non salvate nell'app, utilizza questa proprietà per mostrare una finestra di dialogo di conferma prima di uscire dall'app. Utilizza una formula che può controllare le variabili e le proprietà di controllo (ad esempio, la proprietà Unsaved del controllo Edit form).

La finestra di dialogo di conferma appare in qualsiasi situazione in cui i dati potrebbero andare persi, come in questi esempi:

  • Esecuzione della funzione Exit.
  • Se l'app è in esecuzione in un browser:
    • Chiusura del browser o della scheda del browser in cui l'app è in esecuzione.
    • Selezione del pulsante Indietro del browser.
    • Esecuzione della funzione Launch con LaunchTarget di Self.
  • Se l'app è in esecuzione in Power Apps Mobile (iOS o Android):
    • Scorrimento rapido per passare a un'altra app in Power Apps per dispositivi mobili.
    • Selezione del pulsante Indietro su un dispositivo Android.
    • Esecuzione della funzione Launch per avviare un'altra app canvas.

L'aspetto esatto della finestra di dialogo di conferma potrebbe variare in base ai dispositivi e alle versioni di Power Apps.

La finestra di dialogo di conferma non viene visualizzata in Power Apps Studio.

ConfirmExitMessage

Per impostazione predefinita, la finestra di dialogo di conferma mostra un messaggio generico, ad esempio "Potresti avere modifiche non salvate". nella lingua dell'utente.

Usa ConfirmExitMessage per fornire un messaggio personalizzato nella finestra di dialogo di conferma. Se questa proprietà è vuota, viene utilizzato il valore predefinito. I messaggi personalizzati vengono troncati, se necessario, per rientrare nella finestra di dialogo di conferma, quindi mantieni il messaggio al massimo a poche righe.

In un browser, la finestra di dialogo di conferma potrebbe apparire con un messaggio generico dal browser.

Nota

L'oggetto app ha altre due proprietà, ovvero OnMessage e BackEnabled, che sono sperimentali. Queste proprietà verranno rimosse dall'oggetto app. Ti consigliamo di non utilizzare queste proprietà nell'ambiente di produzione.

Esempio

  1. Crea un'app che contiene due controlli del modulo, AccountForm e ContactForm.

  2. Imposta la proprietà ConfirmExit dell'oggetto App su questa espressione:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    Questa finestra di dialogo viene visualizzata se l'utente modifica i dati in uno dei due moduli e quindi tenta di chiudere l'app senza salvare le modifiche.

    Finestra di dialogo di conferma generica.

  3. Imposta la proprietà ConfirmExitMessage dell'oggetto App su questa formula:

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

    Questa finestra di dialogo viene visualizzata se l'utente modifica i dati nel modulo Account e quindi tenta di chiudere l'app senza salvare le modifiche.

    Finestra di dialogo di conferma specifica del modulo.

Configurare la chiave di strumentazione per Application Insights

Per esportare i log dell'applicazione generati dal sistema in Application Insights, devi configurare la Chiave di strumentazione per la tua app canvas.

  1. Apri l'app per la modifica in Power Apps Studio.
  2. Selezionare l'oggetto App nella visualizzazione ad albero del riquadro di spostamento.
  3. Inserisci la chiave della strumentazione nel riquadro delle proprietà.

Se i dati non vengono inviati ad App Insights, contatta il tuo amministratore di Power Platform e verifica se App Insights è disabilitato a livello di tenant.

Proprietà Formulas

Utilizza formule con nome nella proprietà Formulas per definire una formula che può essere riutilizzata in tutta l'app.

In Power Apps, le formule determinano il valore delle proprietà del controllo. Ad esempio, per impostare il colore di sfondo in modo coerente in un'app, potresti impostare la proprietà Fill su una formula comune:

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

Con così tanti elementi in cui questa formula può apparire, diventa noioso e soggetto a errori aggiornarli tutti se è necessaria una modifica. Puoi invece creare una variabile globale in OnStart per impostare il colore una volta e quindi riutilizzare il valore nell'intera app:

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

Questo metodo è migliore, ma è necessario eseguire prima OnStart per poter impostare il valore di BGColor. BGColor potrebbe anche essere modificato da qualcun altro e se l'autore non è a conoscenza di tale modifica, può risultare difficile identificarla.

Le formule con nome forniscono un'alternativa. Proprio come in genere scriviamo proprietà di controllo = espressione, possiamo invece scrivere nome = espressione e quindi riutilizzare nome in tutta l'app per sostituire espressione. Le definizioni di queste formule vengono eseguite nella proprietà Formulas:

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

I vantaggi derivanti dall'utilizzo di formule con nome sono:

  • Il valore della formula è sempre disponibile. Non c'è dipendenza temporale, nessuna proprietà OnStart che deve essere eseguita prima affinché il valore venga impostato, nessun momento in cui il valore della formula non è corretto. Le formule con nome possono farsi riferimento a vicenda in qualsiasi ordine, purché non creino un riferimento circolare. Possono essere calcolate in parallelo.
  • Il valore della formula è sempre aggiornato. La formula può eseguire un calcolo che dipende dalle proprietà di controllo o dai record del database e quando questi cambiano, il valore della formula si aggiorna automaticamente. Non devi aggiornare manualmente il valore come avviene con una variabile. Inoltre, le formule vengono ricalcolate solo quando necessario.
  • La definizione della formula è immutabile. La definizione in Formulas è l'unica origine di riferimento e il valore non può essere modificato altrove nell'app. Con le variabili, è possibile che del codice modifichi inaspettatamente un valore, ma è una situazione di debug difficile e non è possibile con le formule con nome.
  • Il calcolo della formula può essere differito. Poiché il relativo valore è immutabile, può sempre essere calcolato al momento opportuno, il che significa che non serve calcolarlo finché non sarà necessario. I valori della formula che non vengono utilizzati fino a che non viene visualizzato screen2 di un'app, non devono essere calcolati fino a che screen2 non è visibile. Il rinvio può migliorare il tempo di caricamento dell'app. Le formule con nome sono dichiarative e offrono al sistema opportunità di ottimizzare come e quando vengono calcolate.
  • Le formule con nome sono un concetto di Excel. Power Fx utilizza i concetti di Excel quando possibile poiché tante persone conoscono Excel. Le formule con nome sono l'equivalente delle celle con nome e delle formule con nome in Excel, gestite con Gestione nomi. Vengono ricalcolate automaticamente come celle di un foglio di calcolo e proprietà di controllo.

Le formule con nome sono definite una dopo l'altra nella proprietà Formulas e ognuna termina con un punto e virgola. Il tipo della formula viene dedotto dai tipi degli elementi all'interno della formula e dal modo in cui vengono utilizzati insieme. Ad esempio, queste formule con nome recuperano informazioni utili sull'utente corrente da 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' );

Se la formula per UserTitle deve essere aggiornata, l'aggiornamento può essere eseguito facilmente in questa posizione. Se UserPhone non è necessario nell'app, le chiamate alla tabella Utenti in Dataverse non vengono eseguite. Non è prevista alcuna penalità per l'inclusione di una definizione di formula che non viene utilizzata.

Alcune limitazioni delle formule con nome:

  • Non possono utilizzare funzioni di comportamento in quanto possono causare effetti collaterali nell'app.
  • Non possono creare un riferimento circolare. Avere a = b; e b = a; nella stessa app non è consentito.

Funzioni definite dall'utente

Importante

Power Fx include un lungo elenco di funzioni predefinite, ad esempio If, Testo e Imposta. Le funzioni definite dall'utente consentono di scrivere funzioni personalizzate che accettano parametri e restituiscono un valore, proprio come fanno le funzioni predefinite. Puoi considerare le funzioni definite dall'utente come un'estensione delle formule con nome che aggiunge parametri e supporta formule di comportamento.

Ad esempio, è possibile definire una formula con nome che restituisce libri di narrativa da una libreria:

Library = [ { Title: "The Hobbit", Author: "J. R. R. Tolkien", Genre: "Fiction" },
            { Title: "Oxford English Dictionary", Author: "Oxford University", Genre: "Reference" } ];

LibraryFiction = Filter( Library, Genre = "Fiction" );

Senza parametri, saremmo in grado di definire formule con nome separate per ogni genere. Parametrizziamo invece la formula con nome:

LibraryType := Type( [ { Title: Text, Author: Text, Genre: Text } ] );

LibraryGenre( SelectedGenre: Text ): LibraryType = Filter( Library, Genre = SelectedGenre );

Ora possiamo richiamare LibraryGenre( "Fiction" ), LibraryGenre( "Reference" ) o filtrare altri generi con una singola funzione definita dall'utente.

La sintassi è:

FunctionName( [ ParameterName1: ParameterType1 [ , ParameterName2: ParameterType2 ... ] ] ) : ReturnType = Formula;

  • FunctionName: obbligatorio. Nome della funzione definita dall'utente.
  • ParameterName: facoltativo. Il nome di un parametro di funzione.
  • ParameterType(s): facoltativo. Il nome di un tipo, un nome del tipo di dato predefinito, un nome di origine dati o un tipo definito con la funzione Type.
  • ReturnType: obbligatorio. Il tipo del valore restituito dalla funzione.
  • Formula: obbligatorio. La formula che calcola il valore della funzione in base ai parametri.

È necessario digitare ogni parametro e l'output della funzione definita dall'utente. In questo esempio, SelectedGenre: Text definisce che il primo parametro della funzione è di tipo Text e SelectedGenre è il nome del parametro utilizzato nel corpo per l'operazione Filtro. Vedi Tipi di dati per i nomi dei tipi supportati. La funzione Tipo viene utilizzata per creare un tipo aggregato per la raccolta, in modo da poter restituire una tabella di libri dalla nostra funzione.

Abbiamo definito LibraryType come una tabella plurale di tipo record. Se vogliamo passare un singolo libro ad una funzione, possiamo estrarre il tipo di record per questa tabella con la funzione RecordOf:

BookType := Type( RecordOf( LibraryType ) );

IsGenre( Book: BookType, SelectedGenre: Text ): Boolean = (Book.Genre = SelectedGenre);

La corrispondenza dei record per i parametri della funzione è più stretta rispetto ad altre parti di Power Fx. I campi di un valore record devono essere un sottoinsieme appropriato della definizione del tipo e non possono includere campi aggiuntivi. Ad esempio, IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" ) comporterà un errore.

Si noti che la ricorsione non è ancora supportata dalle funzioni definite dall'utente.

Comportamento delle funzioni definite dall'utente

Le formule con nome e la maggior parte delle funzioni definite dall'utente non supportano le funzioni di comportamento con effetti collaterali, ad esempio Set o Notify. In generale, è consigliabile evitare di aggiornare lo stato, se possibile, basandosi invece su modelli di programmazione funzionali e consentendo a Power Fx di ricalcolare automaticamente le formule in base alle esigenze. Ma ci sono casi in cui è inevitabile. Per includere la logica del comportamento in una funzione definita dall'utente, racchiudi il corpo tra parentesi graffe:

Spend( Amount: Number ) : Void = {
    If( Amount > Savings, 
        Error( $"{Amount} is more than available savings" ),
        Set( Savings, Savings - Amount );
        Set( Spent, Spent + Amount) 
    );
}

Ora possiamo chiamare Spend( 12 ) per verificare se abbiamo 12 in Risparmio, e in caso affermativo, per addebitare 12 e aggiungere 12 alla variabile Spesa. Il tipo restituito di questa funzione è Void perché non restituisce un valore.

La sintassi di una funzione di comportamento definita dall'utente è:

FunctionName( [ ParameterName1: ParameterType1 [ , ParameterName2: ParameterType2 ... ] ] ) : ReturnType = { Formula1 [ ; Formula2 ... ] };

  • FunctionName: obbligatorio. Nome della funzione definita dall'utente.
  • ParameterName: facoltativo. Il nome di un parametro di funzione.
  • ParameterType(s): facoltativo. Il nome di un tipo, un nome del tipo di dato predefinito, un nome di origine dati o un tipo definito con la funzione Type.
  • ReturnType: obbligatorio. Il tipo del valore restituito dalla funzione. Usa Void se la funzione non restituisce un valore.
  • Formula(s): obbligatorio. La formula che calcola il valore della funzione in base ai parametri.

Come per tutte le formule Power Fx, l'esecuzione non termina quando viene rilevato un errore. Dopo che la funzione Error è stata chiamata, la funzione If impedisce che vengano eseguite le modifiche a Risparmio e Spesa. La funzione IfError può essere utilizzata anche per impedire l'ulteriore esecuzione dopo un errore. Anche se restituisce Void, la formula può comunque restituire un errore in caso di problemi.

Tipi definiti dall'utente

Importante

Le formule con nome possono essere usate con la funzione Type per creare tipi definiti dall'utente. Utilizza := invece di = per definire un tipo definito dall'utente, ad esempio Book := Type( { Title: Text, Author: Text } ). Vedi la funzione Tipo per ulteriori informazioni ed esempi.

Proprietà OnError

Usa OnError per intervenire quando si verifica un errore in un punto qualsiasi dell'app. Fornisce un'opportunità globale per intercettare un banner di errore prima che venga visualizzato all'utente finale. Può anche essere utilizzato per registrare un errore con la funzione Trace o scrivere in un database o un servizio web.

Nelle app canvas, il risultato di ogni valutazione della formula viene controllato per verificare la presenza di un errore. Se viene riscontrato un errore, OnError viene valutato con le stesse variabili di ambito FirstError e AllErrors che sarebbero state presenti se l'intera formula fosse stata racchiusa in una funzione IfError.

Se OnError è vuoto, viene visualizzato un banner di errore predefinito con FirstError.Message dell'errore. La definizione di una formula OnError sovrascrive questo comportamento consentendo al produttore di gestire la segnalazione degli errori come meglio crede. Il comportamento predefinito può essere richiesto in OnError rigenerando l'errore con la funzione Error. Usa un approccio rigenerativo se alcuni errori devono essere filtrati o gestiti in modo diverso, mentre altri devono essere ignorati.

OnError non può sostituire un errore nei calcoli come fa IfError. Nel momento che OnError viene richiamato, l'errore si è già verificato ed è già stato elaborato tramite calcoli di formule come IfError; OnError controlla solo la segnalazione degli errori.

Le formule OnError vengono valutate contemporaneamente ed è possibile che la loro valutazione si sovrapponga all'elaborazione di altri errori. Ad esempio, se imposti una variabile globale all'inizio di un OnError e la leggi più avanti nella stessa formula, il valore potrebbe essere cambiato. Usa la funzione With per creare un valore denominato che sia locale nella formula.

Sebbene ogni errore venga elaborato individualmente da OnError, il banner di errore predefinito potrebbe non essere visualizzato singolarmente per ogni errore. Per evitare che vengano visualizzati troppi banner di errore contemporaneamente, lo stesso banner non verrà visualizzato nuovamente se è stato mostrato di recente.

Esempio

Considera un controllo Label e un controllo Slider che sono legati tra loro attraverso la formula:

Label1.Text = 1/Slider1.Value

Controllo label e slider associati tramite la formula Label1.Text = 1/Slider1.Value.

Per impostazione predefinita, il controllo slider è impostato su 50. Se slider viene spostato su 0, Label1 non mostrerà alcun valore e verrà visualizzato un banner di errore:

Il controllo slider è stato spostato su 0, determinando un errore di divisione per zero e un banner di errore.

Vediamo cosa è successo nel dettaglio:

  1. L'utente ha spostato il dispositivo di scorrimento a sinistra e la proprietà Slide1.Value è diventata 0.
  2. Label1.Text è stato rivalutato automaticamente. Si è verificata una divisione per zero, generando un errore.
  3. Non c'è IfError in questa formula. L'errore di divisione per zero viene restituito dalla formula di valutazione.
  4. Label1.Text non può mostrare nulla per questo errore, quindi mostra uno stato vuoto.
  5. OnError viene richiamato. Poiché non esiste un gestore, viene visualizzato il banner di errore standard con le informazioni sull'errore.

Se necessario, potremmo anche modificare la formula in Label1.Text = IfError( 1/Slider1.Value, 0 ). L'uso di IfError comporterà nessun errore o banner di errore. Non possiamo modificare il valore di un errore in OnError poiché a quel punto l'errore è già avvenuto; è solo questione di come verrà segnalato.

Se aggiungiamo un gestore OnError non avrà alcun impatto prima del passaggio 5, ma può influire sul modo in cui viene segnalato l'errore:

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

Formula App.OnError impostata per generare una traccia.

Con questo gestore OnError dal punto di vista dell'utente dell'app, non ci saranno errori. Ma l'errore verrà aggiunto alla traccia di monitoraggio, completo dell'origine delle informazioni sull'errore da FirstError:

Il controllo slider è stato spostato su 0, determinando un errore di divisione per zero ma nessun banner di errore.

Se volessimo anche visualizzare lo stesso banner di errore predefinito oltre alla traccia, possiamo rigenerare l'errore con la funzione Error dopo la chiamata Traccia proprio come se Traccia non fosse presente:

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

Proprietà OnStart

Nota

L'uso della proprietà OnStart può causare problemi di prestazioni durante il caricamento di un'app. Stiamo creando alternative per i due principali motivi per utilizzare la proprietà: memorizzazione nella cache dei dati e impostazione delle variabili globali. Abbiamo già creato un'alternativa per definire la prima schermata da mostrare con Esplora. A seconda del contesto, questa proprietà potrebbe essere disabilitata per impostazione predefinita. Se non la vedi e devi usarla, controlla le impostazioni avanzate dell'app e cerca un interruttore per abilitarla. Si può usare anche la proprietà OnVisible di uno schermo. Per impostazione predefinita, quando la regola non bloccante OnStart è abilitata, consente l'esecuzione simultanea della funzione OnStart con altre regole dell'app. Pertanto, se le variabili a cui si fa riferimento in altre regole dell'app vengono inizializzate all'interno della funzione OnStart, potrebbero non essere ancora completamente inizializzate. Inoltre, esiste la possibilità che venga eseguito il renderinguna di una schermata e che questa diventi interattiva prima che l'esecuzione delle funzioni Screen.OnVisible o App.OnStart termini, soprattutto se richiedono molto tempo per essere completate.

La proprietà OnStart viene eseguita quando l'utente avvia l'app. Questa proprietà viene spesso utilizzata per eseguire le seguenti attività:

  • Recupera e memorizza nella cache i dati nelle raccolte utilizzando la funzione Collect.
  • Imposta le variabili globali usando la funzione Set.

Questa formula viene calcolata prima che appaia la prima schermata. Non viene caricata alcuna schermata, quindi non è possibile impostare variabili di contesto con la funzione UpdateContext. Tuttavia, puoi passare variabili di contesto con la funzione Navigate.

Dopo aver modificato la proprietà OnStart, testala passando il mouse sopra l'oggetto App nel riqudro Visualizzazione ad albero selezionando i puntini di sospensione (...), quindi selezionando Esegui OnStart. A differenza di quando l'app viene caricata per la prima volta, le raccolte e le variabili esistenti saranno già impostate. Per iniziare con raccolte vuote, utilizza la funzione ClearCollect invece di Collect.

Menu di scelta rapida degli elementi dell'app per Esegui OnStart

Nota

  • L'uso della funzione Navigate nella proprietà OnStart è stata ritirata. Le app esistenti continueranno a funzionare. Per un periodo di tempo limitato, puoi ancora abilitarla nelle impostazioni dell'app (disponibile in Ritirato). Tuttavia, usando Esplora in questo modo può portare a ritardi nel caricamento dell'app in quanto costringe il sistema a completare la valutazione di OnStart prima di visualizzare la prima schermata. Utilizzare la proprietà StartScreen per calcolare la prima schermata visualizzata.
  • L'interruttore ritirato verrà disattivato per le app create prima di marzo 2021 in cui hai aggiunto Esplora a OnStart da marzo 2021 ad oggi. Quando modifichi tali app in Power Apps Studio, potresti visualizzare un errore. Attiva l'interruttore ritirato per cancellare questo errore.

Proprietà StartScreen

La proprietà StartScreen determina quale schermata verrà visualizzata per prima. Viene valutata una volta quando l'app viene caricata e restituisce l'oggetto schermo da visualizzare. Per impostazione predefinita, questa proprietà è vuota e la prima schermata nella visualizzazione ad albero di Studio viene mostrata per prima.

StartScreen è una proprietà del flusso di dati che non può contenere funzioni di comportamento. Sono disponibili tutte le funzioni del flusso di dati, in particolare utilizza queste funzioni e segnali per determinare quale schermata visualizzare per prima:

  • Funzione Param per leggere i parametri utilizzati per avviare l'app.
  • Funzione User per leggere le informazioni sull'utente corrente.
  • Funzione LookUp, Filtro, CountRows, Max e altre funzioni che leggono da un origine dati.
  • Qualsiasi chiamata API tramite un connettore, ma fai attenzione che venga restituita rapidamente.
  • Segnali come Connessione, Bussola, e App.

Nota

Variabili globali e raccolte, comprese quelle create in OnStart, non sono disponibili in StartScreen. Le formule con nome sono disponibili e spesso rappresentano un'alternativa migliore per il riutilizzo delle formule nell'app.

Se StartScreen restituisce un errore, la prima schermata nella visualizzazione ad albero di Studio verrà mostrata come se StartScreen non fosse stato impostato. Utilizza la funzione IfError per rilevare eventuali errori e reindirizzare a una schermata di errore appropriata.

Dopo aver modificato la proprietà StartScreen in Studio, testala passando il mouse sopra l'oggetto App nel riqudro Visualizzazione ad albero selezionando i puntini di sospensione (...), quindi selezionando Passa a StartScreen. Lo schermo cambierà come se l'app fosse stata caricata.

Passa a StartScreen

Esempi

Screen9

Indica che Screen9 deve essere mostrato per primo all'avvio dell'app.

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

Controlla se il parametro "admin-mode" è stato impostato dall'utente e lo usa per decidere se HomeScreen o AdminScreen deve essere visualizzata per prima.

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

Controlla se un partecipante a una conferenza è un membro del personale e lo indirizza alla schermata corretta all'avvio.

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

Indirizza l'app in base a una chiamata API a ForestScreen o OceanScreen. Se l'API non riesce per qualsiasi motivo, ErrorScreen viene utilizzato.

Proprietà StudioVersion

Usa la proprietà StudioVersion per visualizzare o registrare la versione Power Apps Studio utilizzata per pubblicare un'app. Ciò può essere utile durante il debug e per garantire che la tua app sia stata ripubblicata con una versione recente di Power Apps Studio.

StudioVersion viene restituito come testo. Il formato del testo può cambiare nel tempo e va trattato nel suo insieme; evita di estrarre singole porzioni.