✒️ABAP / El Batch Input utilizando Call transaction Por Cristian Arteaga Diaz
ABAP El Batch Input utilizando Call transaction

BATCH INPUT UTILIZANDO CALL TRANSACTION – LECCION 7-4
BDCMSGCOLL, es una estructura estándar SAP que se utiliza para almacenar los mensajes resultantes de la ejecución de un CALL TRANSACTION.
BDCMSGCOLL, esta estructura estándar del sitema es utilizada para definir la tabla interna que almacena los mensajes del batch input.
Los campos que forman parte de esta estructura son los siguientes:
- TCODE ---> Código de transacción
- DYNAME ---> Batch input Nombre del módulo
- DYNUMB ---> Batch input Número de dynpro
- MSGTYP ---> Batch input Clase de mensaje
- MSGSPRA ---> Clave idioma de un mensaje
- MSGID ---> Batch input ID de mensaje
- MSGNR ---> Batch input Número de mensaje
- MSGV1 ---> Parte variable de un mensaje
- MSGV2 ---> Parte variable de un mensaje
- MSGV3 ---> Parte variable de un mensaje
- MSGV4 ---> Parte variable de un mensaje
- ENV ---> Batch input, actividades monitoring
- FLDNAME ---> Nombre campo
Los campos MSGV1, MSGV2, MSGV3, MSGV4 contienen cada uno parte del mensaje.
Podemos utilizar el módulo de funciones FORMAT_MESSAGE para combinar todos estos campos juntos y obtener el mensaje de salida completo.
Veamos un ejemplo:
call function 'FORMAT_MESSAGE'
exporting
id = wa_messages-msgid
lang = sy-langu
no = wa_messages-msgnr
v1 = wa_messages-msgv1
v2 = wa_messages-msgv2
v3 = wa_messages-msgv3
v4 = wa_messages-msgv4
importing
msg = lv_msg
exceptions
not_found = 1
others = 2.
PASOS
1- DECLARACION 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 servirán para almacenar los mensajes que se producen cuando ejecutamos el CALL TRSNSACTION, la tabla interna de usuarios, que contendrá los datos que levantamos del archivo de entrada y una tabla para mostrar por pantalla los errores entre otras declaraciones
2- LECTURA DE DATOS DE ARCHIVOS DE ENTRADA
Ejecutamos el método GUI_UPLOAD para levantar el archivo de entrada con la información para generar el batch input
3- CARGA DE LA TABLA BDCDATA
Para cargar la tabla BDCDATA utilizamos la subrutina BDC_FIELD, antes debemos inicializar la tabla interna del batch input y la de los mensajes
Como vamos a ingresar más de un registro, tendremos que manejar índices para saber en qué fila de la pantalla estamos cargando los datos, esto se soluciona fácilmente, concatenando al nombre del campo el número de fila que le corresponde en la pantalla entre paréntesis
4- EJECUCION DE LA SENTENCIA CALL TRANSACTION
Se ejecuta la sentencia CALL TRANSACTION
USING, aquí se especifica la tabla BDCDATA que se utilizara
MODE, determina el modo de procesamiento que utilizara el bact input, los modelos posibles de procesamientos son
UPDATE, determina el modo de actualización de los cambios que producirá el batch input
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, vamos a utilizar la función MESSAGE_PREPARE
MESSAGE_PREPARE, se utiliza para el armado de mensajes generales en un batch input, este módulo de funciones toma la información de la tabla base de datos estándar de mensajes T100, podemos acceder al módulo de funciones a través de la biblioteca de funciones correspondiente a la SE37
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 pantalla, con el agregado de la cláusula AND SKIP FIRST SCREEN
 
 
 
Sobre el autor
Publicación académica de Cristian Darwin Arteaga Diaz, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Cristian Darwin Arteaga Diaz
Profesión: Abap Developer - Argentina - Legajo: GP81Q
✒️Autor de: 165 Publicaciones Académicas
🎓Cursando Actualmente: Master Funcional ABAP
🎓Egresado de los módulos:
- Master ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Me considero una persona responsable, siempre estoy investigando y capacitandome para adquirir nuevos conocimientos, tengo el gusto de iniciarme en el mundo de abap como desarrollador, es genial.
Certificación Académica de Cristian Arteaga
























