7.6. - Batch Input utili8zando Juego de Datos
7.6.1. - Mi primer Batch Input utilizando juego de datos
El objetivo del Batch Input será la carga inicial de datos de la tabla Usuarios. Para ello, hay que crear un archivo de texto con registros que cumplan con la estructura de la tabla Usuarios, sin tener en cuenta al campo mandante. Se realizará una carga inicial de la tabla usuarios, por lo que se borrará el contenido antes de la ejecución del ejemplo.
EJ ARCHIVO DE CARGA DE USUARIOS
00121567432Joaquin Perez ALarreo Alvarez 3454 134512081967S
00131987623Barbara Pereira ALavalleja 543 145623091987S
00127982134Eugenia Herrera AGuido 56 167507041979S
1er Paso: Declaración de datos propios del batch input
Hay que declarar una tabla interna y una estructura, ambas del tipo BDCDATA y otra tabla interna de usuarios que contendrá los registros que se añadan del archivo de entrada.
2º Paso: Lectura de datos de archivo de entrada
Se ejecutará el método “GUI_UPLOAD”, de la clase “CL_GUI_FRONTEND_SERVICES”, para levantar el archivo de entrada con la información para generar el batch input.
3er Paso: Apertura de la sesión del Juego de Datos
Para realizar la apertura de la sesión del Juego de Datos, hay que utilizar la función “BDC_OPEN_GROUP”, especificando el mandante, el grupo y el usuario.
4º Paso: Carga de la tabla BDCDATA
Se utilizará la subrutina BDC_FIELD. Antes se debe inicializar la tabla interna del batch input.
5º Paso: Inserción del juego de datos
Para insertar el juego de datos, hay que utilizar la función “BDC_INSERT”.
6º Paso: Cierre de la sesión del juego de datos
Para cerrar el juego de datos, hay que utilizar la función “BDC_CLOSE_GROUP”.
7º Paso: Ejecución del juego de datos
Para ejecutar el juego de datos, hay que acceder a la transacción SM35. Hay que seleccionar el juego de datos y ejecutarlo pulsando el botón “Ejecutar (Process)”.
En la siguiente ventana de diálogo, hay que marcar la opción “Invisible (Background)” y ejecutar.
Por último, la sesión cambiara de status dependiendo del resultado de la ejecución y los datos se actualizarán en la tabla de usuarios.
Diferencias entre Call transaction y juego de datos
1. Call transaction
a. Procesamiento síncrono, online
b. Transferencia de datos a una transacción
c. No se generan logs
2. Juego de datos
a. Procesamiento asíncrono, de fondo.
b. Transferencia de datos a múltiples transacciones.
c. Se generan logs por cada sesión.
7.6.2. - Utilización del programa RSBDCBTC para la ejecución del juego de datos
Se puede ejecutar el juego de datos de forma online mediante la ejecución del programa estándar “RSBDCBTC”. Para hacerlo, hay que crear un job, enviar la ejecución del programa “RSBDCBTC” y cerrar el job.
En la transacción SM35 se puede comprobar que el juego de datos se procesó sin necesidad de hacerlo manualmente.