✒️ABAP Las subrutinas y la grabación de datos de un BI
ABAP Las subrutinas y la grabación de datos de un BI
Using Subroutines in Batch Inputs
A subroutine can be created to simplify the batch input configuration process by implementing program modularization. As an example of the subroutine we can create FILL_BDCDATA_TABLE as follows:
PERFORM fill_bdcdata_table USING <is_dynpro> <field1> <field2>.
Where the input parameters are:
- Is_dynpro: A flag that, when set to "X", indicates that the line being loaded into the internal BDCDATA table is a dynpro.
- Field1: Content of field 1, passed as text within single quotes.
- Field2: Content of field 2, passed as text within single quotes.
There are two ways to execute the FILL_BDCDATA_TABLE subroutine.
- If what we're loading into it_bdcdata is a dynpro, then we'll populate the fields: program, dynpro, and dynbegin.
PERFORM fill_bdcdata_table USING 'X' 'SAPMSVMA' '0100'.
- If what we're loading into it_bdcdata is not a dynpro, then we'll populate the fields: fnam and fval.
PERFORM fill_bdcdata_table USING ' ' 'BDC' '=SAVE'.
* Internal Table for Batch Input with BDCDATA Structure
DATA: BEGIN OF it_bdcdata OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF it_bdcdata.
* Structure for Batch Input
DATA: wa_bdcdata TYPE bdcdata.
*&---------------------------------------------------------------------*
*& Form fill_bdctable
*&---------------------------------------------------------------------*
* Fills the internal table it_bdcdata with data based on
* the provided parameters.
* At the end, it appends the populated entry to the internal table.
*&---------------------------------------------------------------------*
FORM fill_bdcdata_table USING p_is_dynpro TYPE c
p_field1
p_field2.
CLEAR wa_bdcdata.
" Check if the input is a dynpro or not
IF p_is_dynpro EQ 'X'.
" If it's a dynpro, populate program, dynpro, and dynbegin fields
wa_bdcdata-dynbegin = p_is_dynpro.
wa_bdcdata-program = p_field1.
wa_bdcdata-dynpro = p_field2.
ELSE.
" If it's not a dynpro, populate field1 and field2 fields
wa_bdcdata-fnam = p_field1.
wa_bdcdata-fval = p_field2.
ENDIF.
" Add the populated entry to the internal table
APPEND wa_bdcdata TO it_bdcdata.
ENDFORM. " fill_bdcdata_table
Obtaining Necessary Data for Loading BDCDATA Internal Table
Access transaction SM30 and retrieve the corresponding data for the first screen. There are three ways to perform this operation:
- Position the cursor on an input field, then press F1. Next, click on the technical info button to display a window with relevant information for assembling the BDCDATA table, such as program name, dynpro name, and field name.
- Hover over a button on the screen and press F1. This action will display a window with the program name and the corresponding function code for the button.
- On all screens, we can view various screen data at the bottom right, such as the name of the executing program, the transaction, etc.
Batch Input Recording
Another more efficient way to obtain data for loading the BDCDATA table is to record the steps we take when executing transactions using transaction SM35.
The standard transaction SM35, known as "the recorder," is used to record Batch Input sessions that will be very useful when developing our programs.
To start recording, press the "Recording" button, then the "New Recording" button. A dialog window will appear where we should:
- Recording: Assign a name to the recording.
- Transaction Code: Enter the transaction name.
Leave the rest of the options as they are and press the "Start Recording" button.
Then, follow the screen sequence until generating a record in the table, finishing by pressing the record button and exiting the transaction. When recording in transaction SM35 and wanting to view the result, press either the record button or the exit button on the screen.
If the record button is pressed, the recording will be stored in the system for consultation while performing the BATCH INPUT. It's also possible to export it to a file or import a recording from a file.
 
 
 
Sobre el autor
Publicación académica de Jaime Eduardo Gomez Arango, en su ámbito de estudios para la Carrera Consultor ABAP.
Jaime Eduardo Gomez Arango
Profesión: Ingeniero de Sistemas y Computaci?n - Espa?a - Legajo: SW34C
✒️Autor de: 149 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP Fiori
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
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