21 febrero, 2024

CREAR UN PERFIL PARA USUARIOS DE POWER APPS

Hola a todos!,

En Power Apps realizar un perfilado para que los usuarios puedan ver o acceder a determinados datos se convierte en todo un arte debido a las distintas casuísticas que se pueden presentar: a veces es la estructura de los datos, otras es la cantidad de información y otras si estamos condicionados o no por las advertencias de delegación.

Por ejemplo, voy a usar la misma aplicación que usé para el último post: PASAR ELEMENTOS DE UNA LISTA DE SHAREPOINT A OTRA Y ELIMINAR ELEMENTOS CON POWER APPS

Donde lo que se pide es que el usuario que utiliza la aplicación pueda ver únicamente una serie de secciones de la base de datos, en concreto estos son los usuarios que he creado:

Quiero aclarar que no existe una fórmula única hacer un perfilado en Power Apps, como decía más arriba dependerá de varias circunstancias.

Para este caso, he decidido crear usuario por línea evitando así el tener que utilizar el operador In y usar LookUp para esquivar las advertencias de delegación.

En el equipo que esto usando mi usuario con la propiedad FullName es: Segundo Miguéns Romeu pero como además os quiero mostrar a otro usuario más con su perfilado, he ideado una ejemplo para hacerlo más visual.

Se trata introducir en un dropdown o lista desplegable tres elementos: [«» ; User().FullName ; «Francisco Pérez Pérez»] en la propiedad Items:

Como podéis observar no estoy he escrito mi nombre en la lista desplegable, sino que lo he invocado con la función User(). Esto es para que podáis comprobar como hacer que el propio usuario del equipo automáticamente perfile la galería que muestra a los empleados de los grandes almacenes.

Además es necesario utilizar la función LookUp con una variable (Perfil) para que sea capaz de relacionar el Usuario que estoy seleccionando en la lista desplegable con las secciones que le he asignado en la lista PERFILADO.

De esta forma si selecciono mi nombre en la lista desplegable solo podré ver ALIMENTACION, DEPORTES, TURISMO Y REGALOS en la galería.

Y hora queda configurar lo realmente importante, y es la función filtro de la galería:

//Muestrame los 200 primeros registros
FirstN(
    //Si la lista desplegable está vacía muéstrame todos los registros
    If(
        IsBlank(ddUsuarios.Selected.Value);
        PERSONAS;
        //Si la lista desplegable no está vacía filtrame por el usuario que está seleccionado y las secciones que puede ver
        Filter(
            PERSONAS;
            ddUsuarios.Selected.Value = Perfil.USUARIO And SECCION = Perfil.SECCION1 Or SECCION = Perfil.SECCION2 Or SECCION = Perfil.SECCION3
        )
    );
    200
)

En mi caso:

En el caso del otro usuario solo se verán los empleados cuya sección es BRICOLAJE:

Teniendo en cuenta todo lo visto hasta ahora, podríamos ya sabemos que podemos filtrar en función del usuario que tenemos en nuestro equipo, en este caso lo he realizado con la propiedad FullName pero lo habitual es usar Email.

Podríamos hacer lo mismo usando el operador In y de forma más sencilla, pero a no ser que trabajemos con Dataverse, mostrará advertencias de delegación.

Y esto todo, espero que os ayude.

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies