✒️ABAP El Batch Input utilizando Call transaction
ABAP El Batch Input utilizando Call transaction
BATCH INPUT UTILIZANDO CALL TRANSACTION
Se creará un Batch Input utilizando la técnica CALL TRANSACTION que será la carga inicial de datos de la tabla. Previamente se borrarán los datos que habían . Los pasos para crear el Batch Input son:
- Declaración de datos propios del batch input. Hay que definir una tabla interna y una estructura de tipo BDCDATA y una tabla interna del tipo BDCMSGCOLL con su estructura para almacenar los mensajes que se produzcan cuando ejecutemos el CALL TRANSACTION, la tabla interna de usuarios, que contendrá los datos que levantemos del archivo de entrada y una tabla para mostrar por pantalla los errores entre otras declaraciones.La estructura BDCMSGCOLL es una estructura estándar del sistema que es utilizada para definir la tabla interna que almacenará los mensajes del batch imput.
- Lectura de datos de archivo de entrada. Ejecutamos el método GUI_UPLOAD para levantar el archivo de entrada con la información para generar el Batch Input.
- Carga de la tabla BDCDATA. Utilizamos la subrutina BDC_FIELD para cargar la tabla BDCDATA. Para ello antes hay que inicialiazar la tabla interna del Batch Input y la de los mensajes.Como vamos a introducir más de un registro, debemos manejar índices para saber en qué fila de la pantalla estamos cargando los datos. (concatenamos el número de la fila entre paréntesis).
- Ejecución de la sentencia Call Transaction. Opciones de la call transaction:
- USING: Aquí especificamos la table BDCDATA que se utilizará.
- MODE: Modo de procesamiento que utilizará el Batch Input. Los modos posibles son:
- A: Procesamiento con la visualización de todas las pantallas. Es el valor por default.
- E: Porcesamiento donde se muestran las pantallas solo si ocurre un error. Si se alcanza un breakpoint, se termina el procesamiento con SY-SUBRC igual a 1001. El campo SY-MSGTY contendrá “S”. SY-MSGID contrandrá “00”, SY-MSGNO contendrá “344”, SY-MSGV1 contendrá “SAPMSSY3” y SY-MSGV2 contendrá el “0131”
- Procesamiento donde no se muestran las pantallas
- Procesamiento donde no se muestran las pantallas, si se alcanza un breakpoint, se pasa el control al debugger.
Es conveniente utilizar una variable para asignar el modo de procesamiento a un Batch Input. De esta forma se podrá modificar su valor dinámicamente, durante la ejecución del programa.
- UPDATE: determina el modo de actualización de los cambios que producirá el BI. Modos posibles:
- A: Actualización asincrónica. La actualización se produce de igual forma a la que sucede si utilizamos la sentencia COMMIT WORK. Valor por defecto
- S: Actualización Sincrónica. La actualización se produce de igual forma a la que sucede si utilizamos la sentencia COMMIT WORK AND WAIT.
- L: Actualización Local.
- MESSAGES INTO: se utiliza para que todos los mensajes generados durante el procesamiento del BI sean almacenados en la tabla interna del tipo BDCMSGCOLL. Para armar los mensajes se utiliza la función MESSAGE_PREPARE
Ejecutar el Batch Input con modo de procesamiento “A” permite ver el paso a paso de las actualizaciones, para ingresar, vamos a la SM30 con el nombre de la tabla y presionamos el botón actualizar (Maintain), luego “entradas nuevas” (New entries). Se cargan todos los campos del registro y presionamos grabar. Finalmente salimos de la transacción y repetimos esta secuencia de pasos por cuantos registros de usuario ingresemos en la tabla.
 
 
 
Sobre el autor
Publicación académica de Felipe Estepa Quintero, en su ámbito de estudios para la Carrera Consultor ABAP.
Felipe Estepa Quintero
Profesión: Tecnologo en Gestion Logistica - Colombia - Legajo: QH16V
✒️Autor de: 118 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Felipe Estepa