✒️ABAP El Batch Input utilizando el Juego de datos
ABAP El Batch Input utilizando el Juego de datos
Batch Input utilizando Juego de Datos
Para la creación de un Batch Input utilizando la técnica de Juego de Datos lo primero que se debe hacer es crear un archivo de texto con registros que cumplan con la estructura de la tabla objetivo, sin tener en cuenta el campo mandante. Este archivo se utilizará para realizar la carga inicial de la tabla, y luego se seguirán los siguientes pasos:
Paso 1ro: Declaración de los datos propios del Batch Input
Se declara una tabla interna y una estructura, ambas del tipo BDCDATA y otra tabla inter que contendrá los registros que se obtengan del archivo de entrada.
Paso 2do: Lectura de datos de archivo de entrada
Se ejecuta el método CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD para levantar el archivo de entrada con la info para generar el Batch Input.
Paso 3ro: Apertura de la sesión del Juego de Datos
Para realizar la apertura de la sesión del Juego de Datos, se utiliza la función BDC_OPEN_GROUP, especificando el mandante, el grupo y el campo principal de la tabla BD.
Paso 4to: Carga de la tabla BDCDATA
Para cargar la tabla BDCDATA se utiliza la subrutina BDC_FIELD. Antes se debe inicializar la tabla interna del Batch Input.
Paso 5to: Inserción del Juego de Datos
Para realizar la inserción del Juego de Datos se utiliza la función BDC_INSERT.
Paso 6to: Cierre de la sesión del Juego de Datos
Para cerrar el Juego de Datos se utiliza la función BDC_CLOSE_GROUP.
Paso 7mo: Ejecución del Juego de Datos
Para realizar la ejecución del Juego de Datos se entra a la transacción SM35. Se selecciona el Juego de Datos y se presiona el boón Ejecutar (Process).
En la siguiente ventana de diálogo se marca la opción Invisible (Background) y se presiona Ejecutar (Process).
Finalmente la sesión cambiará de status dependiendo del resultado de la ejecución y los datos se actualizarán en la tabla BD objetivo.
Nota: Las principales diferencias entre las técnicas CALL TRANSACTION y Juego de Datos son: mediante CALL TRANSACTION el procesamiento es síncrono o On Line, mientras que Juego de Datos es asíncrono o de fondo. Mediante CALL TRANSACTION se transfieren datos solo a una transacción, mientras que mediante Juego de Datos se transfiere a múltiples transacciones. Otra diferencia es que CALL TRANSACTION no se generan logs, mientras que Juego de Datos se generan logs por cada sesión.
Utilización del programa RSBDCBTC para la ejecución del juego de datos
Se puede ejecutar el Juego de Datos en forma Online mediante la ejecución del programa estándar RSBDCBTC. Se debe crear un Job, submitir la ejecución del programa RSBDCBTC u cerrar el Job. Ejemplo:
SUBMIT rsbdcbtc
USER sy-uname
VIA JOB v_jobgroup
NUMBER v_jobcount
WITH queue_id = v_qid
WITH mappe = v_jobgroup
WITH modus = 'N'
WITH logall = ''
AND RETURN.
Luego, si se ingresa a la transacción SM35, se verá que el Juego de Datos se procesa sin la necesidad de hacerlo manualmente.
 
 
 
Sobre el autor
Publicación académica de Miguel Mauricio Sierra Cardona, en su ámbito de estudios para la Carrera Consultor ABAP.
Miguel Mauricio Sierra Cardona
Profesión: Ingeniero de Desarrollo E Innovación - Colombia - Legajo: GN43E
✒️Autor de: 61 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Miguel Sierra