Show TOC

Database AwarenessLocate this document in the navigation structure

ALV with IDA on Conventional Databases

ALV with IDA can be used with conventional databases as well as with in-memory databases.

The left side of the graphic shows the ALV with IDA procedure on an in-memory database - paging and services can be run directly on the database. In comparison, the right side shows the ALV with IDA procedure on a conventional database. All data must be loaded onto the ABAP server and then paging and services are run here (see 1 on the above graphic).

It does not always make sense to execute the services on the entire dataset of the table because unlike with in-memory databases, this can cause very long runtimes. You can, therefore, restrict the maximum number of data records that are read from the defined selection conditions. The ALV with IDA services are then executed on this data set and no further data records are read. The capability check contains a method that defines whether the data set is to be restricted.

Capability Check
Using the static method db_capabilities of class CL_SALV_GUI_TABLE_IDA you get a reference to the interface IF_SALV_IDA_CAPABILITY_SERVICE with which you can check if a specified table/view can be displayed in ALV with IDA
  • (method is_table_supported)
  • The maximum amount of data is to be restricted because the program is not running on an in-memory database (see above) (method is_max_rows_recommended)

    The maximum number of data records can be set for ALV with IDA using method set_maximum_number_of_rows() of interface IF_SALV_GUI_TABLE_IDA.

    Note Method set_maximum_number_of_rows can only be used if it is actually recommended. When this method is used, the system always switches to the classic ITAB processing mode, even if an in-memory database is accessed.
  • Text search with fuzzy logic is supported for a defined table/view (method is_text_search_supported)
This enables you to react flexibly in the application program to different databases or tables/view that are suppported. Furthermore, the code can be kept the same for all underlying databases.

Examples of reports: SALV_IDA_DB_CAPABILITIES and SALV_IDA_EXTERNAL_VIEW