sapdev logo background
sapdev logo sapdev logo
Comments

SAP LDB FIELD SELECTIONS documentation, setup help and example usage



Return to SAP documentation index


ARTICLE

Logical Databases - Field Selections
The statement SELECTION-SCREEN FIELD SELECTION FOR NODE|TABLE node specifies a node node of a logical database in the selection include for field selections. This means that individual columns can be named in the SELECT clause in the SELECT statements of the corresponding subroutine put_node , instead of just all columns with an asterisk * . This option is used to keep the amount of data passed from the database low and and gives better performance than always reading the data from all columns in a database table.
The columns read for each node specified for field selections can be specified using the FIELD addition of the statement GET in the associated executable program or in the parameter
FIELD_SELECTION of the function module LDB_PROCESS . The database program of the logical database has access to the names of the columns in the data object select_fields . This data object is generated automatically in the logical database program with reference to the type rsfs_fields of the type group RSFS . The data object can also be used in every application program associated with the logical database program.
select_fields is a deep internal table with the components
tablename and fields . In each row, the column tablename
contains the name of a node reserved for field selections. For each of these nodes, the table-like component fields contains the columns specified in the GET statements of the application program. The table fields is defined so that it can be used directly to specify columns dynamically in a SELECT statement.

Example
The database table SCARR is the root node of the logical database
DEMO and the table SPFLI is the only successor. The selection include DBDEMOSEL contains the following lines:
SELECT-OPTIONS s_carrid FOR scarr-carrid.
SELECT-OPTIONS s_connid FOR spfli-connid.
SELECTION-SCREEN FIELD SELECTION FOR TABLE spfli.
The subroutine put_spfli of the database program SAPDBDEMO
uses the field selections as follows:
FORM put_spfli.
STATICS: fieldlists TYPE rsfs_tab_fields,
flag_read TYPE abap_bool.
IF flag_read = abap_false.
fieldlists-tablename = 'SPFLI'.
READ TABLE select_fields WITH KEY fieldlists-tablename
INTO fieldlists.
flag_read = abap_true.
ENDIF.
SELECT (fieldlists-fields)
INTO CORRESPONDING FIELDS OF spfli FROM spfli
WHERE carrid = scarr-carrid
AND connid IN s_connid.
PUT spfli.
ENDSELECT.
ENDFORM.
The row of the internal table select_fields for which the column tablename contains the value "SCARR" is read to the local helper structure fieldlists . The STATICS statements and the field flag_read make sure that the table select_fields
only needs to be read once each time the program is executed. The table
fieldlists-fields is used in the dynamic SELECT clause. An executable program associated with the logical database can now contain the following lines:
NODES spfli.
...
GET spfli FIELDS cityfrom cityto.
...
The FIELDS addition of the statement GET defines which fields of the database table (except the primary key) are to be read by the logical database. Internally, the runtime environment fills
select_fields with the appropriate values. These values can be checked in ABAP Debugger.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved




LDB_EXAMPLES
LDB_FREE_SELECTIONS




comments powered by Disqus