✒️ABAP El Batch Input utilizando Call transaction
ABAP El Batch Input utilizando Call transaction
MI PRIMER BATCH INPUT UTILIZANDO CALL TRANSACTION
Paso1.Declaracion de datos propios del batch input.
Declaramos una tabla interna y una estructura, ambas del tipo BDCDATA, otra tabla interna del tipo BDCMSGCOLL(Estructura estandar de SAP que se utiliza para almacenar los mensajes resultantes de la ejecucion de un CALL TRANSACTION),con su estructura, que serviran para almacenar los mensajes que se produzcan cuando ejecutemos el CALL TRANSACTION, la tabla interna de usuarios , que contendra los datos que levantemos del archivo de entrada y una tabla para mostrar por pantalla los errores entre otras declaraciones.
Paso2. Lectura de datos de achivo de entrada.
Ejecutamos el metodo CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD para levantar el archivo de entrada con la informacion para generar el Batch Input.
Paso3. Carga de la tabla BDCDATA
Para cargar la tabla BDCDATA utilizamos la subrutina BDC_FIELD.
Como vamos a ingresar mas de un registro , tendremos que manejar indices para saber en que fila de la pantalla estamos cargando los datos. Esto lo solucionamos facilmente, concatenando el nombre del campo el numero de la fila que le corresponde en la pantalla entre parentesis.
Paso4. Ejecucion de la sentencia Call Transaction.
Ahora vamos a ejecutar la sentencia CALL TRANSACTION. Sintaxis.
*call transaction
CALL TRANSACTION v_cod_trans USING ti_bdc_data MODE v_modo
MESSAGES INTO ti_messages.
IF NOT sy-subrc IS INITIAL.
v_error= 'X'.
ENDIF.
Veamos a detalle cada una de las opciones.
USING. aqui especificamos la tabla BDCDATA quese utilizara.
MODE. determina el modo de procesamiento que utilizara el Batch Input. Los modos posibles de procesamiento son:
A.- procesamiento con la visualizacion de todas las pantallas. es el valor por default.(en caso de error el procesamiento se detendra en la pantalla correspondiente al error, una vez identificado y solucionado el error podremos modificar a N)
E.procesamiento donde semuestran las pantallas solo si ocurre un error. Si se alcanza un breakpoint, se determina el procesamiento con SY-SUBRC igual a 1001. El campo SY-MSGTY contendra "S", SY-MSGID contendra "00", SY-MSGNO contendra "344",SY-MSGV1 contendra "SAPMSSY3" y SY-MSGV2 contendra el "0131".
N.procesamiento donde no se muestran las pantallas.
P. procesamiento donde no se muestran las pantallas, si se alcanza un breakpoint, se pasa el controlal debugger.
Es conveniente utilizar una variable para asignar el modo de procesamiento a un Batch Input. De esta forma podremos modificar su valor dinamicamente, durante la ejecucion del programa.
UPDATE. determina el modo de actualizacion de los cambios que producira el Batch Input. Los modos posibles son:
A. Actualizacion asincronica. La actualizacion se produce de igual forma a la que sucede si no utilizamos la sentencia COMMIT WORK AND WAIT. Valor por defecto.
S. Actualizacion sincronica. La actualizacion se produce de igual forma ala que sucede si utilizamos la sentencia COMMIT WORK AND WAIT.
L. Actualizacion local.
MESSAGE INTO.con el uso de esta opcion todos los mensajes generados durante el procesamiento del Batch Input son almacenados en una tabla interna tipo BDCCMSGCOLL. Para armar los mensajes,vamos a utilizar la funcion MESSAGE PREPARE.
La sentencia CALL TRANSACTION tambien es muy utilizada en reportes, para acceder a una transaccion determinada , apartir de los datos presionados en pantalla, con el agregado de la clausula AND SKIP FIRST SCREEN.
 
 
 
Sobre el autor
Publicación académica de Marco Antonio Vazquez Gonzalez, en su ámbito de estudios para la Carrera Consultor ABAP.
Marco Antonio Vazquez Gonzalez
Mexico - Legajo: RB98L
✒️Autor de: 60 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Marco Vazquez