✒️ABAP El Batch Input utilizando el Juego de datos
ABAP El Batch Input utilizando el Juego de datos
Batch input utilizando juego de datos.
El objeto será la carga inicial de datos de la tabla ZTABLA_USUARIOS
Ingresamos un texto que cuente con la estructura de la tabla sin tener en cuenta el campo mandante.
1- Declaración de los datos propios del Batch input.
Declaramos una tabla interna y una estructura ambas del tipo BDCDATA y otra tabla interna que contendrá los registros que levantamos en el archivo de entrada.
* Tabla de usuarios DATA: BEGIN OF ti_archivo OCCURS 0, dni(8) TYPE c, "Dni nombre_ape(35) TYPE c, "Nombre y Apellido estado_usu(1) TYPE c, "Estado del usuario direccion(30) TYPE c, "Dirección codigo_postal(4) TYPE c, "Código Postal f_nacimiento(8) TYPE c, "Fecha Nacimiento estado_civil(1) TYPE c, "Estado civil END OF ti_archivo. DATA: st_archivo LIKE LINE OF ti_archivo. * Variables DATA: v_campo(35) TYPE c, v_indice(2) TYPE c, v_qid TYPE apq_quid, v_group TYPE apq_grpn.2- Lectura de datos de archivos de entrada
Ejecutamos el metodo 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 = 193- Apertura de ls sesión del juego de datos
Vamos a la función BDC_OPEN_GROUP, especificando el mandante, el grupo y el usuario
CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING client = sy-mandt group = v_group keep = 'X' user = sy-uname IMPORTING qid = v_qid EXCEPTIONS client_invalid = 1 destination_invalid = 2 group_invalid = 3 group_is_locked = 4 holddate_invalid = 5 internal_error = 6 queue_error = 7 running = 8 system_lock_error = 9 user_invalid = 10 OTHERS = 11. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.4- Para cargar la tabla BDCDATA
Utilizamos la subrutina BDC_FIELD, antes de inicializar la tabla interna del Batch input.
5- Inserción del Juego de datos
Para la inserción del juego de datos vamos a utilizar la función BDC_INSERT
CALL FUNCTION 'BDC_INSERT' EXPORTING tcode = 'SM30' TABLES dynprotab = ti_bdc_data EXCEPTIONS internal_error = 1 not_open = 2 queue_error = 3 tcode_invalid = 4 printing_invalid = 5 posting_invalid = 6 OTHERS = 7. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ELSE.6- Cierre de la sección del juego de datos
Utilizamos BDC_CLOSE_GROUP
CALL FUNCTION 'BDC_CLOSE_GROUP' EXCEPTIONS not_open = 1 queue_error = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.7- Ejecución del juego de datos
Para realizar la ejecución del juego de datos entramos a SM35. Vamos a seleccionar el juego de datos y lo ejecutamos presionando el botón Ejecutar. En la siguiente ventana de dialogo marcamos la opción invisible (BACKGROUND) y presionamos ejecutar, finalmente la sesión cambiara de status dependiendo del resultado de la ejecución y los datos actualizaran en la tabla ZTABLA_USUARIOS.
Utilización del programa RSBDCBTC para la ejecion del juego de datos
Podemos ejecutar el juego de datos de forma ONLINE mediante la ejecución del programa estándar RSBDCBTC, tenemos que crear un JOB, submitir la ejecución del programa RSBDCBTC y cerrar el JOB.
SUBMIT rsbdcbtc USER sy-uname VIA JOB v_jobgroup NUMBER v_jobcount WITH queue_id = v_qid WITH mappe = v_jobgroup WITH modus = 'N' "No display WITH logall = '' AND RETURN.Si vamos a la transacción SM35, vemos que el juego de datos se proceso sin necesidad de hacerlo manualmente.
 
 
 
Sobre el autor
Publicación académica de Juan Carlos Pavicich, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Carlos Pavicich
Profesión: Técnico Informático - Argentina - Legajo: VR91L
✒️Autor de: 116 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Tengo el agrado de dirigirme a ud/s con el objeto de mencionar mi experiencia y conocimientos técnicos necesarios para desarrollar actividades en el rubro de su empresa.
Certificación Académica de Juan Pavicich