✒️ABAP El concepto de Batch Input
ABAP El concepto de Batch Input
1 - DEFINICION DE BATCH-INPUT.
Un 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.
Otra definición alternativa seria:
Un ”batch-input” es un método seguro, fiable y rápido de transferir grandes cantidades de datos a un sistema SAP, para hacer muchas altas, modificaciones o borrados. Se simula un proceso on-line (transacción donde interacciona el usuario), para someter a los datos a todos los chequeos y validaciones que sufrirían si se metieran manualmente, para salvaguardar la integridad de los mismos (cosa que no ocurriría con un MODIFY directo a una tabla del D.D., eso es lo importante de los batch-inputs). Pero en cambio no requieren interacción.
2 - TECNICAS DE BATCH-INPUT.
Hay 2 métodos de batch-input: “clásico” y “call transaction”:.
- En el método “clásico” se genera una “sesión batch-input”. Se tiene un fichero con los datos, y un programa Abap/4 de conversión que crea la sesión (datos, pantallas, transacciones, comandos, .. es un juego de datos), que simulan la existencia de un usuario que introduciría los datos), que se almacena y se puede procesar (de. Este método es asíncrono: se procesan los datos ahora pero se actualizan más tarde hecho se procesa con la SM35).. Permite múltiples transacciones. Se genera un log para cada sesión, pero no se pueden generar en paralelo desde el mismo programa (sólo puede abrirse un juego de datos cuando se cierra el anterior).
- En el método “call transaction” los datos se crean on-line al ejecutar el programa de conversión, en lugar de crear una sesión. Es mucho más rápido, pero poco útil para gran cantidad de datos (se perderían datos si hay errores, pues no se guardan en la sesión batch-input). Se usa para dar de alta rápidamente pocos datos. Es un método síncrono, válido para una transacción, rápido, pero no se genera log, ni pueden tratarse errores a posteriori.
Como alternativa existe la tecnica Direct Input. que es más rápida, pero actualiza directamente en las tablas del éstandar, sin realizar las validaciones que poseen las transacciones del éstandar con el riesgo que ello en la integridad de las mismas. Por esto, SAP, ha creado programas estandar por módulo:
FI (Finanzas): RFBIBL00
MM (Gestión Materiales): RMDATIND
Etc……..
3 - PASOS PARA LA CREACION DE UN BATCH INPUT.
A - CALL TRANSACTION.
- Declarar datos propios del Batch Input.
- Lectura datos de archivo de entrada.
- Carga de la tabla BDCDATA.
- Ejecución sentencia CALL TRANSACTION.
En el programa hay que declarar (para ambos métodos de batch-input) una tabla interna con una estructura especial para ir guardando en ella toda la información anterior, que estructura los datos a transferir. Es como un registro de todas las pantallas y campos por los que va a ir avanzando la simulación de la transacción. Debe tener la misma estructura de la estructura SAP del Diccionario de Datos llamada BDCDATA:
DATA BEGIN OF tabla OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA END OF tabla.
B - JUEGO DE DATOS.
- Declarar datos propios del Batch Input.
- Lectura datos de archivo de entrada.
- Apertura de la sesión del Juego de Datos
- Inserción del juego de datos
- Cierre de sesión del juego de datos
- Ejecución del juego de datos a través de la transacción SM35 o a traves de la creación de un job y la ejecución del programa éstandar RSBDCBTC
4 - CARGA DE LA TABLA BDCDATA.
- Los campos que componen esta tabla / estructura son 5: PROGRAM (8 caracteres. Nombre del module pool de la transacción), DYNPRO (4 caracteres. Su número), DYNBEGIN(1 carácter. Una 'X' indica nueva pantalla), FNAM(35 caracteres. Nombre del campo de la pantalla), FVAL (80 caracteres. Valor para dicho campo de la pantalla). Hay que guardar una entrada por cada dynpro, rellenando PROGRAM, DYNPRO y DYNBEGIN, y luego usar APPEND. Y por cada campo de pantalla que se use en la transacción hay que guardar otra entrada, rellenando los campos FNAM y FVAL, y luego usar APPEND o COLLECT.
- Relleno de esta tabla: Para indicar nueva pantalla (o la primera), guardar el nombre del programa (en PROGRAM), nº dynpro (en DYNPRO) y ‘X’ en DYNBEGIN (los otros 2 campos en blanco) Y para cada campo de esa pantalla rellenar su nombre técnico (en FNAM) y su valor (en FVAL), que es uno de los datos a transferir al sistema. En la última entrada de por cada pantalla (salvo la última) se guarda el comando BDC_OKCODE en FNAM, y en FVAL el código para pasar a la pantalla siguiente, como ‘EXIT’, ‘/2’ (para F2), ..
 
 
 
Sobre el autor
Publicación académica de Francisco Javier Gomez Jimenez, en su ámbito de estudios para la Carrera Consultor ABAP.
Francisco Javier Gomez Jimenez
Profesión: Consultor Junior - España - Legajo: KW17D
✒️Autor de: 200 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP MM Nivel Avanzado
- Carrera Consultor en SAP MM Nivel Inicial