✒️ABAP El Batch Input utilizando Call transaction
ABAP El Batch Input utilizando Call transaction
Lección 4. Batch Input utilizando Call Transaction.
1.- Mi primer Batch Input utilizando Call Transaction.
Vamos a crear nuestro primer Batch Input utilizando la técnica de CALL TRANSATION. El objetivo será la carga inicial de datos de la tabla ZTABLA_USUARIOS. Para ello vamos a crear un archivo de texto con registros que cumplan con la estructura de la tabla ZTABLA_USUARIOS si tener en cuenta al campo mandante.
00127982134Eugenia Herrera AGuido 56 167507041979S
Paso 1ro. Declaración de datos propios del batch input.
Declaramos una tabla interna y un estructura, ambas del tipo BDCDATA, otra tabla interna del tipo BDCMSGCOLL con su estructura, que servirán 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 otra declaraciones.
DATA: BEGIN OF ti_bdc_data OCCURS 0. INCLUDE STRUCTURE bdcdata. DATA: END OF ti_bdc_data. * Estructura del BI DATA: st_bdc_data TYPE bdcdata. * Tabla de mensajes DATA: BEGIN OF ti_messages OCCURS 0. INCLUDE STRUCTURE bdcmsgcoll. DATA: END OF ti_messages. * Estructura de mensajes DATA: st_messages TYPE bdcmsgcoll. * Tabla de usuarios DATA: ti_archivo TYPE STANDARD TABLE OF ztabla_usuarios, st_archivo LIKE LINE OF ti_archivo. * Tabla de errores DATA: BEGIN OF ti_errores OCCURS 0, dni TYPE z_dni, descripcion(100) TYPE c, END OF ti_errores.
Estructura BDCMSGCOLL. Esta estructura estándar del sistema es utilizada para definir la tabla interna que almacenara los mensajes del batch input.
Paso 2do: Lectura de datos de archivo de entrada.
Ejecutamos el metido GUI_UPLOAD para levantar el archivo de entrada con la información para generar el Batch Input.
*Se abre el archivo de entrada para lectura CALL METHOD cl_gui_frontend_services=>gui_upload EXPORTING Filename = vl_file filetype = 'ASC' has_field_separator = '' CHANGING data_tab = ti_archivo[] EXCEPTIONS OTHERS = 19.
Paso 3ro: Carga de la tabla BDCDATA.
Para cargar la tabla BDCDATA utilizamos la subrutina BDC_FIELD que vimos en la lección anterior.
Como vamos a ingresar más de un registro, tendremos que manejar índices para saber en que fila de la pantalla estamos cargando los datos.
PERFORM bdc_field USING ' ' v_campo st_archivo-dni. PERFORM bdc_field USING ' ' v_campo st_archivo-nombre_ape. PERFORM bdc_field USING ' ' v_campo st_archivo-estado_usu. PERFORM bdc_field USING ' ' v_campo st_archivo-direccion. PERFORM bdc_field USING ' ' v_campo st_archivo-codigo_postal. PERFORM bdc_field USING ' ' v_campo st_archivo-fecha_nac. PERFORM bdc_field USING ' ' v_campo st_archivo-estado_civil.
Paso 4to: Ejecución de la sentencia Call Transaction.
Ahora ejecutamos la sentencia CALL TRANSACTION, la sintaxis es la siguiente:
*Call transaction
CALL TRANSACTION v_cod_trans USING ti_bdc_data
MODE v_modo
UPDATE v_update
MESSAGES INTO ti_messages.
IF NOT sy-subrv EQ 0.
v_error = ‘X’.
ENDIF.
 
 
 
Sobre el autor
Publicación académica de Juan Hernández, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Hernández
Profesión: Programador Informático - España - Legajo: XQ15K
✒️Autor de: 125 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: PartTime
Certificación Académica de Juan Hernández