🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP El Batch Input utilizando el Juego de datos

ABAP El Batch Input utilizando el Juego de datos

ABAP El Batch Input utilizando el Juego de datos

Batch Input with Data Set

This program guides through the process of batch input with a dataset. It involves the following steps:

  • Step 1 - Declaration of Batch Input Specific Data: The data type TY_BDCDATA is declared, and with that type, the internal table and the structure BDCDATA are declared. Additionally, another internal table is declared to contain the records that will be read from the input file

* Internal table for BI with the structure of BDCDATA
TYPES: BEGIN OF ty_bdcdata,
program TYPE bdc_prog,
dynpro TYPE bdc_dynr,
dynbegin TYPE bdc_start,
fnam TYPE fnam_____4,
fval TYPE bdc_fval,
END OF ty_bdcdata.

* Internal table and structure for BI
DATA: ti_bdcdata TYPE STANDARD TABLE OF ty_bdcdata,
wa_bdcdata TYPE bdcdata.

* Internal table for users
DATA: ti_archivo TYPE STANDARD TABLE OF ztabla_usuarios,
wa_archivo LIKE LINE OF ti_archivo.

  • Step 2 - Reading data from the input file: involves executing the GUI_UPLOAD method within the CL_GUI_FRONTEND_SERVICES class to load the input file containing the information necessary for generating the batch input.

*&---------------------------------------------------------------------*
*& Form upload_input_file
*&---------------------------------------------------------------------*
*& Uploads the selected input file from the file system to the internal
*& table for further processing.
*&----------------------------------------------------------------------*
FORM upload_input_file.

DATA: lv_file TYPE string.

IF p_path IS INITIAL.
MESSAGE s000(z_prueba) WITH TEXT-003.
ELSE.

lv_file = p_path.

* Open the input file for reading
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = lv_file
filetype = 'ASC'
has_field_separator = ''
CHANGING
data_tab = it_input_file[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
OTHERS = 19.

IF sy-subrc NE 0.
MESSAGE e000(z_test) WITH TEXT-004.
ENDIF.

IF it_input_file[] IS INITIAL.
MESSAGE s000(z_test) WITH TEXT-005.
ENDIF.
ENDIF.
ENDFORM. " upload_input_file

  • Step 3 - Opening the dataset session: To open the dataset session, we will use the function module BDC_OPEN_GROUP specifying the client, group, and user.

*&---------------------------------------------------------------------*
*& Form OPEN_DATASET_SESSION
*&---------------------------------------------------------------------*
* This form opens the dataset session.
*----------------------------------------------------------------------*
FORM open_dataset_session.

v_group = sy-repid.

* Call function module BDC_OPEN_GROUP to open
* the dataset session, specifying client, group, and user.
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.

ENDFORM. " OPEN_DATASET_SESSION

  • Step 4 - Loading the BDCDATA internal table: To load the BDCDATA internal table, we will use the subroutine FILL_BDCDATA_TABLE. Before that, we need to initialize the Batch Input internal table.

*&---------------------------------------------------------------------*
*& Form fill_bdcdata_table
*&---------------------------------------------------------------------*
* Fills the BDCDATA internal table with the required data for BDC processing.
* Parameters:
* - p_dynpro: Indicates whether it's a dynpro (X) or a field value (blank).
* - p_field1: First field value.
* - p_field2: Second field value.
*----------------------------------------------------------------------*
FORM fill_bdcdata_table USING p_dynpro TYPE c
p_field1
p_field2.
CLEAR wa_bdcdata.

IF p_dynpro EQ c_x.
wa_bdcdata-dynbegin = p_dynpro.
wa_bdcdata-program = p_field1.
wa_bdcdata-dynpro = p_field2.
ELSE.
wa_bdcdata-fnam = p_field1.
wa_bdcdata-fval = p_field2.
ENDIF.

APPEND wa_bdcdata TO it_bdcdata.

ENDFORM. " fill_bdcdata_table

*&---------------------------------------------------------------------*
*& Form LOAD_BDCDATA_TABLE
*&---------------------------------------------------------------------*
*& Description: Loads data into BDCDATA table for SAP transaction.
*&---------------------------------------------------------------------*

FORM load_bdcdata_table .
CLEAR: ti_bdcdata, ti_messages.
REFRESH: ti_bdcdata, ti_messages.

* Navigate to the initial screen and press the maintenance button.
PERFORM fill_bdcdata_table USING 'X' 'SAPMSVMA' '0100'.
PERFORM fill_bdcdata_table USING ' ' 'VIEWNAME' 'ZTABLE_USERS'.
PERFORM fill_bdcdata_table USING ' ' 'BDC_OKCODE' '=UPD'.

* Click on the new entries button.
PERFORM fill_bdcdata_table USING 'X' 'SAPLZTABLE_USERS' '0001'.
PERFORM fill_bdcdata_table USING ' ' 'BDC_OKCODE' '=NEWL'.

ADD 1 TO v_index.
PERFORM complete_leading_zeros.

* Load user data.
PERFORM fill_bdcdata_table USING 'X' 'SAPLZTABLE_USERS' '0001'.

CLEAR v_field.
CONCATENATE 'ZTABLE_USERS-DNI(' v_index ')' INTO v_field.
PERFORM fill_bdcdata_table USING ' ' v_field wa_file-dni.

CLEAR v_field.
CONCATENATE 'ZTABLE_USERS-NAME_LASTNAME(' v_index ')' INTO v_field.
PERFORM fill_bdcdata_table USING ' ' v_field wa_file-name_last.

CLEAR v_field.
CONCATENATE 'ZTABLE_USERS-USER_STATE(' v_index ')' INTO v_field.
PERFORM fill_bdcdata_table USING ' ' v_field wa_file-user_state.

CLEAR v_field.
CONCATENATE 'ZTABLE_USERS-BIRTHDATE(' v_index ')' INTO v_field.
PERFORM fill_bdcdata_table USING ' ' v_field wa_file-birthdate.

* Save the records.
PERFORM fill_bdcdata_table USING ' ' 'BDC_OKCODE' '=SAVE'.

* Close the second screen.
PERFORM fill_bdcdata_table USING 'X' 'SAPLZTABLE_USERS' '0001'.
PERFORM fill_bdcdata_table USING ' ' 'BDC_OKCODE' '=ENDE'.

* Close the initial screen.
PERFORM fill_bdcdata_table USING 'X' 'SAPMSVMA' '0100'.
PERFORM fill_bdcdata_table USING ' ' 'BDC_OKCODE' '/EENDE'.

ENDFORM. " LOAD_BDCDATA_TABLE"

  • Step 5 - Inserting the dataset: To perform the dataset insertion, we will use the function module BDC_INSERT.

*&---------------------------------------------------------------------*
*& Form INSERT_DATASET
*&---------------------------------------------------------------------*
* This form inserts the dataset.
*----------------------------------------------------------------------*
FORM insert_dataset.

CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = c_sm30
TABLES
dynprotab = ti_bdcdata
EXCEPTIONS
internal_error = 1
not_open = 2
queue_error = 3
tcode_invalid = 4
printing_invalid = 5
posting_invalid = 6
OTHERS = 7.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
* The dataset has been launched, verify it in transaction SM35.
MESSAGE s000(z_prueba) WITH text-010 text-011.
ENDIF.

ENDFORM. " INSERT_DATASET

  • Step 6 - Closing the dataset session: To close the dataset session, we will use the function module BDC_CLOSE_GROUP.

*&---------------------------------------------------------------------*
*& Form CLOSE_DATASET_SESSION
*&---------------------------------------------------------------------*
* This form closes the dataset session.
*----------------------------------------------------------------------*
FORM close_dataset_session.

CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open = 1
queue_error = 2
OTHERS = 3.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ENDFORM. " CLOSE_DATASET_SESSION

  • Step 7 - Executing the dataset: The ABAP program is executed, and access to transaction SM35 is obtained. Through call transaction, processing is synchronous or online, data is transferred to only one transaction, locks are not generated, and the dataset is asynchronous or background, data is transferred to multiple transactions, and locks are generated for each session.

Using RSBDCBTC for Batch Input Execution:

Execute Batch Input online by invoking standard program RSBDCBTC. To do this, a job is created using the job_open function module. Afterward, the execution of the standard program RSBDCBTC is submitted, and the job is closed using the job_close function module.

*&---------------------------------------------------------------------*
*& Form PROCESS_ONLINE
*&---------------------------------------------------------------------*
*& This form processes the dataset online.
*&---------------------------------------------------------------------*
FORM process_online.

* Assign a name to the job
v_jobname = 'ZPRUEBA_ABAP'.
v_jobgroup = v_jobname.

CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobgroup = v_jobgroup
jobname = v_jobname
IMPORTING
jobcount = v_jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.

SUBMIT rsbdcbtc
USER sy-uname
VIA JOB v_jobgroup
NUMBER v_jobcount
WITH queue_id = v_qid
WITH mappe = v_jobgroup
WITH modus = c_n "No display
WITH logall = ''
AND RETURN.

IF sy-subrc EQ 0.

CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = v_jobcount
jobname = v_jobname
strtimmed = c_x
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
invalid_target = 8
OTHERS = 9.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ENDIF.
ENDIF.

ENDFORM. " PROCESS_ONLINE


 

 

 


Sobre el autor

Publicación académica de Jaime Eduardo Gomez Arango, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Master

Jaime Eduardo Gomez Arango

Profesión: Ingeniero de Sistemas y Computación - España - Legajo: SW34C

✒️Autor de: 99 Publicaciones Académicas

🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado

🎓Egresado del módulo:

Disponibilidad Laboral: FullTime

Presentación:

Ingeniero de sistemas y computación con 8 años de experiencia el desarrollo frontend & backend (react/node) y en cloud (aws), actualmente desarrollando habilidades en sap btp, ui5, abap y fiori.

Certificación Académica de Jaime Gomez

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "El Batch Input utilizando el Juego de datos" de la mano de nuestros alumnos.

SAP Senior

El Batch Input utilizando el Juego de datos Mi primer Batch Input utilizando Juego de datos Declaración de los datos propios del Batch Inpt. La lectura de datos del archivo de entrada Apertura de la sesión del juego de datos La carga de la tabla interna BDCDATA. La inserción del juego de datos El cierre de la sesión del juego de datos La ejecución del juego de datos. La utilización del programa RSBDCBTC para la ejecución del juego de datos. Podemos ejecutar el juego de datos en forma online mediante la ejecución del programa estándar RSBDCBTC.

Acceder a esta publicación

Creado y Compartido por: Alejandra Daniela Naranjo Belmonte

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

1|mi primer batch input utilizando juego de datos paso 1ero: declaracion de los datos propios del batch input paso 2do : lectura de datos de archvi de entrada (gui_upload) paso 3ero: apertura de la sesion del juego de datos paso 4to : carga de la tabla bdcdata paso 5to : insercion del juego de datos paso 6to : cierre de la sesion del juego de datos paso 7mo : ejecucion del juego de datos 2|utilizacion del programa RSBDCBTC para la ejecucion del juego de datos podemos ejecutar el juego de datos en forma online mediante la ejecucion del programa estandar RSBDTC. para ello vamos a tener que crear un job, submitir la ejecucion del programa y cerrar el job. luego si vamos a la transaccion sm35 vemos que el juego de datos se proceso sin la necesidad...

Acceder a esta publicación

Creado y Compartido por: Luis Eugenio Leyva Orozco

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Mi primer Batch Input utilizando Juego de Datos. Paso 1: Declaracion de los datos propios del Batch. Declaramos la tabla interna y la estructura ambas del tipo BDCDATA. Paso 2: Lectura de datos de archivo de entrada. Utilizando el metodo GUI_UPLOAD levantamos el archivo de entrada con la info para generar el BATCH. Paso 3: Apertura de la Sesion del Juego de Datos. Se utiliza la funcion BDC_OPEN_GROUP, especificando el mandante, el grupo y el usuario. Paso 4: Carga de la Tabla BDCDATA. Paso 5: Insersion del Juego de datos. Utilizando la funcion BDC_INSERT. Paso 6 : Cierre de la Sesion del Juego de datos. Para cerrar el Juego de datos se utiliza la funcion BDC_CLOSE_GROUP. Paso 7: Ejecucion del Juego de Datos. Utilizando la Transaccion SM35 vamos...

Acceder a esta publicación

Creado y Compartido por: Jessica Daiana Garcete Paez / Disponibilidad Laboral: PartTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Batch Input utilizando Juego de Datos. Mi primer Batch Input utilizando Juego de Datos. Paso 1.- Declaración de los datos propios del Batch Input. Declarar una tabla interna y una estructura del tipo BDCDATA y otra tabla del tipo de datos que se vayan a almacenar. Paso 2.- Lectura de datos de archivo de entrada. Se ejecuta el método GUI_UPLOAD. Paso 3.- Apertura de la sesión del Juego de Datos. Función BDC_OPEN_GROUP, especificando el mandante (sy-mandt), el grupo (sy-repid) y el usuario (sy-uname). Paso 4.- Carga de la tabla de BDCDATA. Paso 5.- Inserción del Juego de Datos. Función BDC_INSERT. Paso 6.- Cierre de las sesión del Juego de Datos. Función BDC_CLOSE_GROUP. Paso 7.- Ejecución...

Acceder a esta publicación

Creado y Compartido por: Carlos Rodriguez Escudero / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Mi primer batch input utilizando juego de datos vamos a crear nuestro primer batch input utilizando la tecnica de juego de datos. El objetivo del batch input sera la carga inicial de datos de la tabla ZTABLA_USUARIOS. para ello, vamos a crear un archivo de texto con regsitros que cumplan con la estructura de la tabla ZTABLA_USUARIOS, sin tener en cuenta el campo mandante. primer paso declaramos una tabla interna y una estructura, amabas del tipo BDCDATA y otra tabla interna de usuarios que contendra los registros que levantemos el archivo de entrada. segundo paso ejecutamos el metodo GUI_UPLOAD para levantar el archivo de entrada con la informacion para egenerar el batch input. tercer paso para realizar la apertura de la sesion del juego de...

Acceder a esta publicación

Creado y Compartido por: Oscar Sebastian Caicedo Carlier / Disponibilidad Laboral: PartTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Pasos para ejecutar Batch Input utilizando Juego de Datos: Declaramos los datos propios del Batch Input. Leemos los datos de un archivo, usando GUI_UPLOAD. Se apertura la sesión del Juego de Datos, usando BDC_OPEN_GROUP. Cargar la tabla BDCDATA, usando subrutina BDC_FIELD. Insertamos el juego de datos, usando la función BDC_INSERT. Cerramos la sesión del Juego de datos, usando BDC_CLOSE_GROUP. Ejecutamos el juego de datos, usando la transacción SM35. Diferencias: Call transacción es sincrono, juego de datos es asincrono. Call transacción transfiere datos a una solo transacción en cada call transacción, juego de datos transfiere datos a múltiples...

Acceder a esta publicación

Creado y Compartido por: Wanderson Esaú López Peraza

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

BATCH INPUT UTILIZANDO JUEGO DE DATOS Crearemos nuestro primer Bach Input utilizando la tecnica de Juego de Datos. *Paso 1: Declaracion de los Datos propios del Batch Input Declaramos una tabla interna y una estructura, ambas del tipo BDCDATA y otra tabla interna de usuarios que contendra los registros que levantemos del archivo de entrada *Paso 2: Lectura de Datos de Archivo de Entrada Ejecutamos el metodo GUI_UPLOAD para levantar el archivo de entrada con la informacion para generar el Batch Input *Paso 3: Apertura de la Sesion del Juego de Datos Para realizar la apertura de la sesion del Juego de Datos, vamos a utilizar la funcion BDC_OPEN_GROUP, especificando el manadante, el grupo y el usuario *Paso 4: Carga de la Tabla BDCDATA: para...

Acceder a esta publicación

Creado y Compartido por: Miguel Ochoa

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

BATCH INPUT UTILIZANDO JUEGO DE DATOS MI PRIMER BATCH INPUT UTILIZANDO JUEGO DE DATOS El objetivo del BATCH INPUTsera la carga inicial de datos de la tabla ZTABLA_USUARIOS Primero creamos un archivo de texto con registros que cumplan con la estructura de la tabla ZTABLA_USUARIOS sin tener en cuenta el mandante Despues borramos su contenido previamente a la ejecucion Ahora seguimos los siguientes pasos que se establecieron en la primer leccion: DECLARACION DE LOS DATOS PROPIOS DEL BATCH INPUT LECTURA DE DATOS DE ARCHIVO DE ENTRADA APERTURA DE LA SESION DEL JUEGO DE DATOS CARGA DE LA TABLA BDCDATA INSERCION DEL JUEGO DE DATOS CIERRE DE LA SESION DEL JUEGO DE DATOS EJECUCION DEL JUEGO DE DATOS Las principales...

Acceder a esta publicación

Creado y Compartido por: Ixhel Magai Lopez Valencia / Disponibilidad Laboral: PartTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Batch input utilizando juego de datos Pasos para realizar el juego de datos: Declaración de los datos propios del batch input: Para ello se declara una tabla interna y una estructura ambas de tipo BDCDATA. Lectura de datos de archivo de entrada: Para ello utilizamos el metodo GUI_UPLOAD, para extraer el archivo a procesar Apertura de la sesión de juego de datos: Se utiliza la función BDC_OPEN_GROUP. Carga de la tabla BDCDATA: Para cargar la tabla BDCDATA utilizaremos la rutina BDC_FIELD. Insersión del juego de datos: Para ello utilizaremos la función BDC_INSERT. Cierre de la sesión del juego de datos: Para ello utilizamos la función BDC_CLOSE_GROUP Ejecucion del juego...

Acceder a esta publicación

Creado y Compartido por: Marvin Raul Lopez Morales / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

BATCH INPUT UTILIZANDO JUEGO DE DATOS: Declaración de los datos propios del batch input: Lectura de datos del archivo de entrada Apertura de la sesión del juego de datos La carga de la tabla interna La inserción del juego de datos El cierre de la sesion del juego de datos La ejecución del jeugo de datos La utilización del programa RSBDCBTC pata le ejecución del juego de datos: Para crear un batch input debemos seguir los pasos anteriormente mencionados para la lectrura de los datos utilizamos el metodo GUI_UPLOAD de la clase CL_GUI_FRONTEND_SERVICES para la apertura de la sesion del juego de datos vamos a utilizar el modulo de funciones BDC_OPEN_GROUP para cerrar...

Acceder a esta publicación

Creado y Compartido por: Valentina Muñoz Medina / Disponibilidad Laboral: FullTime + Carta Presentación

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!