En esta ocasión os voy a mostrar un sencillo truco que utilizo para evitar que los usuarios de mis aplicaciones de Power Apps utilicen una versión diferente a la última publicada. Esta circunstancia ocurre en alunas ocasiones, sobre todo cuando se utiliza la app en un navegador web, ya que se queda en caché una versión anterior de la misma y hay que refrescar (varias veces) la página hasta que se muestra la última versión.

Para evitar este problema, lo que hago es preguntar al comienzo de la aplicación qué versión es la última publicada y validar cuál es la que está usando el usuario. A continuación os muestro cómo realizarlo.

NOTA: Para este post, he utilizado una aplicación de Microsoft Dataverse for Teams, aunque podréis usar cualquier otra.


Creación de una lista de SharePoint de parámetros

Lo primero es contar con un repositorio en donde almacenemos cuál es la última versión publicada que queremos que utilicen nuestros usuarios. Obviamente, ha de ser un lugar al que tengan acceso nuestros usuarios. En mi caso, utilizo una lista de SharePoint.
Dado que para este ejemplo estoy usando Dataverse for Teams, he creado la lista de SharePoint en el propio sitio de SharePoint del Equipo ya que así me aseguro que todos los usuarios tienen acceso a este contenido. Lo único que hay que tener en cuenta es modificar los permisos de la lista para evitar que los usuarios puedan modificar los valores y sólo tengan permisos de lectura. En mi caso, la lista «AppsParameters» quedaría de la siguiente forma:

Lista de Parámetros para las aplicaciones (AppsParameters)

Y con los siguientes permisos:

Permisos de la lista de parámetros


Adaptación de la Aplicación de Power Apps

Ahora vayamos a la aplicación de Power Apps para insertar la lógica necesaria.

Agregar el origen de datos

En primer lugar debemos establecer la conexión a nuestra lista de SharePoint. De forma que utilizaremos la opción de «Add data» y buscaremos nuestro sitio de SharePoint y la lista correspondiente (AppParameters).

Data Source

CREAR ETIQUETA CON LA VERSIÓN DE LA APP

En la ventana inicial de la aplicación incluiremos una Label que llamaremos LblVersionValue y en la que definamos cuál es la versión de la aplicación que estamos utilizando. Será un texto que compararemos con la que hay en nuestra lista de SharePoint. En mi caso, asignamos el valor «1.02» en la propiedad Text de la etiqueta.

LblVersionValue.Text

Configurar el OnStart

Como queremos que lo primero que haga nuestra aplicación es validar la versión de la app, insertaremos las siguientes fórmulas en la acción OnStart de la App

App.OnStart
  • Set(_varIsCurrentVersion,false);
    Será la variable global que nos indique si el usuario tiene la versión actual o no. Inicialmente indicamos que es false.
  • Set(_varCurrentVersion,LookUp(AppsParameters As A,A.Title = «TestApp» && A.Param=»Version»).Value);
    Es la variable global que almacena el valor de la versión que hay en la lista AppParameters.
  • If(_varCurrentVersion = LblVersionValue.Text,Set(_varIsCurrentVersion,true));
    Condición que establece si el usuario está en la versión correcta o no, comparando la versión de la lista con el texto de la etiqueta de la versión. En caso afirmativo establecerá la variable global _varCurrentVersion como true y, en caso contrario, permanecerá en false.

CREAR MENSAJE DE AVISO

Ahora insertaremos una nueva etiqueta que permita mostrar un mensaje de aviso al usuario cuando su versión de la aplicación no coincida con la que tenemos en nuestra lista de parámetros, por lo que ha de actualizar la aplicación. Por ejemplo, en la propiedad Text de esta etiqueta podríamos poner algo parecido a esto:

  • «Por favor, actualice la aplicación para utilizar la versión » & _varCurrentVersion
LblMsgAlert.Text

Además, estableceremos su propiedad Visible de tal forma que se oculte el mensaje si el usuario está en la versión correcta:

  • If(_varIsCurrentVersion,false,true)
LblMsgAlert.Visible

DESHABILITAR LOS BOTONES

Para evitar que los usuarios utilicen la aplicación si están en una versión incorrecta, deshabilitaremos los botones cuando ocurra esta circunstancia. Para ello, bastará incluir la siguiente fórmula en el DisplayMode de cada uno de ellos:

  • If(_varIsCurrentVersion,DisplayMode.Edit,DisplayMode.Disabled)
BtnScreen1.DisplayMode


Probar el Funcionamiento

Si ahora accedemos a nuestra aplicación en Teams con un usuario cuya versión no es la adecuada, podemos ver cómo recibe un mensaje de aviso y no puede interactuar con la aplicación al estar todos los botones deshabilitados.

Aplicación bloqueada

Y, cuando actualice a la versión correcta, la aplicación se mostrará así:

Aplicación con la versión correcta

Como veis, con esta sencilla funcionalidad podemos bloquear el acceso a nuestra app siempre que lo consideremos necesario. Por ejemplo, si estáis realizando alguna labor de configuración, o corrigiendo una incidencia grave y queréis que los usuarios dejen de entrar en la aplicación, podéis cambiar la versión en la lista de parámetros y ningún usuario podrá interactuar con la aplicación hasta que publiquéis la versión con la label correcta (o volváis a cambiar la versión en la lista).

Espero que os haya gustado y os pueda resultar útil en vuestras aplicaciones.

¡Muchas gracias por leerme!

Anuncio publicitario

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s