✒️ABAP El concepto de Batch Input
ABAP El concepto de Batch Input
UNIDAD 7: BATCH INPUT vs BAPIS Y TEMAS AVANZADOS
El concepto de Batch Input
1 ¿Qué es un Batch Input?
Cuando se instala una aplicación en un ambiente de producción, es necesario dar de alta toda la información que es indispensable para que pueda funcionar. A este proceso lo llamamos carga inicial de datos.
Supongamos que necesitamos hacer la carga inicial en SAP de 10.000 clientes. Para hacer esto, tendríamos que ingresar 10.000 veces a la transacción maestro de clientes, lo que sería una tarea demasaido tediosa y sumamente costosa en tiempo.
Algo similar ocurriría si necesitamos ingresar 10.000 registros en una tabla de base de datos, ya que si bien en este caso podríamos crear un programa que mediante instrucciones Open SQL carguen los registros, no estaríamos utilizando todas las validaciones estándar que tienen las transacciones SAP, por lo que necesitamos dedicar mucho tiempo para cubrir ese inconveniente.
Para solucionar estos inconvenientes, SAP introduce la técnica del Batch Input, mediante la cual podemos dar de alta, modificar o borrar grandes cantidades de datos en el sistema, de forma automática y utilizando las mismas transacciones con sus respectivas validaciones, tal y como si lo hicieramos manualmente de uno en un dato.
El Batch Input es una técnica automática mediante la cual podremos realizar la carga masiva de datos en el sistema utilizando las validaciones de las transacciones.
Generalmente la carga inicial de datos se realizará cargando los datos de un archivo, tal y como vimos en la unidad anterior.
<< imagen 1.1 >>
2 Técnicas de Batch Input
Existen dos técnicas para realizar un Batch Input. Una se realiza de forma online y la otra de forma batch. Ellas son:
- CALL TRANSACTION: se realiza de forma Online, por lo que ejecuta las actualizaciones en el momento en que se ejecuta el programa del Batch Input. Se utiliza la sentencia estándar CALL TRANSACTION.
- JUEGO DE DATOS: se realiza de forma Batch (o de fondo) y queda almacenado en SAP para su posterior ejecución mediante la transacción SM35. Consiste en la ejecución de una serie de funciones estándar para la apertura, ejecución y cierre del juego de datos.
Audio: Como alternativa a la técnica de carga inicial de datos mediante Batch Input, existe la técnica llamada Direct Input o entrada directa. A través del Direct Input, los módulos de funciones SAP ejecutan las pruebas de consistencia. En el Batch Input, estos controles de consistencia se ejecutan con la ayuda de las pantallas. Esto significa que el Direct Input tiene ventajas importantes en cuanto a performance en comparación al Batch Input, pero hay pocos programas para realizar Direct Input, y tiene sentido utilizarlos solo si cumplen plenamente con el objetivo del requerimiento. Los programas de Direct Input actualizan las tablas de base de datos de SAP en forma directa. Como sabemos esto está prohibido, ya que los datos estándar de SAP no se pueden actualizar de forma directa, ya que de esta forma se pierde la consistencia y la seguridad de los datos. Los programas de Direct Input son la excepción a la regla. Por lo tanto no es posible escribir programas ABAP que hagan uso de Direct Input, sino que debemos solamente utilizar los existentes, pero por su puesto que si se pueden escribir programas SAP para actualizar las tablas base de datos Z siempre teniendo en cuenta la consistencia y la seguridad de los datos. SAP ha creado programas de Direct Input en un esfuerzo por querer mejorar los procedimientos de Batch Input cuya velocidad de procesamiento es muy inferior al Direct Input. La técnica de Direct Input es ideal para la transferencia de grandes cantidades de datos: Para mantener e iniciar estos programas, se utiliza la transacción estándar BMV0. Ejemplos de programas de Direct Input son: para el módulo financiero o FI el programa RFBIL00, para el módulo de gestión de materiales o MM el programa estándar MDATIND, para el módulo de Sales and Distribution SD el programa estándar RVAFSS00, para el módulo de administración de activos ASM el programa estándar RAALTD11, y para el módulo de controling CO el programa estándar RKEVEXTO.
3 Pasos para la creación de un Batch Input
Los pasos para la generación de un Batcvh Input dependen de la técnica utilizada. Veamos cuáles son los pasos a seguir para cada técnica:
CALL TRANSACTION
1.- Declaración de datos propios del Batch Input.
2.- Lectura de datos de archivo de entrada.
3.- Carga de la tabla BDCDATA.
4.- Ejecución de la sentencia CALL TRANSACTION.
La Estructura BDCDATA, estructura estándar del sistema, es muy utilizada en los Batch Input ya que define el tipo de datos de la tabla interna que almacena los datos que se cargarán en el Batch Input.
JUEGO DE DATOS
1.- Declaración de datos propios del Batch Input.
2.- Lectura de datos de archivo de entrada.
3.- Apertura de la sesión del Juego de Datos.
4.- Carga de la tabla BDCDATA.
5.- Inserción del Juego de Datos.
6.- Cierre de la sesión del Juego de Datos.
7,. Ejecución del Juego de Datos a través de la transacción SM35 o a través de la creación de un job y la ejecución del programa estándar RSBDCBTC.
El programa RSBDCBTC, estándar del sistema, nos permite realizar la ejecución online de un juego de datos.
4 Carga de la tabla BDCDATA
El paso más importante en la ejecución de un Batch Input es la carga de la tabla BDCDATA.
Tal como hacemos referencia, la tabla BDCDATA será una tabla interna que tendrá los mismos campos que la estructura BDCDATA. Los campos que forman parte de esta estructura son:
<< imagen 4.1 >>
Veamos une jemplo sencillo de cómo cargaríamos la tabla BDCDATA. Supongamos que queremos hacer un Batch Input para cargar un registro a nuestra tabla de usuarios ZTABLA_USUARIOS.
Si ejecutamos esta acción de forma manual, deberíamos hacer lo siguiente:
- Ingresar a la transacción SM30, introducir el nombre de la tabla, presionar el botón de modificación o "Maintain", presionar el botón de nuevas entradas o "New entries", introducir el contenido del registro con todos sus campos, presionar el botón grabar y salir de la transacción.
SI representamos en código el procedimiento anteriormente escrito, escribiríamos:
Para ingresar a la primera pantalla y presionar el botón de mantenimiento:
<< imagen 4.2 >>
Por cada vez que se ingrese en la tabla BDCDATA una nueva pantalla, debe ingresarse un BDC_OKCODE. Los números de las dynpros siempre tienen 4 dígitos.
Después, al presionar el botón de nuevas entradas:
<< imagen 4.3 >>
A continuación ingresamos los datos del registro de usuario. En la imagen que vemos a continuación no figuran todos los campos de la tabla de usuarios:
<< imagen 4.4 >>
Nota: EL código anterior está diseñado para dar de alta un solo registro en la tabla de usuarios. Si quisiéramos ingresar más de un registro, vamos a tener que manejar un índice, tal y como veremos en las próximas lecciones.
Por último, grabamos y salimos de ambas pantallas:
<< imagren 4.5 >>
En la próxima lección veremos como hacer para obtener los datos para completar la tabla BDCDATA.
 
 
 
Favorito:
Está publicación ha sido agregada a sus favoritos por: Lorena Amoretti
Sobre el autor
Publicación académica de José Antonio Saavedra Rodríguez, en su ámbito de estudios para la Carrera Consultor ABAP.
José Antonio Saavedra Rodríguez
El Salvador - Legajo: SX28V
✒️Autor de: 166 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Avanzado
- Carrera Consultor en SAP SD Nivel Inicial