Test Data Wizard

Creado por Marta Paniagua, Modificado el Mar, 5 May a 9:18 A. M. por Marta Paniagua

Disponibles a partir de la versión 9.0.0.1 



Asistente visual de generación automática de datos de prueba. Crea entornos realistas de demostración con empresas, oficinas, empleados, turnos, fichajes y ausencias en menos de 10 segundos.

⚡ 50 empleados + 2 meses histórico en <10s Solo para entornos sin datos reales Soporta LITE y PRO

¿Qué es el Test Data Wizard?

El Asistente de Datos de Prueba es una herramienta visual integrada en Sebastián HR que permite generar de forma automática un entorno realista de demostración. Está pensado para entornos de demo y preventas, nunca para uso en producción con datos reales.

Generación inteligente
Estructuras coherentes, turnos lógicos y fichajes históricos verosímiles
Alto rendimiento
50 empleados + 2 meses de fichajes en menos de 10 segundos
Reversible
Proceso de limpieza automático que devuelve la BD a su estado original
Seguridad
Bloqueo automático si detecta datos reales para evitar corrupción

Acceso y Seguridad

Entorno limpio — Acceso permitido

La base de datos está vacía o casi vacía (IsTestDataLoaded = 0). El wizard muestra el Paso 1 de configuración.

Datos reales detectados — Acceso bloqueado

Existen empleados no marcados como datos de prueba. El wizard muestra pantalla roja de "Acceso Restringido" para prevenir corrupción de datos.

Datos de prueba activos — Modo gestión

Ya existen datos de prueba (IsTestDataLoaded = 1). El wizard salta directamente al Paso 3 mostrando el estado actual y la opción de eliminar.

Flujo del Asistente — 3 Pasos

1 Configuración

1.1 Selección de Sector

Oficinas
Horario fijo mañana/tarde, turnos estándar
Fabricación
Turnos rotativos M/T/N, producción/calidad
Servicios
Turnos partidos o flexibles, comerciales/soporte

1.2 Volumen de Empleados

10 — 200
Slider de empleados (incrementos de 10). Valor por defecto: 50.

1.3 Opciones Estructurales

Multi-empresa: 1 a 5 empresas fiscales distintas
Multi-centro: 1 a 5 oficinas por empresa

1.4 Datos a Generar

Estructura OrganizativaSiempre
Empleados y FichasSiempre
Turnos y CalendariosSiempre
Ausencias DemoSiempre
Fichajes Históricos (2 meses)Opcional
Contratos + PrenóminasSolo PRO
2 Previsualización

Antes de ejecutar, se muestra un resumen de confirmación con todos los datos seleccionados: sector, estructura, volumen, modo (LITE/PRO) y lista de tipos de datos a crear.

Aviso de tiempo: El proceso puede tardar entre 30 y 60 segundos dependiendo del volumen. No cerrar la ventana durante la generación.
Volver
Modificar configuración
Generar Datos
Inicia la generación
3 Resultado y Gestión

 Si la generación es exitosa:

Icono de éxito: "¡Generación Completada!"
Panel de estadísticas:
• Nº empresas creadas
• Nº oficinas creadas
• Nº empleados creados
• Meses de histórico
Código de Lote (Batch ID) para trazabilidad

Acciones disponibles:

 Eliminar Datos
Borra todos los datos de prueba generados (con confirmación previa). Irreversible — el sistema hace rollback automático si falla.
 Finalizar
Cierra el asistente y deja los datos listos para usar en la demostración.
Persistencia de estado: Si el usuario cierra el asistente y vuelve a abrirlo, si ya hay datos de prueba activos salta directamente al Paso 3 mostrando el Batch ID y el conteo real de empleados.

Arquitectura Técnica

CapaComponenteDescripción
Frontendapp_hr_TestDataWizard.htmlInterfaz HTML5/JS del wizard. Gestiona la UX y comunica con el backend mediante procesos Flexygo.
MiddlewareTestDataWizard.csClase C# en Flexygo_HR_Processes. Orquestador que valida licencias y lanza los SPs de generación.
BDpTestScenario_WizardDemoWrapper SQL que gestiona el ciclo de vida del Batch (registro de ejecución) y llama a la lógica core.
CorepTestScenario_InitialSetupProcedimiento almacenado principal con la lógica orquestada de generación de datos.

Factorías de Datos SQL

El sistema utiliza un diseño modular de "Factorías". Cada entidad tiene su propio SP pTestFactory_* que encapsula la lógica de creación aleatoria pero controlada:

pTestFactory_Company / _Office
Estructura legal y física
pTestFactory_Employee
Personas ficticias con datos demográficos realistas
pTestFactory_Shift
Patrones horarios y turnos según el sector elegido
pTestFactory_Marking
Fichajes masivos con lógica Set-Based para máximo rendimiento
pTestFactory_Absences / _Leaves
Absentismo estocástico (vacaciones, bajas, permisos)

Optimizaciones de Rendimiento

Set-Based Operations
Se evitan cursores y bucles WHILE en favor de INSERT INTO ... SELECT masivos y CTEs. Reducción del tiempo de ejecución en ~80%.

Desactivación de Triggers
Durante la carga masiva, se desactivan selectivamente los triggers de tablas críticas (Markings, Employees_Holidays) y se reactivan al finalizar. Reducción del overhead transaccional en ~90%.

Algoritmos Deterministas
El uso de CHECKSUM(NEWID()) permite generar aleatoriedad controlada sin necesidad de llamadas externas costosas.

Proceso de Eliminación (Purge)

El procedimiento pTestCleanup_RemoveTestData borra todos los datos generados de forma segura:

PasoAcción
1Verifica que IsTestDataLoaded = 1
2Elimina datos en orden inverso de dependencia (Hojas → Raíces): fichajes, ausencias, contratos, jornadas, empleados, turnos, grupos, puestos, oficinas, calendarios, empresas
3Validación final: COUNT(*) = 0 en tablas críticas
4Solo si la validación es exitosa: resetea IsTestDataLoaded = 0. Si falla → rollback automático

Resolución de Problemas

Error: "Acceso Restringido"
Causa: Existen empleados (>1) en BD pero IsTestDataLoaded = 0.
Si son datos reales: NO continuar — el wizard está bloqueado intencionalmente.
Si son datos de prueba "sucios": Ejecutar manualmente UPDATE SetApplication SET IsTestDataLoaded = 1 y luego usar el botón "Eliminar Datos" del wizard.
Error: Timeout durante la generación
Causa: Volumen excesivo (>500 empleados) o recursos SQL limitados.
Solución: Reducir volumen de empleados o aumentar CommandTimeout. El proceso está optimizado para no exceder 30s en escenarios estándar (hasta 200 empleados).
Datos inconsistentes tras eliminación
Causa: Fallo en el proceso Purge (ej. FKs nuevas no contempladas).
Diagnóstico: Ejecutar EXEC pTestCleanup_RemoveTestData @DryRun=1 para ver qué objetos quedan pendientes sin borrar nada

¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo