Creació del Script para cargar Catálogos
Fecha: Domingo 14 de junio de 2026
Hora de inicio: 3:35 p.m.
Hora de finalización: 5:05 p.m.
Total de horas trabajadas: 1 h 30 min
El objetivo de esta sesión fue desarrollar el script encargado de leer el archivo XML de catálogos e insertar sus datos en las tablas correspondientes de la base de datos. El archivo XML contiene información inicial necesaria para el funcionamiento del sistema, como los tipos de movimiento, tipos de deducción, jornadas, feriados, tipos de evento, puestos y usuarios.
En este caso, el archivo se encuentra almacenado en
Azure Blob Storage, por lo que el script debía leerlo desde esa ubicación y
posteriormente procesar cada uno de sus nodos.
Actividades
realizadas
3:35 p.m. – 4:00 .m.
Lectura del
archivo XML
Primero revisé la estructura del xml para identificar las rutas de cada catálogo y los
atributos que debía obtener.
Después declaré una variable de tipo XML llamada @xmlDatos.
Para leer el archivo desde Azure Blob Storage
utilicé OPENROWSET junto con el origen de datos BlobStorsge El contenido completo del archivo se obtiene como
un solo bloque y posteriormente se convierte a tipo XML.
Decidí guardar el resultado en una variable para
leer el archivo una única vez y utilizar esa misma información durante todas
las inserciones.
Antes de ejecutar el script también es necesario
abrir la llave maestra de la base de datos, ya que esta permite acceder a las
credenciales configuradas para la conexión con Azure.
4:00 p.m. - 4:45 a.m.
Inserción de los
catálogos
Para obtener los datos del XML utilicé el método .nodes , indicando la ruta correspondiente a cada grupo de elementos. Luego utilicé .values() para extraer los atributos de cada nodo y convertirlos al tipo de dato requerido por las tablas.
Las inserciones se realizaron respetando el orden de
las dependencias entre las tablas.
En el XML, el tipo de movimiento asociado con una
deducción se encuentra almacenado por nombre. Por esta razón fue necesario
realizar un INNER JOIN con TipoMovimiento para obtener su identificador antes de insertar la deducción.
Posteriormente se cargaron los siguientes catálogos:
- Tipos de jornada.
- Feriados.
- Tipos de evento.
- Puestos.
- Usuarios.
- Usuarios administradores.
En la mayoría de los catálogos el identificador se
toma directamente del XML. La excepción es la tabla Puesto, ya que su llave primaria es IDENTITY y SQL Server
genera el identificador automáticamente.
Para UsuarioAmdinistrador se tomaron únicamente los usuarios cuyo tipo fuera igual a 1. Estos
usuarios primero se insertan en la tabla general Usuario y luego en la tabla específica de administradores.
4:45 p.m. - 5:05 p.m.
Verificación de
los datos
Al finalizar las inserciones agregué una consulta de
verificación.
Esta consulta utiliza COUNT(*) sobre cada una de las tablas cargadas y une los resultados mediante UNION ALL.
De esta manera es posible revisar rápidamente si la
cantidad de registros insertados coincide con la cantidad esperada según el
archivo XML.
Las cantidades esperadas eran:
- 8 tipos de movimiento.
- 4 tipos de deducción.
- 3 tipos de jornada.
- 9 feriados.
- 23 tipos de evento.
- 10 puestos.
- 3 usuarios.
- 3 usuarios administradores.
Realicé la ejecución del script y verifiqué que los catálogos incluidos se cargaran correctamente.
Resultado de
la sesión
Durante esta sesión se completó el script de carga
de catálogos desde XML.
El script permite:
- Leer el archivo desde Azure Blob Storage.
- Convertir su contenido al tipo XML de SQL Server.
- Recorrer los nodos mediante .nodes().
- Obtener los atributos mediante .value().
- Insertar los catálogos respetando sus dependencias.
- Resolver por nombre el tipo de movimiento asociado con cada deducción.
- Insertar los puestos utilizando su llave IDENTITY.
- Separar los usuarios administradores en su tabla correspondiente.
- Verificar la cantidad de registros cargados.
El desarrollo fue relativamente sencillo. La parte
que requirió mayor cuidado fue mantener el orden de inserción, ya que algunas
tablas dependían de información que debía existir previamente.
Referencias
- Script de Carga de datos creado en la Tarea 2
Comentarios
Publicar un comentario