Power Apps #12 – Sesión 4 – Resumen

Conexión con SharePoint
🎯 Objetivo de la sesión
Cerrar los temas pendientes de la sesión anterior (funciones de fecha y condicionales) e iniciar el bloque de gestión de datos: cómo conectar una app de Power Apps a fuentes de datos externas, comenzando por SharePoint, en el marco de un caso práctico de aplicación de Kardex (control de inventario).
🗂️ 1. Repaso: funciones pendientes de la clase anterior
| Categoría | Funciones vistas | Ejemplo práctico |
|---|---|---|
| Fecha y hora | Today(), Now() | Obtener fecha/hora actual |
DateAdd(fecha, número, unidad) | Sumar o restar días a una fecha (DateAdd(Today(), 7) / DateAdd(Today(), -7)) | |
DateDiff(fechaInicio, fechaFin) | Calcular diferencia de días entre dos fechas | |
Year(), Month(), Day() + Date() | Construir el primer día del mes actual | |
| Condicionales | If(condición, valorSiVerdadero, valorSiFalso) | Validar mayoría de edad: If(Value(ControlEdad.Text) >= 18, "Mayor de edad", "No es mayor de edad") |
Switch(valor, caso1, resultado1, caso2, resultado2, ...) | Clasificar edad según texto ingresado («joven»→18, «niño»→5, «adulto»→30) |
📌 Concepto clave destacado por el docente: al comparar un control de entrada de texto con un número, siempre se debe convertir el texto con Value(); de lo contrario Power Apps compara tipos de datos distintos (texto vs. número) y la condición no funciona. [learn.microsoft.com], [c-sharpcorner.com]
Documentación oficial: If y Switch — funciones equivalentes a «si…entonces» y evaluación de múltiples coincidencias. | DateAdd/DateDiff — suman o calculan diferencias entre fechas usando unidades como Days, Months, Years. [learn.microsoft.com] [learn.microsoft.com]
💾 2. Fuentes de datos disponibles en Power Apps
El docente presentó los tres conectores principales que se usarán en el curso, explicando cuándo conviene cada uno:
| Conector | Cuándo usarlo | Nivel de complejidad |
|---|---|---|
| SharePoint | Aplicaciones pequeñas, tipo «listado de Excel» con pocos registros | Bajo — se verá hoy |
| Dataverse | Aplicaciones medianas con mayor volumen de datos | Medio — próxima clase |
| SQL Server | Bases de datos grandes o ya existentes; requiere más conocimiento técnico | Alto |
También se mencionaron otros conectores posibles (Salesforce, Azure SQL), aunque de uso menos frecuente en el curso. [synapx.com], [ve3.global]
💡 Ventaja clave señalada en clase: cambiar de un conector a otro (por ejemplo, de SharePoint a Dataverse) es sencillo si la estructura de campos es la misma — solo se reemplaza el nombre de la tabla/lista en la propiedad Items del control, sin rehacer la lógica de la app.
🏗️ 3. Caso práctico: Aplicación de Kardex (control de inventario)
Se definieron dos listas de datos necesarias para la app:
Lista «Productos»
ID(identificador)Nombre del producto(texto)Stock(número)Activo(Sí/No)
Lista «Movimientos»
IDProducto(relación con la lista Productos)Tipo de movimiento(Entrada / Salida — opción personalizable)Cantidad(número)FechaObservación
Pantallas construidas:
- Lista de Productos — con control Galería (título = nombre, subtítulo = stock, imagen del producto).
- Movimientos — con control Tabla (para mostrar el histórico de movimientos de un producto seleccionado).
- Navegación entre ambas mediante el ícono de flecha en cada fila de la galería.
⚙️ 4. Activación de la licencia para usar SharePoint
Antes de conectar, fue necesario activar una licencia (proceso mostrado en vivo, con demoras reales de propagación de 10-60+ minutos):
- Ingresar al Centro de administración de Microsoft 365.
- Ir a Marketplace → Todos los productos → Microsoft 365 → Business Standard (Trial).
- Asignar la licencia al usuario en Usuarios activos → Licencias y aplicaciones.
- Esperar la propagación (el docente experimentó demoras superiores a la hora estimada por Microsoft).
📌 Recomendación práctica: activar este tipo de licencias con anticipación (una clase antes de necesitarla), ya que la activación real no es instantánea.
🔗 5. Conectar la app a una lista de SharePoint
Pasos realizados en clase:
- Crear el sitio y la lista en SharePoint (Inicio → Sitios → Sitio de comunicación → Agregar lista en blanco).
- Renombrar la columna por defecto («Título») a
ID, y agregar columnas:Nombre producto(texto),Stock(número),Activo(Sí/No). - En Power Apps: Datos → Agregar datos → Conectores → SharePoint → seleccionar el sitio → seleccionar la lista → Conectar. [learn.microsoft.com], [learn.microsoft.com]
- Enlazar el control de galería/tabla asignando la propiedad
Itemsal nombre de la lista conectada. - Agregar registros de prueba directamente desde SharePoint (Nuevo elemento) y luego actualizar el conector en la app para reflejar los cambios.
Documentación oficial de referencia:«Connect to SharePoint from a canvas app» detalla cómo crear la conexión desde el menú Datos y agregar una o más listas como origen de datos. [learn.microsoft.com]
Fórmulas clave usadas al conectar los datos
| Fórmula | Propósito | Ejemplo de la clase |
|---|---|---|
ThisItem.NombreColumna | Acceder al valor de una columna del registro actual en la galería | ThisItem.'Nombre producto' |
Concatenate() | Unir texto con valores numéricos/de otra columna | Concatenate("Stock: ", ThisItem.Stock) |
First(ThisItem.'Datos adjuntos').Value | Obtener la primera imagen de una columna de tipo «Datos adjuntos» (que es una lista de archivos) | Mostrar la imagen del producto en la galería |
Set(varProductoSeleccionado, ThisItem) | Guardar el registro seleccionado en una variable global | Antes de navegar a la pantalla de movimientos |
Navigate(ScreenMovimientos) | Cambiar de pantalla llevando consigo la variable ya definida | Al hacer clic en el ícono de flecha de cada fila |
Documentación oficial: Attachments control — explica que la columna de datos adjuntos es una lista de archivos y solo soporta SharePoint/Dataverse como origen. | Back y Navigate — permite cambiar de pantalla y usar variables de contexto establecidas previamente con Set o Navigate. [learn.microsoft.com] [learn.microsoft.com], [codesharepoint.com]
Columnas automáticas de SharePoint
El docente explicó que cada lista de SharePoint genera automáticamente columnas internas de auditoría (Creado por, Fecha de creación, Modificado por, Datos adjuntos), visibles/ocultables desde la opción**»Mostrar/ocultar columnas»** en la vista de SharePoint.
🖼️ 6. Diferencia entre control Galería y control Tabla
| Aspecto | Galería | Tabla |
|---|---|---|
| Permite insertar otros controles (imágenes, botones) | ✅ Sí | ❌ No |
| Formato | Libre/personalizable | Tabular, con encabezados automáticos |
| Uso en la clase | Pantalla «Lista de Productos» | Pantalla «Movimientos» (histórico) |
Documentación oficial: el control Gallery permite mostrar múltiples registros con distintos tipos de controles dentro de una plantilla personalizable. El control Table (moderno) es de solo lectura y ofrece un formato tabular con desplazamiento infinito, ideal para vistas de datos densas. [learn.microsoft.com] [learn.microsoft.com]
❓ Preguntas y respuestas destacadas de la clase
| Pregunta (alumno) | Respuesta del docente | Refuerzo con documentación oficial |
|---|---|---|
| Sara Chávez: ¿Se puede vincular Power Automate/Power Apps con el CRM Salesforce? | Sí, mediante Conexiones → Nueva conexión → Salesforce, ingresando las credenciales del CRM, igual que se haría con SQL Server. | Salesforce y SQL Server son conectores disponibles en Power Apps; la lógica de conexión (credenciales + selección de tablas) es la misma que para SharePoint, solo cambia el tipo de conector. [synapx.com] |
| Fabian Patiño: ¿Qué significa la columna «Activo» (Sí/No) en la lista de Productos? | Es una columna creada por el propio diseñador de la app (no del sistema) que permite activar o desactivar un registro sin eliminarlo físicamente — por ejemplo, para ocultar un producto descontinuado aplicando un filtro por ese valor. | Esta práctica corresponde a un borrado lógico (soft delete); se puede implementar con una columna Sí/No en SharePoint y aplicando la función Filter() sobre esa columna en la propiedad Items de la galería. [ve3.global] |
✅ Conclusiones y recomendaciones
- Las funciones de fecha y condicionales son la base para validar datos antes de guardarlos en cualquier fuente (SharePoint, Dataverse o SQL); dominar
DateAdd,DateDiff,IfySwitchevita errores comunes de tipo de dato. [learn.microsoft.com], [learn.microsoft.com] - Elegir el conector correcto depende del volumen y complejidad de los datos: SharePoint para listas pequeñas (tipo Excel), Dataverse para volumen medio con más seguridad/relaciones, y SQL Server para bases de datos grandes o ya existentes. [ve3.global]
- La activación de licencias premium (como SharePoint vía Business Standard) no es instantánea — planifica este paso con anticipación en proyectos reales para evitar bloqueos de tiempo como los vividos en clase.
- La estructura de la app es independiente del conector: si mantienes los mismos campos, puedes migrar de SharePoint a Dataverse (o viceversa) simplemente reconectando la fuente de datos, sin rehacer la lógica visual ni las fórmulas.
- Usa
Set()+Navigate()para pasar información entre pantallas (por ejemplo, el producto seleccionado en una galería hacia la pantalla de detalle/movimientos) — es el patrón estándar para navegación con contexto en Power Apps. [codesharepoint.com] - Diferencia Galería vs. Tabla según el objetivo: usa Galería cuando necesites personalización visual (imágenes, botones); usa Tabla cuando priorices una vista tipo hoja de cálculo con encabezados automáticos. [learn.microsoft.com], [learn.microsoft.com]
- Próxima sesión: se completará la conexión a SharePoint (pendiente por demoras de licencia), se agregarán filtros de búsqueda al listado de productos, y se introducirá Dataverse como segunda fuente de datos para la app de facturación (con envío de correos y adjuntos PDF).
- Recomendación del docente: practicar el flujo completo (crear lista → agregar columnas → conectar → enlazar controles) por cuenta propia, revisando la grabación si quedan dudas puntuales sobre la configuración.

