✒️ABAP El Batch Input utilizando Call transaction
ABAP El Batch Input utilizando Call transaction
BATCH INPUT USANDO CALL TRANSACTION
CALL TRANSACTION - Es una tecnica para crear un tipo de BATCH INPUT , El objetivo del BATCH INPUT sera la carga inicial de datos de la tabla ZTABLA_USUARIOS.
Para ello se creara un archivo de texto con registros que tenga la estrucrtura de la tabla ZTABLA_USUARIOS, sin tener en cuenta el campo mandante.
- Como se ara la carga inicial de la tabla de usuarios, borraremos su contenido previamente, Ahora se siguen los pasos estabklecidos en la primera unidad.
1- Declaración de datos Propios del BATCH INPUT
-> Declaramos una tabla Interna y una estructura , ambas del tipo BDCDATA, -> Otra tabla Interna del tipo BDCMSGCOLL, , Con su estructura que serviran para almacenar los mensajes que se produzccan cuando ejecutemos el CALL TRANSACTION , -> LA TABLA INTERNA DE USUARIO , QUE CONTENDRA LOS DATOS QUE LEVANTEMOS DEL ARCHIVO DE ENTRADA Y UNA TABLA PARA MOSTRAR POR PANTALLA LOS ERRORES ENTRE OTRAS APLICACIONES.
BDCMSGCOLL - Es una estructura estandar del sistema es utilizada para definir la tabla interna que almacenara los mensajes del BATCH INPUT.
2- LECTURA DE DATOS DE ARCHIVO DE ENTRADA
CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD Se ejecuta este Metodo para levantar el archivo de entrada con la información para generar el BATCH INPUT.
3- CARGAR LA TABLA BDCDATA
Para cargar la tabla BDCDATA utilizamos la subrutina BDC_FIELD, que vimos en la lección anterior, Antes debemos inicializar la tabla interna del BATCH INPUT y la de los mensajes.
Cuando se va a ingresar mas de un registro , tenemos que manejar Indices para saber en que fila de la pantalla estamos cargando los datos, Esto lo solucionamos concatenando el nombre del campo , el numero de fila que le corresponde en la pantalla entre parentesis.
4- EJECUCIÓN DE LA SENTENCIA CALL TRANSACTION
Ahora se ejecuta la sentencia CALL TRANSACTION
Sintaxis:
CALL TRANSACTION v_cod_trans USING ti_bdc_data MODE v_mode
MESSAGES INTO ti_messages.
IF NOT sy-subrc IS INITIAL.
verror = 'X'.
endif
USING - Aqui se especifica la tabla BDCDATA que se usara.
MODE - Determina el modo de procesamiento que utilizara el BATCH INPUT . Los Modos posibles de procesamiento SAOn.
A - Procesamiento con la visualización de todas las pantallas , es el valor por defecto.
E - Procesamiento donde se muestran las pantallas solo si ocurre un error.
N - Procesamiento donde se mostrarn las pantallas .
P - Procesamiento donde no muestran las pantallas
- Es conveniente una variable para asignar el modo de procesamiento a un BATCH INPUT, De esta manera podremos modificar su VAlor dinamicamente , durante la ejecución del programa.
- Cuando se desarrolla un programa que realiza un BATCH INPUT mediante la tecnica de CALL TRANSACTION es sumamente util procesar el Batch Input mediante el modo de ejecución A el cual no permite visualizar cada una de las pantallas ya que en caso de error en los datos que introducimos en la tabla BDCDATA, el procesamiento se detendra en la pantalla correspondiente al error y sera ahi donde tendremos que analizar como solucionarlo , una vez detectado y corregimos el error podemos modificar el modo de ejecución a N.
UPDATE - Determina el modo de actualización de los cambios que producira el BATCH INPUT , los Modos pueden ser:
A - Actualización Asincronica. La actualización se produce de igual forma a la que sucede si no utilizamos la sentencia COMMINT WORK AND WAIT.
S - Actualización Sincronica, 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 - Con el uso de esta Opción, todos los mensajes generados durante el procesamiento del BATCH INPUT son almacenados en una tabla interna de tipo BDCMSGCOLL , para armar los mensajes usamos la función MESSAGE_PREPARE .
- Luego de realizar todos los pasos del BATCH INPUT , ejecutamos con modo procesamiento "A" que nos permitira ver paso a paso las actualizaciones.
- Lo primero es ingresar a la Transaccion SM30 con el nombre de la tabla y presionamos el Boton ACTUALIZAR (MAINTAIN).
-> Boton Entradas Nuevas(New Entries) -> Se cargan todos los campos del registro y presionamos grabar.
-> Salimos de la transacción y repetimos esta secuencia de pasos por cuantos registros de usuario ingresamos a la tabla.
CALL TRANSACTION - Sentencia muy utilizada en reportes para acceder a una transacción determinada a travez de los datos presionados en pantalla, con el agregado de la clausula AND SKIP FIRST SCREEN.
 
 
 
Sobre el autor
Publicación académica de Victor Rodríguez Azcárate, en su ámbito de estudios para la Carrera Consultor ABAP.
Victor Rodríguez Azcárate
Profesión: Ingeniero de Sistemas - Peru - Legajo: AK14S
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Victor Rodríguez