Objeto App en Power Apps
Se aplica a: Aplicaciones de lienzo Aplicaciones basadas en modelos
Proporciona información sobre la aplicación en ejecución y el control sobre el comportamiento de esta.
Descripción
Como un control, el objeto App proporciona propiedades que identifican qué pantalla se muestra y solicita al usuario que guarde los cambios para que no se pierdan. Cada aplicación tiene un objeto App.
Puede escribir fórmulas para algunas propiedades del objeto App. En la parte superior del panel Vista de árbol, seleccione el objeto App como lo haría con cualquier otro control o pantalla. Vea y edite una de las propiedades del objeto seleccionándola en la lista desplegable a la izquierda de la barra de fórmulas.
Propiedad ActiveScreen
La propiedad ActiveScreen identifica la pantalla que se está mostrando.
Esta propiedad devuelve un objeto de pantalla. Úselo para hacer referencia a las propiedades de la pantalla que se muestra actualmente, como el nombre con la fórmula App.ActiveScreen.Name. También puede comparar esta propiedad con otro objeto de pantalla, como por ejemplo con la fórmula de comparación App.ActiveScreen = Screen2 para probar si Screen2 es la pantalla que se muestra actualmente.
Use la función Back o Navigate para cambiar la pantalla que se muestra.
Propiedad BackEnabled
La propiedad BackEnabled cambia la forma en que la aplicación responde al gesto de retroceso del dispositivo (deslice o use el botón de retroceso del hardware en dispositivos Android, deslice de izquierda a derecha en dispositivos iOS) cuando se ejecuta en Power Apps para dispositivos móviles. Cuando está habilitado, el gesto de retroceso del dispositivo regresa a la pantalla que se mostró más recientemente, que es similar a la fórmula Atrás. Cuando está deshabilitado, el gesto de retroceso del dispositivo devuelve al usuario a la lista de aplicaciones.
Propiedades ConfirmExit
Nadie quiere perder los cambios no guardados. Utilice las propiedades ConfirmExit y ConfirmExitMessage para advertir al usuario antes de que cierre su aplicación.
Nota
- ConfirmExit no funciona en aplicaciones integradas, por ejemplo, Power BI y SharePoint.
- En la actualidad, estas propiedades pueden hacer referencia a controles solo en la primera pantalla si la función de vista previa Delayed load está habilitada (que es la opción predeterminada para las nuevas aplicaciones). Si se hacen referencias, Power Apps Studio no muestra un error, pero la aplicación publicada resultante no se abre en Power Apps Mobile o un navegador. Estamos trabajando activamente para eliminar esta limitación. Mientras tanto, puede desactivar Carga retrasada en Configuración>Próximas funciones (bajo Versión preliminar).
ConfirmExit
ConfirmExit es una propiedad booleana que, cuando es true, abre un cuadro de diálogo de confirmación antes de cerrar la aplicación. De forma predeterminada, esta propiedad es false, y no aparece ningún cuadro de diálogo.
En situaciones en las que el usuario pueda tener cambios no guardados en la aplicación, use esta propiedad para mostrar un cuadro de diálogo de confirmación antes de salir de la aplicación. Use una fórmula que pueda verificar variables y controlar propiedades (por ejemplo, la propiedad Unsaved del control Edit form).
El cuadro de diálogo de confirmación aparece en cualquier situación en la que se puedan perder datos, como en estos ejemplos:
- Ejecutando la función Exit.
- Si la aplicación se ejecuta en un navegador:
- Cerrando el explorador o la pestaña del explorador en la que se ejecuta la aplicación.
- Seleccionando el botón de retroceso del explorador.
- Ejecutando la función Launch con LaunchTarget de Self.
- Si la aplicación se está ejecutando en Power Apps Mobile (iOS o Android):
- Deslizando para cambiar a una aplicación diferente en Power Apps Mobile.
- Seleccionando el botón de retroceso en un dispositivo Android.
- Ejecutando la función Launch para lanzar otra aplicación de lienzo.
El aspecto exacto del cuadro de diálogo de confirmación puede variar entre dispositivos y versiones de Power Apps.
El cuadro de diálogo de confirmación no aparece en Power Apps Studio.
ConfirmExitMessage
De manera predeterminada, el cuadro de diálogo de confirmación muestra un mensaje genérico, como "Es posible que tenga cambios no guardados" en el idioma del usuario.
Use ConfirmExitMessage para proporcionar un mensaje personalizado en el cuadro de diálogo de confirmación. Si esta propiedad es blank, se usa el valor predeterminado. Los mensajes personalizados se truncan según sea necesario para que quepan en el cuadro de diálogo de confirmación, por lo tanto, mantenga el mensaje en algunas líneas como máximo.
En un explorador, el cuadro de diálogo de confirmación puede aparecer con un mensaje genérico del explorador.
Nota
El objeto de la aplicación tiene dos propiedades más OnMessage
y BackEnabled
que son experimentales. Estas propiedades se eliminarán eventualmente del objeto de la aplicación. Se recomienda no usar estas propiedades en el entorno de producción.
Ejemplo
Cree una aplicación que contenga dos controles Form, AccountForm y ContactForm.
Establezca la propiedad ConfirmExit del objeto App según esta expresión:
AccountForm.Unsaved Or ContactForm.Unsaved
Este cuadro de diálogo aparece si el usuario cambia los datos en cualquiera de los formularios y luego intenta cerrar la aplicación sin guardar esos cambios.
Establezca la propiedad ConfirmExitMessage del objeto App según esta fórmula:
If( AccountsForm.Unsaved, "Accounts form has unsaved changes.", "Contacts form has unsaved changes." )
Este cuadro de diálogo aparece si el usuario cambia los datos en el formulario Cuenta y luego intenta cerrar la aplicación sin guardar esos cambios.
Configurar clave de instrumentación para Application Insights
Para exportar registros de aplicaciones generados por el sistema a Application Insights, debe configurar la Clave de instrumentación para su aplicación de lienzo.
- Abra su aplicación para editarla en Power Apps Studio.
- Seleccione el objeto Aplicación en la vista de árbol de navegación izquierda.
- Ingrese la Clave de instrumentación en el panel de propiedades.
Si los datos no se envían a App Insights, comuníquese con su administrador de Power Platform y verifique si App Insights está deshabilitado en el nivel de inquilino.
Propiedad de fórmulas
Use fórmulas con nombre, en la propiedad Fórmulas, para definir una fórmula que se puede reutilizar en toda su aplicación.
En Power Apps, las fórmulas determinan el valor de las propiedades de control. Por ejemplo, para establecer el color de fondo de forma uniforme en una aplicación, puede establecer la propiedad Llenar para cada uno a una fórmula común:
Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )
Con tantos lugares donde puede aparecer esta fórmula, se vuelve tedioso y propenso a errores actualizarlos todos si se necesita un cambio. En su lugar, puede crear una variable global en OnStart para configurar el color una vez y luego reutilizar el valor en toda la aplicación:
App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Si bien este método es mejor, también depende de OnStart corriendo antes del valor para BGColor está establecido. BGColor también puede ser manipulado en algún rincón de la aplicación que el creador desconoce, un cambio realizado por otra persona, y que puede ser difícil de rastrear.
Las fórmulas con nombre proporcionan una alternativa. Tal como solemos escribir control-propiedad = expresión, en su lugar podemos escribir nombre = expresión y luego reutilizar nombre a lo largo de nuestra aplicación para reemplazar expresión. Las definiciones de estas fórmulas se realizan en la propiedad Fórmulas:
App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Las ventajas de usar fórmulas con nombre incluyen:
- El valor de la fórmula siempre está disponible. No hay dependencia de tiempo, no OnStart que debe ejecutarse primero antes de que se establezca el valor, ningún momento en el que el valor de la fórmula sea incorrecto. Las fórmulas con nombre pueden hacer referencia entre sí en cualquier orden, siempre que no creen una referencia circular. Se pueden calcular en paralelo.
- El valor de la fórmula siempre está actualizado. La fórmula puede realizar un cálculo que depende de las propiedades del control o de los registros de la base de datos y, a medida que cambian, el valor de la fórmula se actualiza automáticamente. No necesita actualizar manualmente el valor como lo hace con una variable. Y las fórmulas solo se vuelven a calcular cuando es necesario.
- La definición de la fórmula es inmutable. La definición de Fórmulas es la única fuente de verdad y el valor no se puede cambiar en ningún otro lugar de la aplicación. Con las variables, es posible que algún código cambie inesperadamente un valor, pero esta situación difícil de solucionar no es posible con las fórmulas con nombre.
- El cálculo de la fórmula se puede diferir. Debido a que su valor es inmutable, siempre se puede calcular cuando sea necesario, lo que significa que no es necesario calcularlo hasta que sea necesario. Valores de fórmula que no se utilizan hasta screen2 de una aplicación que se muestra no es necesario calcular hasta que screen2 esté visible. Aplazar este trabajo puede mejorar el tiempo de carga de la aplicación. Las fórmulas con nombre son declarativas y brindan oportunidades para que el sistema optimice cómo y cuándo se calculan.
- Las fórmulas con nombre son un concepto de Excel. Power Fx utiliza conceptos de Excel siempre que sea posible, ya que muchas personas conocen bien Excel. Las fórmulas con nombre son el equivalente de las celdas con nombre y las fórmulas con nombre en Excel, administradas con el Administrador de nombres. Se vuelven a calcular automáticamente como celdas de una hoja de cálculo, al igual que lo hacen las propiedades de control.
Las fórmulas nombradas se definen, una tras otra en la propiedad Fórmulas, cada uno terminando con un punto y coma. El tipo de la fórmula se deduce de los tipos de los elementos dentro de la fórmula y cómo se usan juntos. Por ejemplo, estas fórmulas con nombre recuperan información útil sobre el usuario actual de 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' );
Si la fórmula de UserTitle necesita actualizarse, se puede hacer fácilmente en esta ubicación. Si UserPhone no es necesario en la aplicación, entonces no se realizan estas llamadas a la tabla Users de Dataverse. No hay penalización por incluir una definición de fórmula que no se usa.
Algunas limitaciones de las fórmulas con nombre:
- No pueden usar funciones de comportamiento ni causar efectos secundarios dentro de la aplicación.
- No pueden crear una referencia circular. Tener a = b; y b = a; en la misma aplicación no está permitido.
Funciones definidas por el usuario
Importante
- Las funciones definidas por el usuario son experimentales.
- Las características experimentales no se han diseñado para un uso de producción y pueden no estar completas. Estas características están disponibles antes del lanzamiento oficial para que pueda tener acceso anticipado y proporcionar comentarios. Más información: Comprender las funciones experimentales, de vista previa y retiradas en aplicaciones de lienzo
- El comportamiento que se describe en este artículo solo está disponible cuando la característica experimental Funciones definidas por el usuario en Configuración > Próximas características > Experimental está activada está activada (desactivada de forma predeterminada).
- Sus comentarios son muy valiosos para nosotros. Nos gustaría conocer su opinión en los foros de la comunidad de características experimentales de Power Apps.
Power Fx incluye una larga lista de funciones integradas, como If, Text, y Set. Las funciones definidas por el usuario le permiten escribir sus propias funciones que toman parámetros y devuelven un valor, tal como lo hacen las funciones integradas. Puede pensar en las funciones definidas por el usuario como una extensión de las fórmulas con nombre que agrega parámetros y admite fórmulas de comportamiento.
Por ejemplo, puede definir una fórmula con nombre que devuelva libros de ficción de una biblioteca:
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" );
Sin parámetros, tendríamos que definir fórmulas con nombre separadas para cada género. Pero en su lugar, vamos a parametrizar nuestra fórmula nombrada:
LibraryType := Type( [ { Title: Text, Author: Text, Genre: Text } ] );
LibraryGenre( SelectedGenre: Text ): LibraryType = Filter( Library, Genre = SelectedGenre );
Ahora podemos llamar LibraryGenre( "Fiction" )
, LibraryGenre( "Reference" )
o filtrar por otros géneros con una sola función definida por el usuario.
La sintaxis es:
FunctionName( [ ParameterName1: ParameterType1 [ , ParameterName2: ParameterType2 ... ] ] ) : ReturnType = Formula;
- FunctionName – Obligatorio. Nombre de la función definida por el usuario.
- ParameterName(s): opcional. Nombre de un parámetro de función.
- ParameterType(s) – Opcional. El nombre de un tipo, ya sea un nombre de tipo de datos integrado, un nombre de origen de datos o un tipo definido con la función Type.
- ReturnType: obligatorio. Tipo del valor devuelto por la función.
- Formula (obligatorio). La fórmula que calcula el valor de la función en función de los parámetros.
Se debe escribir cada parámetro y la salida de la función definida por el usuario. En este ejemplo, SelectedGenre: Text
define que el primer parámetro de nuestra función es de tipo Text y SelectedGenre
es el nombre del parámetro que se utiliza en el cuerpo para la operación de filtro. Consulte Tipos de datos para los nombre de tipo admitidos. La función Type se usa para crear un tipo agregado para nuestra biblioteca, de modo que podamos devolver una tabla de libros desde nuestra función.
Definimos LibraryType
como una tabla de registros de tipo plural. Si queremos pasar un solo libro a una función, podemos extraer el tipo de registro de esta tabla con la función RecordOf:
BookType := Type( RecordOf( LibraryType ) );
IsGenre( Book: BookType, SelectedGenre: Text ): Boolean = (Book.Genre = SelectedGenre);
La coincidencia de registros para los parámetros de función es más estricta que en otras partes de Power Fx. Los campos de un valor de registro deben ser un subconjunto adecuado de la definición de tipo y no pueden incluir campos adicionales. Por ejemplo, IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" )
dará como resultado un error.
Tenga en cuenta que las funciones definidas por el usuario aún no admiten la recursividad.
Comportamiento de las funciones definidas por el usuario
Las fórmulas con nombre y la mayoría de las funciones definidas por el usuario no admiten funciones de comportamiento con efectos secundarios, como Set o Notify. En general, es mejor evitar actualizar el estado si puede, y en su lugar confiar en patrones de programación funcionales y permitir a Power Fx recalcular las fórmulas según sea necesario de forma automática. Pero hay casos en los que es inevitable. Para incluir lógica de comportamiento en una función definida por el usuario, envuelva el cuerpo entre llaves:
Spend( Amount: Number ) : Void = {
If( Amount > Savings,
Error( $"{Amount} is more than available savings" ),
Set( Savings, Savings - Amount );
Set( Spent, Spent + Amount)
);
}
Ahora podemos llamar a Spend( 12 )
para comprobar si tenemos 12 en nuestro Ahorro, y si es así, debitarlo por 12 y sumar 12 a la variable Gastado. El tipo de retorno de esta función es Void, ya que no devuelve ningún valor.
La sintaxis de una función de comportamiento definida por el usuario es:
FunctionName( [ ParameterName1: ParameterType1 [ , ParameterName2: ParameterType2 ... ] ] ) : ReturnType = { Formula1 [ ; Formula2 ... ] };
- FunctionName – Obligatorio. Nombre de la función definida por el usuario.
- ParameterName(s): opcional. Nombre de un parámetro de función.
- ParameterType(s) – Opcional. El nombre de un tipo, ya sea un nombre de tipo de datos integrado, un nombre de origen de datos o un tipo definido con la función Type.
- ReturnType: obligatorio. Tipo del valor devuelto por la función. Utilice Void si la función no devuelve un valor.
- Formula(s): requerido. La fórmula que calcula el valor de la función en función de los parámetros.
Como ocurre con todas las fórmulas de Power Fx, la ejecución no finaliza cuando se encuentra un error. Una vez que se ha llamado a la función Error, la función If impide que se produzcan los cambios en Ahorros y Gastos. La función IfError también se puede utilizar para evitar una ejecución posterior después de un error. Aunque devuelve Void, la fórmula puede devolver un error si hay algún problema.
Tipos definidos por el usuario
Importante
- Los tipos definidos por el usuario es una función experimental.
- Las características experimentales no se han diseñado para un uso de producción y pueden no estar completas. Estas características están disponibles antes del lanzamiento oficial para que pueda tener acceso anticipado y proporcionar comentarios. Más información: Comprender las funciones experimentales, de vista previa y retiradas en aplicaciones de lienzo
- El comportamiento que se describe en este artículo solo está disponible cuando la característica experimental Tipos definidos por el usuario en Configuración > Próximas características > Experimental está activada está activada (desactivada de forma predeterminada).
- Sus comentarios son muy valiosos para nosotros. Nos gustaría conocer su opinión en los foros de la comunidad de características experimentales de Power Apps.
Las fórmulas con nombre se pueden usar con la función Type para crear tipos definidos por el usuario. Use :=
en lugar de =
para definir un tipo definido por el usuario, por ejemplo Book := Type( { Title: Text, Author: Text } )
. Consulte la función Type para más información y ejemplos.
Propiedad OnError
Use OnError para tomar medidas cuando ocurra un error en cualquier parte de la aplicación. Brinda una oportunidad global para interceptar un mensaje de error antes de que se muestre al usuario final. También se puede utilizar para registrar un error con la función Trace o escribir en una base de datos o servicio web.
En las aplicaciones de lienzo, el resultado de cada evaluación de fórmula se comprueba en busca de un error. Si se encuentra un error, OnError será evaluado con las mismas variables de ámbito FirstError y AllErrors que habrían estado presentes si toda la fórmula estuviera envuelta en una función IfError.
Si OnError está vacía, se muestra un banner de error predeterminado con el FirstError.Message del error Definir una fórmula OnError anula este comportamiento, lo que permite al creador manejar el informe de errores como mejor le parezca. El comportamiento por defecto se puede solicitar en OnError volviendo a lanzar el error con la función Error. Use el enfoque de relanzamiento si algunos errores deben filtrarse o manejarse de una manera diferente, mientras que otros deben pasarse.
OnError no puede reemplazar un error en los cálculos de la manera que IfError puede. Si se invoca OnError se invoca, el error ya ocurrió y ya se procesó a través de cálculos de fórmula, con controles IfError; OnError solo informando.
OnError las fórmulas se evalúan simultáneamente y es posible que su evaluación se superponga con el procesamiento de otros errores. Por ejemplo, si establece una variable global en la parte superior de un OnError y lo lee más tarde en la misma fórmula, el valor puede haber cambiado. Use la función With para crear un valor con nombre que sea local a la fórmula.
Aunque cada error es procesado individualmente por OnError, es posible que el banner de error predeterminado no aparezca para cada error individualmente. Para evitar que se muestren demasiados mensajes de error al mismo tiempo, el mismo banner de error no se mostrará de nuevo si se ha mostrado recientemente.
Ejemplo
Considere un control Label y Slider que estén unidos a través de la fórmula:
Label1.Text = 1/Slider1.Value
El valor predeterminado del control deslizante es 50. Si el control deslizante se mueve a 0, Label1 no mostrará ningún valor y se mostrará un mensaje de error:
Veamos lo que sucedió en detalle:
- El usuario movió la diapositiva a la izquierda y la propiedad Slide1.Value cambió a 0.
- Label1.Text fue reevaluado automáticamente. Ocurrió una división por cero, generando un error.
- No hay IfError en esta fórmula. La evaluación de la fórmula devuelve el error de división por cero.
- Label1.Texto no puede mostrar nada para este error, por lo que muestra un estado en blanco.
- OnError es invocado. Dado que no hay un controlador, el banner de error estándar se muestra con información de error.
Si es necesario, también podríamos modificar la fórmula para Label1.Text = IfError( 1/Slider1.Value, 0 )
. Usar IfError dará como resultado un error o un banner de error. No podemos cambiar el valor de un error de OnError como en ese punto el error ya ha ocurrido, solo es cuestión de cómo se informará.
Si añadimos un controlador OnError, no tendrá impacto antes del paso 5, pero puede afectar la forma en que se informa el error:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" )
Con el controlador OnError colocado, desde la perspectiva del usuario de la aplicación, no habrá ningún error. Pero el error se agregará al seguimiento del supervisor, completo con la fuente de la información del error de FirstError:
Si también quisiéramos que se mostrara el mismo mensaje de error predeterminado además del seguimiento, podemos volver a generar el error con la función Error después de la llamada a Trace tal como lo hizo si Trace no estaba ahí:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )
Propiedad OnStart
Nota
El uso de la propiedad OnStart puede causar problemas de rendimiento al cargar una aplicación. Estamos en el proceso de crear alternativas por las dos razones principales para usar la propiedad (almacenamiento en caché de datos y configuración de variables globales). Ya hemos creado una alternativa para definir la primera pantalla que se mostrará con Navigate. Dependiendo de su contexto, esta propiedad puede estar deshabilitada de forma predeterminada. Si no lo ve y necesita usarlo, verifique la configuración avanzada de la aplicación para ver si hay un interruptor que lo habilite. La propiedad OnVisible de una pantalla también se puede utilizar. De forma predeterminada, cuando la regla OnStart sin bloqueo está habilitada, permite que la función OnStart se ejecute simultáneamente con otras reglas de la aplicación. Por lo tanto, si las variables a las que se hace referencia en otras reglas de la aplicación se inicializan dentro de la función OnStart, es posible que aún no se inicialicen por completo. Además, existe la posibilidad de que una pantalla se represente y se vuelva interactiva antes de que las funciones Screen.OnVisible o App.OnStart terminen de ejecutarse, especialmente si tardan mucho tiempo en completarse.
La propiedad OnStart se ejecuta cuando el usuario inicia la aplicación. Esta propiedad se usa a menudo para realizar las siguientes tareas:
- Recupere y almacene datos en colecciones mediante el uso de la función Collect.
- Establezca variables globales mediante la función Set.
Esta fórmula se evalúa antes de que aparezca la primera pantalla. No se carga ninguna pantalla, por lo que no puede establecer variables de contexto con la función UpdateContext. Sin embargo, puede pasar variables de contexto con la función Navigate.
Después de cambiar la propiedad OnStart, pruébela colocando el cursor sobre el objeto Aplicación en el panel Vista de árbol, seleccionando puntos suspensivos (...), y luego seleccionando Ejecutar OnStart. A diferencia de cuando la aplicación se carga por primera vez, las colecciones existentes y las variables existentes ya estarán configuradas. Para comenzar con colecciones vacías, use la función ClearCollect en lugar de la función Collect.
Nota
- Usar la función Navigate en la propiedad OnStart ha sido retirada. Las aplicaciones existentes seguirán funcionando. Por tiempo limitado, aún puede habilitarlo en la configuración de la aplicación (disponible en Retirado). Sin embargo, usar Navegar de esta manera puede provocar retrasos en la carga de la aplicación, ya que obliga al sistema a completar la evaluación de OnStart antes de mostrar la primera pantalla. Use la propiedad StartScreen en su lugar para calcular la primera pantalla mostrada.
- El interruptor retirado se desactivará para las aplicaciones creadas antes de marzo de 2021 donde agregó Navegar a OnStart entre marzo de 2021 y ahora. Cuando edita dichas aplicaciones en Power Apps Studio, es posible que vea un error. Active el interruptor retirado para borrar este error.
Propiedad StartScreen
La propiedad StartScreen determina qué pantalla se mostrará primero. Se evalúa una vez cuando se carga la aplicación y devuelve el objeto de pantalla que se mostrará. De forma predeterminada, esta propiedad estará vacía y la primera pantalla en la vista de árbol de Studio se mostrará primero.
StartScreen es una propiedad de flujo de datos que no puede contener funciones de comportamiento. Todas las funciones de flujo de datos están disponibles, en particular utilice estas funciones y señales para determinar qué pantalla mostrar primero:
- Param función para leer los parámetros utilizados para iniciar la aplicación.
- User función para leer información sobre el usuario actual.
- LookUp, Filter, CountRows, Max y otras funciones que leen desde un origen de datos.
- Cualquier API llama a través de un conector, pero tenga cuidado de que regrese rápidamente.
- Señales como Conexión, Brújula, y Aplicación.
Nota
Colecciones y variables globales, incluidas las creadas en OnStart, no están disponibles en StartScreen. Las fórmulas con nombre están disponibles y, a menudo, son una mejor alternativa para la reutilización de fórmulas en toda la aplicación.
Si StartScreen devuelve un error, la primera pantalla en la vista de estructura de Studio se mostrará como si StartScreen no se había configurado. Use la función IfError para detectar cualquier error y redirigir a una pantalla de error adecuada.
Después de cambiar StartScreen en Studio, pruébela colocando el cursor sobre el objeto Aplicación en el panel Vista de árbol, seleccionando puntos suspensivos (...), y luego seleccionando Navegar a StartScreen. La pantalla cambiará como si se hubiera cargado la aplicación.
Ejemplos
Screen9
Indica que Screen9
debe mostrarse primero cada vez que se inicia la aplicación.
If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )
Comprueba si el usuario ha configurado el parámetro "modo de administración" y lo utiliza para decidir si la HomeScreen o la AdminScreen deben mostrarse primero.
If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )
Comprueba si un asistente a una conferencia es un miembro del personal y lo dirige a la pantalla adecuada al inicio.
IfError( If( CustomConnector.APICall() = "Forest",
ForestScreen,
OceanScreen
),
ErrorScreen
)
Dirige la aplicación en función de una llamada a la API a ForestScreen
o OceanScreen
. Si la API falla por cualquier motivo, ErrorScreen
se utiliza en su lugar.
Propiedad StudioVersion
Utilice la propiedad StudioVersion para mostrar o registrar la versión de Power Apps Studio que se utilizó para publicar una aplicación. Esto puede ser útil al depurar y para garantizar que su aplicación se haya vuelto a publicar con una versión reciente de Power Apps Studio.
StudioVersion se devuelve como texto. El formato del texto puede cambiar con el tiempo y debe tratarse como un todo; Evite extraer porciones individuales.