miércoles, 31 de julio de 2024

Importancia de Definir Nombres de Variables de entorno en Power Apps

Cuando trabajamos con Power Apps, es crucial mantener un buen manejo de las variables de entorno. Esto es especialmente importante cuando estamos desarrollando soluciones que serán importadas a otros entornos. Aquí te explico por qué es vital definir cuidadosamente los nombres de las variables de entorno y por qué deberías deshabilitar la opción de generación automática de variables de entorno en Power Apps.


Definición Clara de Nombres de Variables

Al definir los nombres de las variables de entorno, debemos considerar lo siguiente:

  1. Nombres Descriptivos y Humanos: Es esencial usar nombres que sean fáciles de entender y que describan claramente su propósito. Evita nombres genéricos o abreviaciones crípticas.
  2. Consistencia: Mantén un esquema de nombres consistente a lo largo de tu aplicación. Esto facilita la comprensión y el mantenimiento del código, no solo para ti, sino también para otros desarrolladores que puedan trabajar en el proyecto.
  3. Contexto: Asegúrate de que los nombres de las variables proporcionen suficiente contexto sobre su uso y origen. Por ejemplo, en lugar de simplemente Var1, podrías usar SharePointListURL si esa variable almacena la URL de una lista de SharePoint.

Problemas con la Generación Automática de Variables de Entorno

Power Apps ofrece una opción para generar automáticamente nombres de variables de entorno. Aunque esto puede parecer conveniente, trae consigo varios problemas:

  1. Nombres No Identificables: La generación automática crea nombres que no son identificables por humanos, típicamente usando IDs. Esto complica la tarea de mapear estas variables a las fuentes de datos correctas al importar la solución a otro entorno.
  2. Confusión en la Importación: Al importar una solución no administrada a otro entorno, los nombres generados automáticamente pueden llevar a confusión. Los IDs generados no proporcionan contexto, lo que dificulta saber qué variable corresponde a qué fuente de datos.

Deshabilitar la Generación Automática de Variables

Para evitar los problemas mencionados, es recomendable deshabilitar la opción de generación automática de variables de entorno en Power Apps. Aquí te dejo algunos pasos para lograrlo:

  1. Configuración Manual: Siempre configura manualmente las variables de entorno al crear tus aplicaciones. Dedica tiempo a nombrarlas adecuadamente desde el principio.
  2. Documentación: Mantén una buena documentación de todas las variables de entorno que uses. Esto incluye una descripción clara de su propósito y cómo deben ser mapeadas en diferentes entornos.
  3. Revisión: Antes de exportar tu solución, revisa todas las variables de entorno para asegurarte de que están correctamente definidas y documentadas.

Ejemplo Práctico

Supongamos que tienes una aplicación en Power Apps que interactúa con una lista de SharePoint. En lugar de permitir que Power Apps genere automáticamente una variable de entorno con un nombre como sb_shaed_sharepointonline.e95c71bcds...

Imagen  de arriba que muestra los nombres ilegibles de las variables que se crean de forma automática, sino creamos las variables primero en la solución y luego las asociamos en Power Apps, en vez de seleccionar la lista y que Power  Apps asigne un valor ilegible de la variable.

Define manualmente una variable llamada Permisos. Esto hace que al importar tu solución a otro ambiente, sea claro que Permisos debe ser mapeada a la URL de la lista de permisos en SharePoint.



Conclusión

El cuidado en la definición de los nombres de las variables de entorno en Power Apps es esencial para el éxito de la importación y mantenimiento de soluciones. Deshabilitar la generación automática de variables y adoptar buenas prácticas de nombrado y documentación te ahorrará tiempo y evitará confusiones en el futuro. Al seguir estos consejos, podrás asegurar una transición suave y sin problemas entre diferentes entornos de desarrollo y producción.

Facilitando la Asignación de Roles en Power Apps a través de Equipos y Grupos de Seguridad de EntraID

Asignar roles en un entorno de pruebas y productivo en Power Apps puede ser una tarea compleja, especialmente cuando se manejan numerosos usuarios y roles de seguridad. Afortunadamente, utilizando equipos en Power Apps mapeados a grupos de seguridad de EntraID, podemos simplificar este proceso significativamente. Aquí te explicamos cómo hacerlo:



 Paso 1: Creación de Equipos en Power Apps

Primero, crea los equipos necesarios dentro de Power Apps para tu entorno de pruebas y productivo. Estos equipos permitirán asignar roles de seguridad de manera centralizada. Asegúrate de definir claramente los equipos para cada entorno y su propósito específico.



 Paso 2: Mapeo de Equipos a Grupos de Seguridad de EntraID

 Asocia cada equipo de Power Apps con un grupo de seguridad de EntraID. Este mapeo es crucial porque permitirá que cualquier cambio en el grupo de seguridad se refleje automáticamente en los roles asignados en Power Apps.

 - Ejemplo: Si tienes un equipo llamado "Desarrollo" en Power Apps, este se mapeará a un grupo de seguridad de EntraID denominado "PowerApps_Desarrollo".

 

 Paso 3: Asignación de Roles de Seguridad al Equipo

 Dentro de Power Apps, asigna los roles de seguridad necesarios al equipo mapeado. Asegúrate de que estos roles estén alineados con las responsabilidades y permisos que los usuarios necesitan en el entorno.

 

- Nota Importante: La asociación debe especificar que los usuarios son "miembros" del equipo y no "visitantes" o "propietarios". Esto garantiza que los usuarios tengan los permisos adecuados sin la capacidad de modificar la configuración del equipo.

 

Paso 4: Gestión de Usuarios a través de EntraID

 La gestión de usuarios se simplifica al centralizarla en EntraID. El administrador solo necesita agregar o remover usuarios del grupo de seguridad de EntraID correspondiente.

 - Ventaja: Cualquier usuario añadido al grupo de seguridad de EntraID automáticamente heredará los roles de seguridad asignados al equipo en Power Apps, sin necesidad de realizar configuraciones adicionales en Power Apps.

 

 Beneficios de Esta Metodología

1. Centralización: La administración de usuarios y roles se gestiona en un solo lugar (EntraID), simplificando la gestión.

2. Eficiencia: Reduces el tiempo y esfuerzo necesarios para asignar roles individualmente en Power Apps.

3. Consistencia: Aseguras que los roles y permisos sean consistentes en ambos entornos, de pruebas y productivo.

4. Escalabilidad: Facilitas la escalabilidad al permitir una gestión eficiente de usuarios a medida que crece la organización.

 

 Ejemplo Práctico

Imagina que necesitas agregar a cinco nuevos desarrolladores al entorno de pruebas. Solo tienes que añadir estos usuarios al grupo de seguridad de EntraID "PowerApps_Desarrollo_Pruebas". Automáticamente, estos usuarios recibirán los roles de seguridad asignados al equipo "Desarrollo_Pruebas" en Power Apps.

 

 Conclusión

Facilitar la asignación de roles en Power Apps utilizando equipos mapeados a grupos de seguridad de EntraID es una práctica efectiva para gestionar permisos de manera eficiente y segura. Esta metodología no solo simplifica la administración, sino que también asegura una gestión coherente y escalable de los roles y usuarios en tus entornos de pruebas y productivo.

Permiso Escondido en Power Apps: Habilitando la Ejecución de Flujos en un Ambiente Productivo

En un ambiente productivo de Power Apps, es esencial asegurar que los usuarios tengan los permisos adecuados para ejecutar flujos dentro de sus aplicaciones. Sin embargo, existe un permiso específico y a menudo pasado por alto, que puede ser la clave para habilitar esta funcionalidad.

 

El Rol Básico y el Permiso Escondido

Cuando se trabaja con roles de seguridad en Power Apps, es común basarse en roles básicos y personalizarlos según las necesidades específicas de la organización. Uno de los permisos críticos, que debe ajustarse para permitir la ejecución de flujos, se encuentra dentro de la configuración de tablas, personalización y procesos.


Por defecto, estos permisos están configurados a nivel de "usuario", lo que significa que los usuarios solo pueden ejecutar y acceder a flujos creados por ellos mismos. Para un entorno productivo, donde los flujos pueden ser parte integral de los procesos empresariales y pueden necesitar ser ejecutados por múltiples usuarios, es necesario cambiar este permiso para que se aplique a nivel de "organización".

 

Pasos para Configurar el Permiso

1. Crear una Copia del Rol Básico:

   - Inicie sesión en el centro de administración de Power Apps.

   - Navegue hasta la sección de "Roles de seguridad" y seleccione el rol básico que desee personalizar.

   - Haga una copia de este rol para no alterar la configuración predeterminada.

2. Modificar los Permisos en la Copia del Rol:

   - Seleccione la copia del rol que ha creado.

   - Navegue hasta la sección de Tablas, Personalización y Procesos.

   - Busque el permiso relacionado con la ejecución de flujos. Esto puede estar etiquetado como "Procesos" o similar.

3. Ajustar el Nivel de Permiso:

   - Cambie el nivel de acceso de "Usuario" a "Organización". Esto asegura que cualquier flujo necesario puede ser ejecutado por todos los usuarios dentro de la organización, no solo por el creador del flujo.

4. Asignar el Rol a los Usuarios:

   - Una vez ajustado el permiso, asigne este nuevo rol personalizado a los usuarios que necesitan ejecutar los flujos.

 

Beneficios de Ajustar este Permiso

- Consistencia en los Procesos: Permite que los flujos críticos estén disponibles para cualquier usuario autorizado, asegurando que los procesos empresariales se ejecuten sin interrupciones.

- Facilidad de Gestión: Reduciendo la necesidad de gestionar permisos individuales para cada flujo y usuario.

- Seguridad Controlada: Mantiene un nivel de control centralizado sobre quién puede ejecutar qué, a nivel organizacional.

 

Consideraciones Finales

Es crucial probar estos cambios en un entorno de desarrollo antes de implementarlos en producción para asegurarse de que no haya impactos negativos en los flujos existentes. Además, documentar estos cambios y comunicarlos a los usuarios finales es fundamental para una transición suave y eficiente.

Ajustar este permiso puede parecer un detalle menor, pero tiene un impacto significativo en la capacidad de su organización para aprovechar al máximo Power Apps y Power Automate.

martes, 11 de junio de 2024

Beneficios de Crear Entornos de Desarrollo y Producción en Power Apps

En el mundo del desarrollo de aplicaciones empresariales, la flexibilidad y la eficiencia son clave para el éxito. Microsoft Power Apps, parte de la suite de Power Platform, ofrece una solución robusta para crear aplicaciones personalizadas que mejoran los procesos empresariales y aumentan la productividad. Una de las mejores prácticas en el desarrollo con Power Apps es la creación de entornos de desarrollo y producción separados. A continuación, exploraremos los beneficios de esta estrategia y cómo los planes empresariales de Office 365 cubren estos entornos, siempre que no se utilicen conectores premium.





Beneficios de Crear Entornos de Desarrollo y Producción

  1. Separación de Desarrollo y Producción:

    • La separación de entornos permite a los desarrolladores trabajar en nuevas características y realizar pruebas sin afectar la versión en producción. Esto garantiza que los usuarios finales no experimenten interrupciones ni errores mientras se realizan mejoras o ajustes en la aplicación.
  2. Mejora en la Calidad del Código:

    • Los entornos de desarrollo proporcionan un espacio seguro para probar nuevas funcionalidades, identificar y corregir errores antes de implementar cambios en el entorno de producción. Esto resulta en una aplicación más estable y confiable para los usuarios finales.
  3. Facilita la Colaboración:

    • Tener entornos separados permite que diferentes equipos trabajen en paralelo. Los desarrolladores pueden trabajar en nuevas funcionalidades mientras los equipos de calidad y pruebas se enfocan en la validación y pruebas de regresión, mejorando así la eficiencia del desarrollo.
  4. Control de Versiones:

    • Los entornos separados permiten una mejor gestión de versiones. Las nuevas versiones de la aplicación pueden ser probadas exhaustivamente en el entorno de desarrollo antes de ser desplegadas en producción, reduciendo el riesgo de problemas post-implementación.
  5. Pruebas y Capacitación:

    • Los entornos de desarrollo pueden ser utilizados para realizar pruebas de usuario y capacitaciones sin afectar el entorno de producción. Esto es esencial para asegurar que los usuarios estén cómodos con las nuevas funcionalidades antes de que sean lanzadas oficialmente.

Planes Empresariales de Office 365 y Power Apps

Microsoft ofrece una variedad de planes empresariales de Office 365 que incluyen el uso de Power Apps, lo que permite a las organizaciones aprovechar estas herramientas sin necesidad de costos adicionales. Estos planes incluyen:

  • Office 365 E1:

    • Ideal para empresas que necesitan aplicaciones de Office y servicios en la nube sin aplicaciones de escritorio. Incluye Power Apps (sin conectores premium) y permite la creación de aplicaciones simples utilizando datos almacenados en servicios de Office 365 como SharePoint y OneDrive.
  • Office 365 E3:

    • Este plan ofrece aplicaciones de Office completas, servicios en la nube avanzados y herramientas de colaboración. Incluye Power Apps y permite la creación de aplicaciones más complejas, siempre que no se utilicen conectores premium.
  • Office 365 E5:

    • El plan más completo de Office 365, que incluye todas las características de E3, junto con herramientas de seguridad avanzada y análisis. También incluye Power Apps con las mismas restricciones en cuanto a conectores premium.

Es importante destacar que, mientras no se utilicen conectores premium, los usuarios pueden aprovechar completamente Power Apps para crear y desplegar aplicaciones dentro de su organización. Los conectores estándar permiten integrarse con servicios como SharePoint, OneDrive, y otros servicios de Office 365, proporcionando una solución poderosa y asequible para las empresas.

Conclusión

Crear entornos de desarrollo y producción separados en Power Apps es una práctica recomendada que ofrece numerosos beneficios, desde la mejora de la calidad del código hasta la facilitación de la colaboración entre equipos. Además, con los planes empresariales de Office 365, las organizaciones pueden utilizar Power Apps de manera eficiente y rentable, siempre que se mantengan dentro de los conectores estándar. Esto permite a las empresas innovar y mejorar sus procesos sin incurrir en costos adicionales significativos.

Referencias:

https://download.microsoft.com/download/9/5/6/9568EFD0-403D-4AE4-95F0-7FACA2CCB2E4/Power%20Platform%20Licensing%20Guide%20February%202024.pdf

https://learn.microsoft.com/ 


viernes, 7 de junio de 2024

Buenas Prácticas para la Estructura de Datos en SharePoint para Aplicaciones en PowerApps

 Introducción:

En el desarrollo de aplicaciones en PowerApps utilizando SharePoint como backend, es fundamental entender y aplicar buenas prácticas de estructura de datos. Aunque muchas de estas prácticas se derivan de conceptos de bases de datos relacionales, SharePoint requiere enfoques específicos debido a su naturaleza y manejo de datos.

 

1. Comprendiendo SharePoint como Fuente de Datos:

 

SharePoint almacena datos en listas y bibliotecas, cada una adecuada para diferentes tipos de datos y usos.

Las listas son ideales para datos estructurados, mientras que las bibliotecas se usan para documentos y archivos.

 

2. Principios Básicos de Modelado de Datos Relacionales:

 

Normalización: En bases de datos relacionales, la normalización es clave para evitar redundancias y asegurar la integridad referencial.

Sin embargo, en SharePoint, la normalización puede ser contraproducente debido a las limitaciones en las consultas y el rendimiento.

 

3. Diseño de Listas y Bibliotecas en SharePoint:

 

Diseña listas con columnas personalizadas para capturar los datos necesarios.

Utiliza tipos de contenido y metadatos para organizar y categorizar la información de manera eficiente.

4. Relaciones y Lookup Columns:

 

En lugar de utilizar columnas de búsqueda tradicionales (lookup columns) para crear relaciones entre listas, considera almacenar tanto el código como el nombre de la referencia directamente en la tabla de transacciones.

Este enfoque, aunque desnormalizado, mejora el rendimiento y facilita el manejo de datos históricos.

 

5. Manejo del Estado y Actualizaciones en PowerApps:

 

PowerApps permite manejar datos de SharePoint de manera eficiente, pero es crucial mantener la consistencia del estado.

Usa colecciones en memoria para manejar el estado de elementos pendientes de actualización y asegurarte de que los usuarios estén al tanto de que sus solicitudes están siendo procesadas.

 

6. Optimización y Buenas Prácticas:

 

Indexa columnas utilizadas frecuentemente en filtros y búsquedas para mejorar el rendimiento.

Limita el número de elementos en las listas para evitar problemas de rendimiento.

Utiliza fórmulas eficientes y minimiza la cantidad de consultas en PowerApps.

 

7. Preparación para Reportes Eficientes:

 

Diseña listas que ya contengan la información necesaria para generar reportes.

Actualiza estas listas con cada operación para que, al momento de generar un reporte, sea posible hacerlo de manera rápida y eficiente a través de una exportación de CSV.

Este enfoque asegura que los reportes se generen de forma inmediata y sin demoras en el procesamiento de información.

 

8. Consistencia en Tipos de Datos y Nombres de Columnas:

 

Mantén el tipo de dato y el nombre de las columnas exactamente igual en todas las listas que hagan referencia a esos datos.

Asegúrate de que, si una columna es numérica en una lista, sea numérica en todas las listas que la referencien, y lo mismo para texto y otros tipos de datos.

Esto facilita el desarrollo de software y evita conversiones innecesarias, garantizando coherencia y precisión en el manejo de datos.

 

9. Evitar Valores Predeterminados y Campos Obligatorios:

 

No utilices los valores predeterminados de las columnas de SharePoint, ya que esto puede ser contraproducente en los flujos de Power Automate.

Evita configurar campos como obligatorios a nivel de lista en SharePoint.

Maneja la captura de los campos obligatorios a nivel de la aplicación en Power Apps para evitar problemas en los flujos y asegurar que los valores no se actualicen involuntariamente.





Conclusión:

Aplicar estas buenas prácticas garantiza que tus aplicaciones en PowerApps sean robustas, escalables y fáciles de mantener.

La combinación de prácticas específicas para SharePoint y un enfoque práctico en el manejo de datos asegurará el éxito de tus aplicaciones.


Método Indirecto de Actualización para Power Apps y SharePoint Online

 

En este post, quiero compartir un enfoque eficiente y seguro para gestionar actualizaciones en listas de SharePoint Online desde Power Apps, al que llamo el método indirecto de actualización. Este método permite realizar actualizaciones y eliminaciones en listas maestras sin otorgar permisos directos de edición a los usuarios, incrementando así la seguridad y el control sobre los datos.

¿En qué consiste el método indirecto de actualización?

El método indirecto de actualización se basa en utilizar listas intermedias para manejar las operaciones de agregar, actualizar y eliminar elementos en una lista maestra. La estructura básica incluye:

  1. Lista Maestra: La lista principal en SharePoint donde se almacenan los datos definitivos. Los usuarios tienen permisos de solo lectura.
  2. Lista de Actualizaciones: Una lista donde los usuarios pueden agregar elementos que representan solicitudes de actualización. Los usuarios tienen permisos para agregar elementos.
  3. Lista de Eliminaciones: Una lista separada donde los usuarios pueden agregar elementos que representan solicitudes de eliminación. Los usuarios tienen permisos para agregar elementos.

Proceso de Funcionamiento

  1. Agregar Elementos: Los usuarios pueden agregar nuevos elementos directamente en la Lista de Actualizaciones. Un flujo de Power Automate se dispara al detectar un nuevo elemento, procesando la solicitud y actualizando la Lista Maestra en consecuencia.
  2. Actualizar Elementos: Similar al proceso de agregar, los usuarios realizan cambios en los elementos de la Lista de Actualizaciones. El flujo de Power Automate detecta las modificaciones y aplica las actualizaciones en la Lista Maestra.
  3. Eliminar Elementos: Los usuarios agregan un elemento en la Lista de Eliminaciones indicando cuál debe ser eliminado. El flujo de Power Automate toma esta solicitud y elimina el elemento correspondiente en la Lista Maestra.

Manejo de Estados en Power Apps

Un aspecto crucial al implementar este método en Power Apps es manejar la latencia en la ejecución de los flujos de Power Automate, ya que los eventos en SharePoint no se disparan de forma inmediata. Para asegurar que los usuarios sean conscientes de que sus solicitudes están en proceso, es necesario manejar colecciones en memoria dentro de Power Apps. Estas colecciones indican que el estado de algún elemento agregado o eliminado está pendiente de actualizarse.

De esta manera, cuando un usuario realiza una acción, Power Apps agrega el elemento a una colección que marca dicho elemento como pendiente. Así, el usuario puede ver que su solicitud se está procesando, aunque el flujo de Power Automate todavía no haya completado la operación en la Lista Maestra.

Beneficios del Método Indirecto

  1. Seguridad Mejorada: Al restringir los permisos de la Lista Maestra a solo lectura, evitamos que los usuarios modifiquen o eliminen datos críticos directamente.
  2. Control de Acceso: Los usuarios solo pueden agregar elementos a las listas intermedias, evitando la necesidad de permisos de edición directa en la Lista Maestra.
  3. Automatización: Los flujos de Power Automate gestionan automáticamente las operaciones en la Lista Maestra basándose en los eventos disparados por las listas intermedias.
  4. Simplicidad en Power Apps: La aplicación Power Apps solo necesita conectarse a las listas intermedias, simplificando la configuración y reduciendo el riesgo de errores en la manipulación de la Lista Maestra.

Implementación del Método

  1. Crear Listas en SharePoint Online:
    • Lista Maestra
    • Lista de Actualizaciones
    • Lista de Eliminaciones
  2. Configurar Permisos:
    • Lista Maestra: Permisos de solo lectura para los usuarios.
    • Listas de Actualizaciones y Eliminaciones: Permisos para agregar elementos.
  3. Desarrollar Flujos en Power Automate:
    • Flujo para procesar nuevas adiciones y actualizaciones desde la Lista de Actualizaciones a la Lista Maestra.
    • Flujo para manejar eliminaciones desde la Lista de Eliminaciones a la Lista Maestra.
  4. Configurar Colecciones en Power Apps:
    • Crear y manejar colecciones en memoria para indicar el estado de los elementos pendientes de actualizarse o eliminarse, asegurando que los usuarios sepan que sus solicitudes están en proceso.

Conclusión

El método indirecto de actualización para Power Apps y SharePoint Online es una estrategia poderosa para mejorar la seguridad y el control en la gestión de datos. Al implementar listas intermedias y automatizar las operaciones con flujos de Power Automate, podemos asegurar que solo se realicen cambios autorizados en la Lista Maestra, manteniendo la integridad y la seguridad de nuestros datos. Además, el manejo de colecciones en Power Apps proporciona una experiencia de usuario fluida, informando a los usuarios sobre el estado de sus solicitudes.

 

miércoles, 30 de noviembre de 2022

Dejar compartir una app con un usuario desde un flujo de Power Automate

 Podemos automatizar el proceso de quitarle a un usuario los permisos de un sitio de SharePoint y de compartir el app de Power Apps a un usuario en especifico.

El paso clave en el flujo es SharePoint Send HTTP Request

Metodo:

    POST

 URI: 

GetById(5) es el grupo de integrantes predeterminado de SharePoint


Encabezados:

    accept = application/json;odata=verbose

    content-type = application/json;odata=verbose

   X-HTTP-Method = DELETE    

 


 El ID del Usuario se obtiene del conetor Office 365 Users Buscar Usuarios V2


Eso es todo

PowerAutomate4Fun!,


Juan Manuel Herrera Ocheita