💡 Introducción
En el ecosistema empresarial moderno, los datos son el activo más valioso, pero también pueden convertirse en un desafío de gestión crítico. A medida que las organizaciones adoptan Microsoft Dataverse como su motor transaccional principal para Dynamics 365 y Power Apps, el volumen de datos crece exponencialmente. Este crecimiento desmedido no solo impacta en los costos de almacenamiento relacional, sino que también dificulta el cumplimiento de regulaciones estrictas como el RGPD o HIPAA.
📋 ¿Por qué implementar la retención de datos en Dataverse?
La retención de datos nativa en Dataverse aborda tres pilares fundamentales para cualquier arquitectura empresarial:
- Optimización de Costos: El almacenamiento de bases de datos relacionales en Dataverse es premium. Al mover datos históricos al almacenamiento de retención, liberamos espacio activo y reducimos drásticamente los costos de licenciamiento de almacenamiento de archivos y bases de datos.
- Rendimiento del Sistema: Las tablas con millones de registros activos ralentizan las vistas, las búsquedas y la ejecución de plugins. Al archivar los datos que ya no se usan en el día a día, el rendimiento general de las aplicaciones mejora de forma sustancial.
- Cumplimiento Legal (Gobernanza): Muchas industrias exigen que los registros financieros, de salud o de auditoría se conserven durante 7 o 10 años, pero prohíben que estén accesibles para la modificación rutinaria. Las políticas de Dataverse aseguran que estos datos queden en un estado de solo lectura inmutable y altamente seguro.
Comparativa de Almacenamiento: Activo vs. Retenido
Para entender mejor el beneficio financiero y operativo, analicemos la siguiente tabla comparativa:
| Característica | Almacenamiento Activo (Dataverse DB) | Almacenamiento de Retención a Largo Plazo |
|---|---|---|
| Estado del Dato | Lectura y Escritura (Transaccional) | Solo Lectura (Inmutable) |
| Costo Estimado | Premium (Alto) | Económico (Bajo costo por GB) |
| Impacto en Consultas Diarias | Alto (Afecta índices y vistas activas) | Nulo (Consultas mediante FetchXML/Synapse dedicados) |
| Modificación de Esquema | Flexible (Se pueden añadir campos dinámicamente) | Sincronizado (Los cambios de esquema se replican en el archivo) |
| Acceso de Usuarios | Directo desde Formularios, Vistas y APIs estándar | Vistas avanzadas, consultas dedicadas o a través de Power BI |
⚙️ Cómo Funciona el Motor de Retención de Dataverse
El proceso de retención nativo es asíncrono y se ejecuta en segundo plano durante las horas de menor actividad del sistema. Utiliza las siguientes fases:
- Definición del Criterio: El administrador selecciona una tabla raíz (por ejemplo, Casos o Correos Electrónicos) y define una vista o consulta FetchXML que determina qué registros cumplen las condiciones para ser archivados (por ejemplo, statuscode = ‘Resuelto’ y modifiedon < hace 3 años).
- Programación: Se establece la frecuencia con la que se ejecutará la política (semanal, mensual, anual).
- Procesamiento Asíncrono: Dataverse identifica los registros que cumplen las condiciones, copia los datos al almacenamiento de retención seguro y los elimina de forma segura de las tablas transaccionales activas para liberar espacio.
✍️ Ejercicio Práctico: Configurar una Política de Retención para Correos Electrónicos Antiguos
En este ejercicio configuraremos una política para archivar todos los correos electrónicos (tabla Email) que tengan más de 2 años de antigüedad y estén en estado enviado o recibido, liberando espacio crucial de la base de datos.
Paso 1: Acceder al Centro de Administración de Power Apps
Inicia sesión en el portal de creadores de Power Apps y asegúrate de estar en el entorno correcto:
- Ve a make.powerapps.com.
- Selecciona tu entorno de desarrollo o pruebas en la esquina superior derecha.
Paso 2: Localizar la Tabla y Configurar la Retención
- En el menú de navegación de la izquierda, haz clic en Tablas (Tables).
- Busca la tabla de sistema Correo Electrónico (Email) y selecciónala.
- En la barra de herramientas superior, haz clic en la sección de Propiedades o busca la opción de Retención de Datos (Data Retention).
Paso 3: Definir la Política
Configura los parámetros del formulario de retención:
- Nombre de la política: Archivo_Correos_Antiguos_2_Anos
- Criterio de Selección (Vista/FetchXML): Elige crear una nueva consulta. El FetchXML lógico a utilizar filtrará los correos donde la fecha de envío o recepción sea anterior a los últimos 730 días (2 años):
<fetch version="1.0" output-format="xml-platform" mapping="logical">
<entity name="email">
<attribute name="activityid" />
<filter type="and">
<condition attribute="actualend" operator="older-than-x-years" value="2" />
<condition attribute="statecode" operator="in">
<value>1</value> <!-- Completado -->
<value>2</value> <!-- Cancelado -->
</condition>
</filter>
</entity>
</fetch>
Paso 4: Programación y Activación
- Selecciona la frecuencia de ejecución (recomendado: Mensual).
- Define la fecha y hora de inicio de la primera ejecución (se recomienda programarlo para el fin de semana por la noche).
- Haz clic en Guardar y activar.
Paso 5: Validación
Una vez completada la primera ejecución programada, puedes comprobar el estado de la retención accediendo al menú de Configuración avanzada, pestaña de Retención de datos, donde podrás ver cuántos registros fueron movidos exitosamente y el ahorro de almacenamiento estimado.


Deja un comentario