✒️ABAP El concepto de Batch Input
ABAP El concepto de Batch Input
Lección: 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 de datos en SAP de 10,000 clientes. Tendríamos que ingresar 10,000 veces a la transacción maestro de clientes, lo cual sería una tarea demasiado tediosa y sumamente costosa en tiempo.
Algo similar ocurriría si necesitamos ingresar 10,000 registros en una tabla de base de datos, podríamos crear un programa que cargue la información pero sin las validaciones de las transacciones.
Para solucionar estos inconvenientes, SAP introduce la técnica de Batch Input, mediante la cual, podremos 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 como si lo hiciéramos manualmente de a 1 dato por vez.
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á levantando los datos de un archivo, como vimos en la unidad anterior.
ARCHIVOS EXTERNOS ------> PROGRAMA BATCH INPUT ------> SAP
2. Técnicas de Batch Input
Existen dos técnicas para realizar Batch Input, una se realiza de forma Online y la otra en forma Batch.
- 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 SM37. Consiste en la ejecución de una serie de funciones estándar para la apertura, ejecución y cierre del juego de datos.
Como alternativa a las técnicas de carga inicial de datos mediante batch input, existe la técnica DIRECT INPUT o ENTRADA DIRECTA, por medio de ella los módulos de funciones SAP ejecutan las pruebas de consistencia. En el BATCH INTPUT, estos controles de consistencia se ejecutan con ayuda de las pantallas esto significa que el DIRECT INPUT tiene ventajas importantes en cuanto a desempeño en comparación al BATCH INPUT, pero hay pocos programas para realizar DIRECT INPUT y tiene sentido utilizarlos sólo si cumplen con el objetivo del requerimiento. Los programas de DIRECT INPUT, actualizan las tablas de base de datos de SAP de manera directa, como sabemos esto está prohibido ya que los datos estándar de SAP no se pueden actualizar en forma directa ya que 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 de DIRECCT INPUT, sino que debemos utilizar los ya existentes. Pero si se pueden crear programas ABAP Z para actualizar las tablas base de datos Z siempre teniendo en cuenta la consistencia y seguridad de los datos.
SAP ha creado programas de DIRECT INPUT, en un esfuerzo por mejorar los procedimientos de BATCH INPUT, cuya velocidad de procesamiento es muy inferior a la de 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, algunos ejemplos de programas DIRECT INPUT son:
FI-RFBIBL00
MM-RMDATIND
SD-RVAFSS00
AM-RAALTD11
CO-RKEVEXTO
3. Pasos para la creación de un Batch Input
Los pasos para la generación de un Batch Input dependen de la técnica utilizada. Veamos cuales son los pasos a seguir para cada técnica:
CALL TRANSACTION
- Declaración de datos propios del Batch Input.
- Lectura de datos de archivos de entrada.
- Carga de la tabla BDCDATA.
- Ejecución de la sentencia CALL TRANSACTION.
Estructura BDCDATA. Esta estructura estándar del sistema es muy utilizada en los Batch Inputs 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
- Declaración de los datos propios del Batch Input.
- Lectura de datos de archivo de entrada.
- Apertura de la sesión del Juego de Datos.
- Carga de la tabla BDCDATA.
- Inserción del Juego de Datos.
- Cierre de la sesión del Juego de Datos.
- 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.
Programa RSBDCBTC. Este programa 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 mimos campos que la estructura BDCDATA.
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 deben tener 4 dígitos.
El código del ejemplo mostrado está diseñado para dar de alta un solo registro en la tabla de usuarios. Posteriormente veremos como manejar un índice para ingresar más de un registro.
 
 
 
Sobre el autor
Publicación académica de Pedro Alejandro Arroyo Gutierrez, en su ámbito de estudios para la Carrera Consultor ABAP.
Pedro Alejandro Arroyo Gutierrez
Profesión: Gerente de Sistemas - Mexico - Legajo: MC48F
✒️Autor de: 65 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Pedro Arroyo