Novedades Power Platform

Para la Transformación Digital e Innovación Tecnológica

Novedades Power Platform

Para la Transformación Digital e Innovación Tecnológica

Power Platform

Power Apps – Sesión 06 – Resumen

Reutilización y escalabilidad – Módulo de Facturación (cabecera/detalle) sobre Dataverse, dejando lista la base para integrar Power Automate (aprobaciones/notificaciones)


🎯 Objetivo de la clase


1) 🔄 Componentes en Power Apps: por qué y para qué

¿Qué se trabajó?

  • Se creó un Componente Menú para reemplazar menús duplicados por pantalla y así reutilizar UI en múltiples pantallas. [learn.microsoft.com], [learn.microsoft.com]
  • Se reforzó la idea: si actualizas el componente, se actualiza en todas las pantallas donde se usa, reduciendo mantenimiento y errores. [learn.microsoft.com]

Conceptos clave (explicación breve)

  • Componentes = bloques reutilizables para controles y patrones repetidos (menús, headers, etc.). [learn.microsoft.com]
  • Propiedades personalizadas = permiten que el componente reciba o envíe información/lógica:

2) 🧭 Menú dinámico por “módulo” usando Colecciones + Componentes

Problema abordado

Se necesitaba que cada “módulo” (por ejemplo Ventas vs Productos) tenga menús distintos, pero con la misma “estructura visual”. [learn.microsoft.com], [learn.microsoft.com]

Solución implementada (patrón técnico)

  1. En la pantalla de “módulos”, al hacer clic en un módulo:
  2. El componente “Menú” recibe esa colección mediante una propiedad personalizada de tipo Tabla (Input) y la muestra con una Gallery. [learn.microsoft.com], [learn.microsoft.com]
  3. Cada opción de menú navega usando Navigate(ThisItem.pantalla) (o equivalente) para abrir la pantalla asociada. [learn.microsoft.com], [learn.microsoft.com]

Por qué este patrón es sólido:


3) 🔎 Búsqueda / filtrado en galerías (UX rápida)

Se implementó un buscador para filtrar productos por nombre con un patrón típico:

Idea clave: Filter() devuelve una tabla con los registros que cumplen una condición y es la base de la mayoría de búsquedas en galerías. [learn.microsoft.com]


4) 🗃️ Dataverse: modelo de datos y relaciones (Facturación)

4.1 Dataverse vs otras opciones (mensaje del docente)

Nota de refuerzo: Microsoft presenta criterios para elegir entre Lists / Dataverse for Teams / Dataverse, principalmente por capacidad, tipo de datos y gobernanza. [learn.microsoft.com], [learn.microsoft.com]

4.2 Estructura de Facturación (cabecera/detalle)

Se diseñó el patrón típico de negocio:

  • Cliente (tabla maestra)
  • Factura (cabecera) → lookup a Cliente
  • Factura_Detalle (detalle) → lookup a Factura y lookup a Producto
  • Producto (tabla maestra para facturación) con al menos Nombre y Precio [learn.microsoft.com], [learn.microsoft.com]

📌 Concepto clave: en Dataverse, una columna Lookup crea una relación (por ejemplo, many-to-one / one-to-many) entre tablas. [learn.microsoft.com], [learn.microsoft.com]

4.3 ¿Por qué Cliente NO va en Factura_Detalle?

Porque el cliente vive en la cabecera: si lo repites en cada detalle, duplicas información y pierdes normalización. Ese diseño se representa correctamente como:
Cliente (1) → Facturas (N) → Facturas_Detalle (N). [learn.microsoft.com], [learn.microsoft.com]


5) 🧾 Pantalla de Facturación (Canvas): controles y lógica

Controles principales usados

Lógica de “Agregar ítem al detalle”

Se implementó un detalle “en memoria” con colección:

Importante: se aclaró que este detalle en colección no persiste si no se guarda en Dataverse (se pierde al recargar). Esto es consistente con el uso de colecciones como almacenamiento temporal. [learn.microsoft.com], [learn.microsoft.com]


6) 🧩 Integración planeada: Power Apps + Power Automate (aprobación)

Se definió el objetivo funcional (para cerrar en la próxima sesión):

  1. Guardar cabecera/detalle de factura en Dataverse. [learn.microsoft.com], [learn.microsoft.com]
  2. Disparar un flujo de aprobación/validación (correo/Teams) y actualizar el estado (Pendiente/Aprobado/Rechazado). (Quedó planteado como la siguiente fase.) [learn.microsoft.com], [learn.microsoft.com]

❓ Preguntas y respuestas destacadas (con refuerzo oficial)

1) “¿Dataverse vs SQL Server si manejo ~25k–50k registros/año?”

Respuesta del docente (síntesis): ambos pueden llegar al mismo objetivo; Dataverse es más “amigable” y rápido de implementar para escenarios comunes; SQL Server requiere más conocimiento y se elige si el escenario exige arquitectura/operación más avanzada.
🔎 Refuerzo oficial: Power Apps se conecta a SQL Server mediante el conector y puede delegar operaciones como Filter al back-end; además se recomiendan patrones profesionales (vistas/procedimientos) según el caso. [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]


2) “¿Por qué Cliente no se relaciona directamente con Factura_Detalle?”

Respuesta del docente (síntesis): porque el cliente se define en la cabecera (Factura) y el detalle solo maneja líneas de productos; repetir cliente por línea duplicaría información.
🔎 Refuerzo oficial: Dataverse recomienda modelar relaciones 1:N con lookup; la relación natural es Cliente→Factura (1:N) y Factura→Detalle (1:N). [learn.microsoft.com], [learn.microsoft.com]


3) “¿Power Apps se puede enlazar con Oracle?”

Respuesta del docente (síntesis): no de forma “nativa” dentro del ecosistema Microsoft como Dataverse, pero sí se puede integrar mediante conexión/servicio.
🔎 Refuerzo oficial: Power Apps soporta conexión a Oracle usando el Oracle Database connector, normalmente mediante on-premises data gateway y requisitos del cliente ODAC. [learn.microsoft.com], [learn.microsoft.com]


4) “¿Cómo hago un buscador que muestre todo si no hay texto?”

Respuesta del docente (síntesis): validar si el cuadro está vacío (IsBlank) y si no lo está, filtrar por coincidencia (StartsWith).
🔎 Refuerzo oficial: IsBlank verifica blancos; StartsWith permite búsquedas por inicio de texto; ambos se usan comúnmente con Filter. [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]


✅ Conclusiones


⭐ Recomendaciones

  1. 🧱 Estandariza componentes: convierte también el header en componente (logo + título + botones) para seguir reduciendo duplicación. [learn.microsoft.com], [learn.microsoft.com]
  2. 🧠 Tipa bien tus datos: cuando calcules totales, asegura conversiones (Value) y evita mezclar texto con número. (Reduce bugs de cálculo.) [learn.microsoft.com], [learn.microsoft.com]
  3. 🔎 Filtrado con delegación: si tu origen crece, revisa qué funciones delegan; Filter es central para performance. [learn.microsoft.com], [learn.microsoft.com]
  4. 🗃️ Persistencia: lo de colección es temporal; implementa “Guardar factura” (cabecera + detalle) en Dataverse para que no se pierda al reiniciar. [learn.microsoft.com], [learn.microsoft.com]
  5. 🔌 Integraciones externas (Oracle/SQL): usa conectores oficiales y gateway cuando corresponda; evita atajos por seguridad y soporte. [learn.microsoft.com], [learn.microsoft.com], [learn.microsoft.com]

📚 Referencias oficiales

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

advanced-floating-content-close-btnBoton