✒️ABAP El Batch Input utilizando Call transaction
ABAP El Batch Input utilizando Call transaction
Batch Input utilizando CALL TRANSACTION
Para la creación de un Batch Input utilizando la técnica de CALL TRANSACTION 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 datos propios del Batch Input
Se declara una tabla interna y una estructura, ambas del tipo BDCDATA, otra tabla interna del tipo BDCMSGCOLL con su estructura, que servirá para almacenar los mensajes que se produzcan cuando se ejecute el CALL TRANSACTION, la tabla interna de la tabla objetivo y una tabla para mostrar por pantalla los errores entre otras declaraciones.
Estructura BDCMSGCOLL: Esta estructura estándar del sistema es utilizada para definir la tabla interna que almacenará los mensajes del Batch Input.
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: 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 y la de los mensajes.
Cuando se ingresa más de un registro se debe manejar indices para saber en que fila de la pantalla se están cargando los datos. Esto se soluciona concatenando el nombre del campo y el número de la fila que le corresponde en la pantalla entre paréntesis.
Paso 4to: Ejecución de la sentencia Call Transaction
Se ejecuta la sentencia CALL TRANSACTION. Las opciones para esta transacción son:
- USING: aquí especificamos la tabla BDCDATA que se utilizará.
- MODE: determina el modo de procesamiento que utilizará el Batch Input. Los modos posibles son:
- A: Procesamiento con la visualización de toso los dympros, este es el valor por defecto.
- E: Procesamiento donde solo se visualizan los dympro si se genera algún error.
Si llega a un breakpoint, termrina el procesamiento:
SY-SUBRC=1001, entonces:
SY-MSGTY=”S”
SY-MSGID=”0”
SY-MSNO=”334”
SY-MSGV1=”SAPMSSY3”
SY-MSGV2=”0131”
- N: Procesamiento donde no se visualizan los dympros.
- P: Procesamiento donde no se visualizan los dympros, pero si se encuantra un breakpoint se pasa el control al debbuger.
Nota: Es conveniente utilizar una variable para asignar el modo de procesamiento a un Batch Input. De esta forma se puede modificar su valor dinámicamente, durante la ejecución del programa.
- UPDATE: Determina el modo de actualización de los cambios que producirá el Batch Input. Los modos posibles son:
- A: Actualización asíncrona. Se actualiza igual a COMMIT WORK AND WAIT
- S: Actualización sincronía. Se actualiza igual a COMMIT WORK AND WAIT
- L: Actualización Local
- MESSAGES INTO: Con el uso de esta opción, todos los mensajes generados durante el procesamiento Batch Input son almacenados en una tabla interna de tipo BDCMSGCOLL. Para armar los mensajes se utiliza la función MESSAGE PREPARE.
Se accede a la transacción SM30 con el nombre de la tabla y se pulsa Actualizar.
Se pulsa en el botón Entradas nuevas. Se introducen los datos en los campos.
Se pulsa Grabar.
Repetimos el acceder a la transacción SM30 todas las veces necesarias para introducir más registros.
Nota: la sentencia CALL TRANSACTION también es muy utilizada en reportes, para acceder a una transacción determinada, a partir de los datos presionados en en pantalla, con el agregado de la cláusula AND SKIP FIRST SCREEN.
 
 
 
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