✒️ABAP El concepto de Batch Input
ABAP El concepto de Batch Input
BATCH INPUT
Cuando se instala una aplicación en productivo es necesario dar de alta toda la información indispensable para que la empresa pueda funcionar (proceso de migración de dalos o conversión).
Generalmente todos estos datos maestros ya están en el antiguo sistema informático. Por lo tanto lo ideal será disponer un mecanismo que permita trasladar los datos de un sistema a otro.
A la hora de la migración de datos de un sistema externo a SAP, existen dos posibilidades:
- Realizar programas que llenen todas las bases de datos SAP involucradas, mediante instrucciones directas de SAP-SQL.
- Utilizar la técnica del Batch Input de SAP.
Para muchas transacciones, la primera de las opciones es inviable, debido a la complejidad de la estructura de datos SAP y para mantener la integridad de la misma la cantidad de validaciones que se deberían realizar sobre los datos de entrada sería enorme. Como consecuencia, tanto el costo en diseño, codificación y pruebas sería altísimo.
La técnica de los Batch Input de SAP permite realizar todas las verificaciones automáticamente, con un costo en diseño y desarrollo mínimo.
Un Batch Input es una utilidad de SAP para transferir información de forma segura, fiable y automatizada hacia el sistema. Para ello simula mediante un proceso Batch la introducción de datos en el sistema vía transacción online. Suele utilizarse cuando deben realizarse un elevado número de altas, modificaciones o borrados. El funcionamiento no es complicado si se sabe lo que se ha de hacer. Su codificación suele ser bastante larga. El área del Batch input está disponible desde cualquier punto de SAP ya que está en el menú System (accesible desde cualquier transacción) - System->Services->Batch Input.
O directamente con sus transacciones:
- Sessions -> SM35.
- Log -> SM35P
- Recorder -> SHDB
Para garantizar la integridad del sistema, los datos son sometidos a controles de validación y a las mismas operaciones de base de datos en SAP como si fueran introducidos manualmente uno por uno por el usuario. Es decir, realmente la técnica del Batch Input consiste en simular repetidamente un proceso online (transacción), durante un proceso Batch.
El proceso de carga de datos se realiza en dos fases:
Fase de Generación: A partir de una fuente de información como puede ser un fichero de entrada, donde estarán todos los datos que queremos cargar en SAP, se transformaran estos datos en un formato determinado, para almacenarlo en una estructura de SAP que se llamará fichero de colas.
Fase de Proceso: A partir de la información grabada durante la fase de generación en el fichero de colas, se cargarán los datos físicamente en la base de datos.
Con la técnica del Batch Input, se realiza una simulación del diálogo del usuario con la máquina, es decir se hará exactamente lo mismo, con la única diferencia de que la entrada de datos en vez de ser manual, será automática a partir de un fichero de colas.
El programa de Batch Input leerá el fichero secuencial y transformará los datos a un formato determinado, para almacenarlos en una entrada del fichero de colas. Dichas entradas se denominan sesiones. Cada programa de Batch Input genera una sesión. Estas sesiones pueden contener una o múltiples transacciones. El programa de Batch Input debe preparar los datos para cada uno de los pasos de diálogo de la transacción.
TÉCNICAS DE BATCH INPUT
Un batch input es un proceso en dos pasos que empieza exportando o transfiriendo los datos desde un sistema origen según el método de transferencia elegido, "batch input" clásico o "Call Transaction Using Call Dialog", y las instrucciones que proporciones en un programa de computadora de transferencia de datos especial. Aunque cada uno completa el proceso de transferencia de forma distinta, los dos transfieren los datos a una estructura común llamada "Batch Data Input Structure" (estructura de entrada de datos por lotes) o BDCDATA. Dependiendo del método de transferencia usado, BDCDATA mantiene los datos para la entrada posterior o la introducción en tu base de datos de SAP tiene lugar inmediatamente.
JUEGO DE DATOS - Batch input clásico
El batch input clásico, o CBI, permite ejecutar un programa de transferencia de datos varias veces y almacenar los resultados, llamados transacciones, dentro del BDCDATA en "sesiones" para un procesamiento posterior mediante la transacción SM37. La actualización puede tener lugar en primer plano pero suele ocurrir en segundo plano mientras otros programas se ejecutan. Aunque es más lento, el CBI es más adecuado para transferir grandes cantidades de datos y debido a que CBI genera un registro de proceso de batch input para cada sesión de entrada y ofrece soporte para encontrar y corregir los errores de proceso.
CALL TRANSACTION - Online
"Call Transaction Using Call Dialog" transfiere y procesa los datos para una única transacción o cada vez que se ejecuta el programa de aplicación de la transferencia de datos. A media que llegan los datos al BDCDATA, el procesamiento tiene lugar inmediatamente, que consiste en escribir los datos y actualizar la base de datos de SAP. Debido a esto, "Call Transaction" es adecuado para transferir pequeñas cantidades de datos. Además, no genera registros de procesos de "batch input", lo que quiere decir que no hay soporte para encontrar y corregir los errores de proceso y se debe proporcionar una detección de errores explícita y tratar las instrucciones dentro del programa de transferencia de datos.
DIRECT INPUT
Existen estandares creados a la medida para empresas, cuya función consiste en pasar Batch Input, al ejecutar una transacción determinada. Tambien se pueden llamar mediante un SUBMIT desde un ABAP creado para tal efecto, que carga un fichero con los datos elegidos. Algunos progrmas estandar son:
Maestro de materiales:
- RMMHBIMZ
- RMDATGEN
- RMDATIND
En el caso del DIRECT INPUT las estructuras deben estar llenas, esto significa que los campos no actualizados también se deben informar con '/' aunque se usan includes que ya tienen estos casos previstos.
CARGA DE LA TABLA BDCDATA
Antes de escribir el código para el batch input, hay que obtener la información necesaria para su realización. Para ello hay que simular paso a paso la función de la aplicación que se quiere, la información de PROGRAM, DYNPRO, FNAM (nombre de campo para Batch Input) y TCODE, se obtendrá del menú "Sistema", "Status", "Información técnica".
El proceso a seguir para llenar la tabla BDCDATA es.
- PROGRAM, DYNPRO, DYNBEGIN.
- FNAM, con el nombre del campo de DYNPRO a tratar, FVAL el nuevo valor.
- Repetir el paso 2 tantas veces como sea necesario.
- DBC_OKCODE código de la terminación para pasar al siguiente estado: /0 intro /11 grabar /nn ->PF nn.
Los números de las DYNPRO deben contener 4 digitos.
 
 
 
Sobre el autor
Publicación académica de Sergio Armando Beltran Castaneda, en su ámbito de estudios para la Carrera Consultor ABAP.
Sergio Armando Beltran Castaneda
Profesión: Ingeniero de Sistemas con Especialización en Gerencia de Proyectos - Colombia - Legajo: WK55K
✒️Autor de: 70 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Soy ingeniero de sistemas desde hace mas de 10 años y quiero enfocarme en el mundo sap, iniciando en el lenguaje abap, con miras a ampliar mi conocimiento profesional y laboral.
Certificación Académica de Sergio Beltran