Power Apps – Sesión 03 – Resumen

Lógica de negocio, Power Fx y diseño responsive
🎯 Objetivo de la clase
- Introducir la lógica de negocio en Power Apps mediante Power Fx (fórmulas tipo Excel) y mostrar cómo se aplican a propiedades de controles (Visible, Width, LayoutDirection, Text, etc.). [learn.microsoft.com], [learn.microsoft.com]
- Reforzar buenas prácticas de diseño responsive con contenedores y fórmulas basadas en el tamaño real de pantalla. [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
- Revisar opciones de exportación/importación de apps (archivo único vs paquete/ALM). [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
🧠 Conceptos clave
- Power Apps (Canvas Apps): apps con diseño libre donde la lógica se aplica a propiedades de controles mediante Power Fx. [learn.microsoft.com], [learn.microsoft.com]
- Power Fx: lenguaje “tipo hoja de cálculo”, recalcula valores automáticamente; usa funciones (If, Text, Find, Mid, etc.) y también fórmulas de comportamiento (Navigate, Notify). [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
- Contenedores (Container control): agrupan controles para estructurar pantallas (horizontal/vertical) y facilitar layouts responsivos. [learn.microsoft.com], [learn.microsoft.com]
- Localización: separador decimal y formatos pueden variar por región/idioma; se ajusta con funciones como Language, Text, Value, DateValue. [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
- Dataverse vs Lists: selección del backend según volumen, relaciones, seguridad y escalabilidad (en general, Dataverse para escenarios enterprise). [learn.microsoft.com], [learn.microsoft.com]
1) 🧱 Repaso de diseño y contenedores (cierre de la sesión anterior)
1.1 Diseño tipo “login” (UI/UX)
- Ajustes visuales: quitar sombras/bordes excesivos, mejorar alineaciones y tamaños, simular un login más “realista” en Canvas App.
- Configuración de campos tipo contraseña (modo password) desde propiedades del control (enfoque UX). (Buenas prácticas de UI, sin entrar aún a validación real de credenciales.)
✅ Refuerzo Microsoft: los controles tienen propiedades estándar (X, Y, Width, Height, Visible, etc.) que se pueden controlar con fórmulas para mejorar UX y consistencia. [learn.microsoft.com], [learn.microsoft.com]
2) 📱 Diseño responsive con Power Apps (lo más importante de la sesión)
2.1 Principio base
- Se explicó que una app “responsive” no solo escala, sino que reacomoda el layout según el tamaño del dispositivo (web/desktop/tablet/móvil). [learn.microsoft.com], [learn.microsoft.com]
2.2 Ajustes recomendados (configuración)
- Para verdadera responsividad, se recomienda desactivar opciones que “solo escalan” la UI (por ejemplo, Scale to fit), y diseñar con layout adaptativo. [learn.microsoft.com], [learn.microsoft.com]
2.3 Fórmula clave usada (patrón)
- Se aplicó un patrón tipo:
Si el ancho es menor a un umbral (ej. 600px) → layout vertical; si no → horizontal, usando propiedades de dimensión de la app/pantalla. [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
📌 Idea técnica: en lugar de fijar posiciones absolutas, se usan fórmulas basadas en App.Width / App.Height y propiedades del contenedor/pantalla. [learn.microsoft.com], [learn.microsoft.com]
2.4 Contenedores como base del responsive
- Se reforzó que los containers (vertical/horizontal) simplifican layouts y permiten reorganizar módulos (logo + formulario, menú + contenido, header + body). [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
3) 📦 Exportar e importar aplicaciones (portabilidad y ALM)
3.1 Opción A — Exportar/importar como archivo único (.msapp)
- Útil cuando la app es simple (principalmente UI y lógica interna).
- Se descarga desde Power Apps Studio como Download a copy y se importa “From file (.msapp)”. [learn.microsoft.com], [learn.microsoft.com]
3.2 Opción B — Exportar/importar como paquete
- Recomendado cuando hay dependencias (conexiones, flujos, gateways, recursos).
- Permite elegir acciones de importación (Create as new / Update) por recurso. [learn.microsoft.com], [learn.microsoft.com]
3.3 Recomendación de gobierno (ALM)
- Para escenarios serios (Dev/Test/Prod) se sugiere usar soluciones para ALM en Power Platform, especialmente si hay Dataverse. [learn.microsoft.com], [learn.microsoft.com]
4) 🧩 Construcción de pantallas “tipo sistema” (plantillas y estructura)
4.1 Pantalla de bienvenida con módulos
- Se mostró el uso de pantallas predefinidas (header + módulos) como atajo de diseño para ahorrar tiempo. [learn.microsoft.com], [learn.microsoft.com]
4.2 Pantalla principal (layout tipo “menú lateral + contenido + header”)
- Construcción por capas con contenedores:
- Container principal (vertical)
- Header (horizontal)
- Body (horizontal): menú lateral (vertical) + contenido (vertical)
- Se colocaron elementos típicos: títulos, versión, empresa, fecha (luego se formatea con funciones). [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
5) 🧠 Power Fx: lógica y funciones (núcleo de la sesión)
5.1 Dónde se escriben las fórmulas
- En la barra de fórmulas, asociadas a una propiedad específica del control (por ejemplo:
Label.Text,Container.LayoutDirection,Button.OnSelect). [learn.microsoft.com], [learn.microsoft.com]
5.2 Funciones de texto (caso práctico “Excel → Power Apps”)
Se trabajó un ejemplo de extracción de texto entre guiones, equivalente a Excel pero con funciones Power Fx:
- Find: ubicar posición de un carácter o substring. [learn.microsoft.com]
- Mid / Left / Right: extraer partes del texto. [learn.microsoft.com]
- Upper / Lower / Proper: transformación de mayúsculas/minúsculas. [learn.microsoft.com]
- Trim: limpieza de espacios. [learn.microsoft.com]
✅ Refuerzo Microsoft: todas estas funciones están documentadas en el Formula reference de Canvas Apps. [learn.microsoft.com], [learn.microsoft.com]
5.3 Formato y conversión de tipos (fecha y número)
a) Text() para formateo
- Formateo de fecha en un string (día/mes/año) y formateo de número con patrón. [learn.microsoft.com]
b) Conversión de texto → fecha/hora
- DateValue / TimeValue / DateTimeValue: convierten strings a valores de fecha/hora considerando región/idioma si se especifica. [learn.microsoft.com], [learn.microsoft.com]
c) Conversión de texto → número
- Value() recomendado cuando un control devuelve texto y necesitas operar numéricamente. [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
5.4 Localización: separadores y formatos (coma vs punto, etc.)
- Se explicó el “por qué” a veces funciona
;o,dependiendo de configuración regional del autor o navegador/OS (similar a Excel). [learn.microsoft.com], [learn.microsoft.com] - Buen enfoque: usar funciones Language/Text/Value/DateValue para robustez global. [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
6) ✅ Lógica condicional aplicada al login (demo)
Se construyó una lógica de validación simple (conceptual) para:
- Validar usuario/contraseña con If. [learn.microsoft.com]
- Si es válido → navegar a otra pantalla con Navigate. [learn.microsoft.com]
- Si no → mostrar mensaje con Notify. [learn.microsoft.com]
🔎 Nota técnica: Notify y Navigate son funciones de comportamiento (por ejemplo
Button.OnSelect). [learn.microsoft.com], [learn.microsoft.com]
7) 🔐 Preguntas y respuestas destacadas (con refuerzo oficial)
❓ P1) “Quiero que algunos usuarios puedan editar y otros solo visualizar. ¿Se puede?”
✅ Respuesta del docente (idea): Sí, mediante configuración de permisos/administración y roles (lectura, edición, etc.), según el modelo de acceso de la solución.
🔎 Refuerzo Microsoft (Canvas + datos):
- Compartir la app define permisos de uso o coautoría (User / Co-owner), pero también debes asignar permisos a la fuente de datos (Dataverse, Excel, SharePoint, etc.) para que realmente funcione el acceso. [learn.microsoft.com]
- Si trabajas con Dataverse, el control fino es con security roles (modelo RBAC). [learn.microsoft.com], [learn.microsoft.com]
❓ P2) “La validación no funcionaba aunque el usuario y clave eran correctos”
✅ Respuesta del docente (idea): el error estaba en referenciar un control equivocado (nombre mal usado).
🔎 Refuerzo Microsoft:
- Power Fx depende de referencias correctas a propiedades como
TextInput.Text, y el flujo se controla con If (condición/resultado). [learn.microsoft.com], [learn.microsoft.com]
❓ P3) “¿Por qué a veces falla una suma o formato?”
✅ Respuesta del docente (idea): por tipo de dato (texto vs número) y por localización (separador decimal y formato regional).
🔎 Refuerzo Microsoft:
- Text() formatea valores y respeta configuraciones regionales; Value() convierte texto a número cuando es necesario. [learn.microsoft.com], [learn.microsoft.com]
- Date/Time conversion con DateValue/TimeValue/DateTimeValue puede depender de idioma/región (se puede forzar). [learn.microsoft.com], [learn.microsoft.com]
✅ Conclusiones
- La sesión consolidó una idea clave: en Power Apps, la lógica se construye asignando fórmulas a propiedades de controles (como en Excel, pero aplicado a UI y comportamiento). [learn.microsoft.com], [learn.microsoft.com]
- El diseño responsive se logra mejor con contenedores + fórmulas basadas en App.Width/App.Height, no con posiciones fijas. [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
- Exportar como .msapp sirve para portabilidad simple; para escenarios reales con dependencias y ALM, conviene usar paquetes y soluciones. [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
- Para control de acceso real (ver/editar), se debe combinar: compartición de app + permisos del origen de datos, y en Dataverse, aplicar roles de seguridad. [learn.microsoft.com], [learn.microsoft.com]
⭐ Recomendaciones
- 📐 Diseña con contenedores desde el inicio (horizontal/vertical) y evita depender de X/Y fijos. [learn.microsoft.com], [learn.microsoft.com]
- 📱 Implementa un patrón responsive (umbral por ancho) y prueba siempre en varios tamaños (web/tablet/móvil). [learn.microsoft.com], [learn.microsoft.com]
- 🧪 Cuando una fórmula falle, valida primero:
- Nombre del control y propiedad correcta (
.Text,.SelectedDate, etc.) [learn.microsoft.com], [learn.microsoft.com] - Tipo de dato (texto vs número vs fecha) usando Value/DateValue/Text. [learn.microsoft.com], [learn.microsoft.com]
- Nombre del control y propiedad correcta (
- 🌍 Si trabajas con números/fechas, considera regionalización (separadores y formatos) para evitar errores en otros usuarios/equipos. [learn.microsoft.com], [learn.microsoft.com]
- 📦 Para mover apps entre entornos:
- Usa .msapp si es simple,
- Usa paquete/solución si hay conexiones/flows/datos y ALM. [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]
- 🔐 Para permisos:
- Comparte app correctamente y asegura permisos del data source; en Dataverse usa roles. [learn.microsoft.com], [learn.microsoft.com]
📚 Referencias oficiales
- Power Fx (visión general): Microsoft Power Fx overview
- Referencia de fórmulas (Canvas Apps): Formula reference – canvas apps
- Responsive layout (guía): Create responsive layouts in canvas apps
- Responsive apps (principios): Building responsive canvas apps
- Control contenedor: Container control in Power Apps
- Global/locale en Power Fx: Global support y Build global support into canvas apps
- Text formatting: Text function
- Date/Time conversion: DateValue / TimeValue / DateTimeValue
- Lógica condicional: If function
- Navegación: Navigate function
- Notificaciones: Notify function
- Export/Import .msapp: Export and import a canvas app as a single app file
- Export/Import paquete: Export and import canvas apps as a package
- Compartir canvas apps: Share a canvas app with your organization
- Roles Dataverse (seguridad): Role-based security roles for Dataverse
- Comparativa de fuentes de datos (Lists vs Dataverse): Comparing Microsoft Lists, Dataverse for Teams, and Dataverse

