✒️ABAP Las bases de datos lógicas
ABAP Las bases de datos lógicas
Logical Databases
With the abbreviation LDB, ABAP objects provide a logical view of database tables, allowing for their interconnection to perform data selection. They simplify report generation by offering read access, authorization checks, and standardized selections.
Components of a logical database include:
- Structure: Determines the tables (TBD) accessible, controls the access sequence to TBD, and defines the logical database behavior at runtime.
- Selections: Defines the selection screen, composed of data selection statements (select-options and parameters), forming the user interface of executable programs. Its layout is typically determined by the structure.
- Program: The database's program contains ABAP declarations used to read data and pass it to the LDB user. The database program is determined by the structure and selections and can be adapted to meet information needs.
Administration of these databases occurs through the transaction SE36, where we find a list of existing databases in SAP. From there, we can create, modify, or view standard or custom logical databases (Z). When viewing, four tabs are available:
- Management: standard information of the LDB, including package, author, and objects.
- Structure: Database table forming the LDB.
- Search Help: Shows if the LDB has associated search helps.
- Currency/Quantity Fields: Indicates if the LDB uses important fields. The "Selections" button displays the selection screen defined in the LDB, while the "Sel. Texts" button shows the selection texts and text symbols defined in the LDB.
Logical database reports are less commonly used now, replaced by ALV reports in the SAP update.
Implementation Steps for Logical Databases in Reports
- To use an LDB in a program, assign the LDB to the program via the menu "Go to -> Attributes"
- Click on the match code to view existing LDBs in the system, select the LDB(BANK), and save.
- Declare logical database tables using the TABLES statement.
TABLES: bnka.
To communicate between ABAP programs, use the following statements:
- PUT: Saves data in an LDB, located in the LDB code, like this:
SELECT * FROM bnka
INTO <v_bank>
WHERE bank1 IN v_bank1
ORDER BY PRIMARY KEY.
ENDSELECT.
PUT v_bank.
- GET: Retrieves data from an LDB, placed in the code using the LDB, like this:
*----------------------------------------------------------------------*
START-OF-SELECTION.
*----------------------------------------------------------------------*
GET bnka.
WRITE: bnka-banks, bnka-bankl.
E.g
*&---------------------------------------------------------------------*
*& Report ZTEST_ABAP_JEGA_20
*&---------------------------------------------------------------------*
*& bnka table must be associated "Go to -> Attributes" - "LDB name"
*&---------------------------------------------------------------------*
REPORT ztest_abap_jega_20.
* LDB declaration
TABLES: bnka.
TYPE-POOLS: slis.
CONSTANTS: c_x(1) TYPE c VALUE 'X'.
* Internal table and output structure for ALV
TYPES: BEGIN OF ty_banks,
banks LIKE bnka-banks,
bankl LIKE bnka-bankl,
END OF ty_banks.
DATA: ti_banks TYPE STANDARD TABLE OF ty_banks,
wa_banks LIKE LINE OF ti_banks,
* Internal table and catalog structure
ti_catalog TYPE slis_t_fieldcat_alv,
wa_catalog TYPE slis_fieldcat_alv,
* Structure for output configuration
wa_layout TYPE slis_layout_alv,
* Variable with the program name
v_repid LIKE sy-repid.
*---------------------------------------------------------------------*
START-OF-SELECTION.
*---------------------------------------------------------------------*
GET bnka. " Retrieve data using Logical Database (LDB)
* Data selection
PERFORM select_data.
*---------------------------------------------------------------------*
END-OF-SELECTION.
*---------------------------------------------------------------------*
* Build the catalog
PERFORM build_catalog.
* Configure the layout
PERFORM configure_layout.
* Execute the ALV function module
PERFORM execute_alv.
*&---------------------------------------------------------------------*
*& Form build_catalog
*&---------------------------------------------------------------------*
* Build the catalog for ALV display
*----------------------------------------------------------------------*
FORM build_catalog.
REFRESH ti_catalog.
CLEAR wa_catalog.
wa_catalog-fieldname = 'BANKS'. "Field Name
wa_catalog-tabname = 'bnka'. "Table Name
wa_catalog-seltext_s = 'Bank Country'. "Short Description Header
wa_catalog-seltext_m = 'Bank Country'. "Medium Description Header
wa_catalog-seltext_l = 'Bank Country'. "Long Description Header
wa_catalog-outputlen = 15. "Column Width
wa_catalog-just = 'C'. "Alignment
APPEND wa_catalog TO ti_catalog.
CLEAR wa_catalog.
wa_catalog-fieldname = 'BANKL'.
wa_catalog-tabname = 'bnka'.
wa_catalog-seltext_s = 'Bank Name'.
wa_catalog-seltext_m = 'Bank Name'.
wa_catalog-seltext_l = 'Bank Name'.
wa_catalog-outputlen = 18.
wa_catalog-just = 'C'.
APPEND wa_catalog TO ti_catalog.
ENDFORM. "build_catalog
*&---------------------------------------------------------------------*
*& Form execute_alv
*&---------------------------------------------------------------------*
* Execute ALV display
*----------------------------------------------------------------------*
FORM execute_alv.
CLEAR v_repid.
v_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = ti_catalog[]
is_layout = wa_layout
TABLES
t_outtab = ti_banks.
ENDFORM. "execute_alv
*&---------------------------------------------------------------------*
*& Form configure_layout
*&---------------------------------------------------------------------*
* Configure the layout for ALV display
*----------------------------------------------------------------------*
FORM configure_layout.
CLEAR wa_layout.
wa_layout-window_titlebar = TEXT-001. "User Report
wa_layout-zebra = c_x. " Striped Pattern
ENDFORM. " configure_layout
*&---------------------------------------------------------------------*
*& Form select_data
*&---------------------------------------------------------------------*
* Select data for ALV display
*----------------------------------------------------------------------*
FORM select_data .
CLEAR wa_banks.
wa_banks-banks = bnka-banks.
wa_banks-bankl = bnka-bankl.
APPEND wa_banks TO ti_banks.
ENDFORM. " select_data
 
 
 
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