A lo largo de este módulo vamos a construir una aplicación completa: un Gestor de Incidencias. Es un caso de uso real, que cualquier empresa podría necesitar, y que nos va a permitir explorar todas las capacidades relevantes de las Code Apps. Empezamos definiendo qué vamos a construir y cómo va a estar estructurado el modelo de datos en Dataverse.
Objetivos de aprendizaje
- Definir los requisitos funcionales de la aplicación de ejemplo
- Diseñar el modelo de datos en Dataverse
- Crear las tablas necesarias en Dataverse con sus columnas y tipos
- Entender por qué Dataverse es la fuente de datos ideal para Code Apps
Qué vamos a construir
El Gestor de Incidencias es una aplicación React+TypeScript conectada a Dataverse que permite a los usuarios de una organización:
- Listar todas las incidencias activas con filtros por estado y prioridad
- Crear nuevas incidencias con un formulario completo
- Editar incidencias existentes y actualizar su estado
- Ver el detalle completo de cada incidencia
- Cerrar incidencias resueltas
Es un CRUD completo, con filtros, navegación entre vistas, gestión de estado con React y acceso a Dataverse a través del SDK generado automáticamente.
El modelo de datos
Necesitamos una tabla principal en Dataverse. La llamaremos cr_incidencia (el prefijo cr_ es el prefijo de la solución personalizada, cámbialo por el de tu organización).
Las columnas de la tabla:
| Nombre lógico | Nombre para mostrar | Tipo | Notas |
|---|---|---|---|
| cr_titulo | Título | Texto (línea única) | Campo principal |
| cr_descripcion | Descripción | Texto (área de texto) | Descripción detallada |
| cr_estado | Estado | Conjunto de opciones | Abierta, En progreso, Resuelta, Cerrada |
| cr_prioridad | Prioridad | Conjunto de opciones | Baja, Media, Alta, Crítica |
| cr_solicitante | Solicitante | Texto (línea única) | Nombre del solicitante |
| cr_fechacreacion | Fecha de creación | Fecha y hora | Automática (createdon) |
| cr_notas | Notas de resolución | Texto (área de texto) | Notas al resolver |

Creando la tabla en Dataverse
Para crear la tabla, ve al portal de Power Apps (make.powerapps.com), selecciona tu entorno de desarrollo, y navega a Dataverse > Tablas. Crea una nueva tabla personalizada con el nombre "Incidencia" y el nombre lógico "cr_incidencia".
Después, añade las columnas de la lista anterior. Para el estado y la prioridad, crea conjuntos de opciones nuevos con los valores indicados. Asegúrate de que los valores numéricos de las opciones son distintos entre conjuntos para evitar confusiones.
¿Por qué Dataverse para este ejemplo?
Podríamos haber usado una lista de SharePoint o una tabla SQL, pero Dataverse ofrece varias ventajas para este caso:
- El SDK generado automáticamente hace el acceso a datos mucho más simple y tipado
- La autenticación es automática: no hay que gestionar credenciales
- Los conjuntos de opciones se representan como enums en TypeScript, con IntelliSense completo
- Tiene auditoría, historial de cambios y seguridad a nivel de fila out-of-the-box
cr_). Mantener un prefijo consistente facilita la identificación de componentes personalizados frente a los nativos de la plataforma.
Puntos clave
- La app de ejemplo es un Gestor de Incidencias con CRUD completo conectado a Dataverse
- El modelo de datos tiene una tabla principal con estado, prioridad, solicitante y notas
- Los conjuntos de opciones de Dataverse se convierten en enums TypeScript en el SDK generado
- Dataverse es la fuente de datos ideal para Code Apps por la integración nativa