![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP El Batch Input utilizando Call transaction
ABAP El Batch Input utilizando Call transaction
![ABAP El Batch Input utilizando Call transaction ABAP El Batch Input utilizando Call transaction](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/190.jpg)
==> BATCH INPUT (III): Creando un Batch Input con Call Transaction
El objetivo principal es cargar inicialmente una tablar de datos.
- Creamos un archivo de texto con los registros, con una estructura igual que la estructura de la tabla pero sin el mandante. Es decir, con los campos separados por tabulador y los registros en distintas líneas.
- Antes de la carga inicial de la tabla borraremos su contenido.
- Declaramos los datos propios del batch input: una tabla interna y una estructura de tipo BDCDATA, una tabla interna y una estructura de tipo BDCMSGCOLL, la tabla interna de usuarios y una tabla para mostrar por pantalla los errores:
* Tabla interna del batch input con la estructura tipo bdcdata
DATA: BEGIN OF ti_bdc_data OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF ti_bdc_data.
* Estructura tipo bdcdata
DATA: st_bdc_data TYPE bdcdata.
* Tabla interna del batch input con la estructura tipo bdcmsgcoll
DATA: BEGIN OF ti_messages OCCURS 0.
INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF ti_messages.
* Estructura tipo bdcmsgcoll -> es una estructura estándar del sistema utilizada para almacenar los mensajes del batch input.
DATA: st_messages TYPE bdcmsgcoll.
* Tabla interna de usuarios
DATA: ti_archivo TYPE STANDARD TABLE OF ztabla_usuarios,
st_archivo LIKE LINE OF ti_archivo.
* Tabla interna de errores
DATA: BEGIN OF ti_errores OCCURS 0.
dni TYPE z_dni,
descripcion(100) TYPE c,
DATA:END OF ti_errores.
- Ejecutamos el método 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 file_open_error = 1 file_read_error = 2 no_batch = 3 gui_refuse_filetransfer = 4 invalid_type = 5 no_authority = 6 unknown_error = 7 bad_data_format = 8 header_not_allowed = 9 separator_not_allowed = 10 header_too_long = 11 unknown_dp_error = 12 access_denied = 13 dp_out_of_memory = 14 disk_full = 15 dp_timeout = 16 not_supported_by_gui = 17 error_no_gui = 18 OTHERS = 19. - Cargamos la tabla BDCDATA utilizando la subrutina BDC_FIELD, pero antes inicializar las tablas internas del batch input y de los mensajes:
* Cargo datos del usuario PERFORM bdc_field USING 'X' 'SAPLZTABLA_USUARIOS' '0001'. CLEAR v_campo. CONCATENATE 'ZTABLA_USUARIOS-DNI(' v_indice ')' INTO v_campo. PERFORM bdc_field USING ' ' v_campo st_archivo-dni. CLEAR v_campo. CONCATENATE 'ZTABLA_USUARIOS-NOMBRE_APE(' v_indice ')' INTO v_campo. PERFORM bdc_field USING ' ' v_campo st_archivo-nombre_ape. CLEAR v_campo. CONCATENATE 'ZTABLA_USUARIOS-ESTADO_USU(' v_indice ')' INTO v_campo. PERFORM bdc_field USING ' ' v_campo st_archivo-estado_usu. CLEAR v_campo. CONCATENATE 'ZTABLA_USUARIOS-DIRECCION(' v_indice ')' INTO v_campo. PERFORM bdc_field USING ' ' v_campo st_archivo-direccion. CLEAR v_campo. CONCATENATE 'ZTABLA_USUARIOS-CODIGO_POSTAL(' v_indice ')' INTO v_campo. PERFORM bdc_field USING ' ' v_campo st_archivo-codigo_postal. CLEAR v_campo. CONCATENATE 'ZTABLA_USUARIOS-FECHA_NAC(' v_indice ')' INTO v_campo. PERFORM bdc_field USING ' ' v_campo st_archivo-fecha_nac. CLEAR v_campo. CONCATENATE 'ZTABLA_USUARIOS-ESTADO_CIVIL(' v_indice ')' INTO v_campo. PERFORM bdc_field USING ' ' v_campo st_archivo-estado_civil.
- Ejecutamos la sentencia CALL TRANSACTION:
CALL TRANSACTION v_cod_trans USING ti_bdc_data
MODE v_modo
UPDATE v_update
MESSAGES INTO ti_messages.
IF NOT sy-subrc EQ 0.
v_error = 'X'.
ENDIF.
 
 
 
Sobre el autor
Publicación académica de Jose Lopez Partida, en su ámbito de estudios para la Carrera Consultor ABAP.
Jose Lopez Partida
Profesión: Programador. Informático - España - Legajo: BF75R
✒️Autor de: 40 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jose Lopez