✒️ABAP - Batch Input utilizando Juego de Datos

ABAP Batch Input utilizando Juego de Datos

PRIMER BATCH INPUT CON JUEGO DE DATOS

Carga inicial de ZTABLA_USUARIOS. Crear archivo de texto con registros de igual estructura de la tabla, sin mandante. Borrar tabla usuarios previamente a la ejecución.

Paso1- Declaración de datos propios de BI

Declarar tabla interna y estructura de tipo BDCDATA y tabla interna de usuarios:

* Tabla del BI con la estructura de BDCDATA
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 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,
v_jobgroup TYPE btcjobgrp,
v_jobname TYPE btcjob,
v_jobcount TYPE btcjobcnt.

Paso2- Lectura de datos de archivo de entrada

Ejecutar GUI_UPLOAD:

* 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.

Paso3- Apertura de sesión de Juego de Datos

Funcion BDC_OPEN_GROUP, con mandante, grupo y usuario:

v_group = sy-repid.

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.

Paso4- Carga de tabla BDCDATA

Utilizar rutina BDC_FIELD. previamente inicializar tabla interna de BI.

Paso5- Insertar Juego de Datos

Utilizamos 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.
ENDIF.

Paso6- Cerrar sesión de Juego de Datos

Utilizamos función 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.

Paso7- Ejecución de Juego de Datos

Transacción SM35, selección de uego de Datos y Ejecutar (Process).

A continuacion seleccionar Invisible (Background) y Ejecutar (Process).

EJECUCION ONLINE DE JUEGO DE DATOS (RSBDCBTC)

Creación de job, submitir ejecución y cierre de 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.

CALL TRANSACTION vs JUEGO DE DATOS

CALL TRANSACTION: Síncrono (online), Transfiere datos a solo a una transacción, no genera Logs.

JUEGO DE DATOS: Asíncrono (batch), Transfiere datos a multiples transacciones, generta Log por cada sesión.


Sobre el autor

Publicación académica de Juan Ignacio De Tejada Santiago, en su ámbito de estudios para la Carrera Programador ABAP.

SAP Expert

Juan Ignacio De Tejada Santiago

Profesión: Informatico - España - Legajo: NW89P

✒️Autor de: 219 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Certificación Académica de Juan De

 

:: Al igual que Juan ¿Usted está dispuesto a aprender ABAP?

El lunes 10 Mayo 2021 comenzamos la 🎓Carrera Programador ABAP.
Juntos para realizar sus más grandes desafíos!

 Cargando presentación, aguarde unos instantes...

📗 EBOOKS FREE:

Si le interesa la Tecnología SAP, pase por nuestra sección Ebooks Free y descargue uno de los 10 Ebooks libres y gratuitos que hemos desarrollado para compartir juntos.

✒️Más Publicaciones Académicas sobre Tecnología SAP:

Buscador de Publicaciones:


 

🌈Recursos Free

Los mejores recursos Libres y Gratuitos compartidos con la comunidad:

 

 

Consultas y Soporte

👋Hola! ¿Podemos ayudarle con su plan de estudios?

Estamos listos para darle el soporte que su carrera merece mediante un asesoramiento especializado.

Acceda sección contacto y seleccione canal de comunicación más cómodo para usted.

🤝Aguardamos su contacto, Éxitos!