ABAP Select data from SAP table UPF_SCREEN_OPTIOS into internal table
Get Example source ABAP code based on a different SAP table
Below is a number of ABAP code snippets to demonstrate how to select data from SAP UPF_SCREEN_OPTIOS table and store it within an internal table, including using the newer @DATA inline declaration methods. It also shows you various ways to process this data using ABAP work area, inline declaration or field symbols including executing all the relevant CONVERSION_EXIT routines specific to UPF_SCREEN_OPTIOS. See here for more generic Select statement tips.
Sometimes data within SAP is stored within the database table in a different format to what it is displayed to the user. These input/output conversation FM routines are what translates the data between the two formats.
There is also a full declaration of the UPF_SCREEN_OPTIOS table where each field has a char/string type for you to simply copy and paste. This allows you to use processing that is only available to these field types such as the CONCATENATE statement.
DATA: IT_UPF_SCREEN_OPTIOS TYPE STANDARD TABLE OF UPF_SCREEN_OPTIOS, WA_UPF_SCREEN_OPTIOS TYPE UPF_SCREEN_OPTIOS, GD_STR TYPE STRING. DATA: lo_typedescr type REF TO cl_abap_typedescr. DATA: lv_fieldname type fieldname. FIELD-SYMBOLS: <FIELD> TYPE any. FIELD-SYMBOLS: <UPF_SCREEN_OPTIOS> TYPE UPF_SCREEN_OPTIOS. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_UPF_SCREEN_OPTIOS. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM UPF_SCREEN_OPTIOS INTO TABLE IT_UPF_SCREEN_OPTIOS. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM UPF_SCREEN_OPTIOS * INTO TABLE @DATA(IT_UPF_SCREEN_OPTIOS2). *--Further methods of using ABAP code to select data from SAP database tables *You can also declare the header/work area using the in-line DATA declaration method READ TABLE IT_UPF_SCREEN_OPTIOS INDEX 1 INTO DATA(WA_UPF_SCREEN_OPTIOS2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_UPF_SCREEN_OPTIOS ASSIGNING <UPF_SCREEN_OPTIOS>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<UPF_SCREEN_OPTIOS>-CHCKB = 1.
<UPF_SCREEN_OPTIOS>-SCRTEXT_M = 1.
<UPF_SCREEN_OPTIOS>-OPTIO01 = 1.
<UPF_SCREEN_OPTIOS>-LOW01 = 1.
<UPF_SCREEN_OPTIOS>-TEXT_LOW01 = 1.
ENDLOOP. LOOP AT IT_UPF_SCREEN_OPTIOS INTO WA_UPF_SCREEN_OPTIOS. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_UPF_SCREEN_OPTIOS-HIGH01, sy-vline,
WA_UPF_SCREEN_OPTIOS-TEXT_HIGH01, sy-vline,
WA_UPF_SCREEN_OPTIOS-OPTIO02, sy-vline,
WA_UPF_SCREEN_OPTIOS-LOW02, sy-vline,
WA_UPF_SCREEN_OPTIOS-TEXT_LOW02, sy-vline,
WA_UPF_SCREEN_OPTIOS-HIGH02, sy-vline.
ENDLOOP. *Add any further fields from structure WA_UPF_SCREEN_OPTIOS you want to display... WRITE:/ sy-uline. * Aternatively use generic code to Write field values (and NAME) to screen report DO. ASSIGN COMPONENT sy-index OF STRUCTURE wa_UPF_SCREEN_OPTIOS TO <field>. IF sy-subrc <> 0. EXIT. ENDIF. WRITE:/ 'Field Value', <field>, sy-vline. gd_str = <field> . lo_typedescr ?= CL_ABAP_DATADESCR=>DESCRIBE_BY_DATA( <field> ). lv_fieldname = lo_typedescr->GET_RELATIVE_NAME( ). WRITE:/ 'Field Name', lv_fieldname. ENDDO. *Redo loop but convert all fields from internal to out value LOOP AT IT_UPF_SCREEN_OPTIOS INTO WA_UPF_SCREEN_OPTIOS. *Write horizonal line to screen report. WRITE:/ sy-uline. *Convert all fields to display/output versions using conversion routines PERFORM convert_all_field_values CHANGING wa_EKKO. ENDLOOP. *&---------------------------------------------------------------------* *& Form convert_all_field_values *&---------------------------------------------------------------------* FORM convert_all_field_values CHANGING p_EKKO LIKE wa_EKKO. DATA: ld_input(1000) TYPE c, ld_output(1000) TYPE C.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_UPF_SCREEN_OPTIOS_STR,
CHCKB TYPE STRING,
SCRTEXT_M TYPE STRING,
OPTIO01 TYPE STRING,
LOW01 TYPE STRING,
TEXT_LOW01 TYPE STRING,
HIGH01 TYPE STRING,
TEXT_HIGH01 TYPE STRING,
OPTIO02 TYPE STRING,
LOW02 TYPE STRING,
TEXT_LOW02 TYPE STRING,
HIGH02 TYPE STRING,
TEXT_HIGH02 TYPE STRING,
OPTIO03 TYPE STRING,
LOW03 TYPE STRING,
TEXT_LOW03 TYPE STRING,
HIGH03 TYPE STRING,
TEXT_HIGH03 TYPE STRING,
OPTIO04 TYPE STRING,
LOW04 TYPE STRING,
TEXT_LOW04 TYPE STRING,
HIGH04 TYPE STRING,
TEXT_HIGH04 TYPE STRING,
OPTIO05 TYPE STRING,
LOW05 TYPE STRING,
TEXT_LOW05 TYPE STRING,
HIGH05 TYPE STRING,
TEXT_HIGH05 TYPE STRING,
OPTIO06 TYPE STRING,
LOW06 TYPE STRING,
TEXT_LOW06 TYPE STRING,
HIGH06 TYPE STRING,
TEXT_HIGH06 TYPE STRING,
OPTIO07 TYPE STRING,
LOW07 TYPE STRING,
TEXT_LOW07 TYPE STRING,
HIGH07 TYPE STRING,
TEXT_HIGH07 TYPE STRING,
OPTIO08 TYPE STRING,
LOW08 TYPE STRING,
TEXT_LOW08 TYPE STRING,
HIGH08 TYPE STRING,
TEXT_HIGH08 TYPE STRING,
OPTIO09 TYPE STRING,
LOW09 TYPE STRING,
HIGH09 TYPE STRING,
OPTIO10 TYPE STRING,
LOW10 TYPE STRING,
HIGH10 TYPE STRING,
OPTIO11 TYPE STRING,
LOW11 TYPE STRING,
HIGH11 TYPE STRING,
OPTIO12 TYPE STRING,
LOW12 TYPE STRING,
HIGH12 TYPE STRING,
OPTIO13 TYPE STRING,
LOW13 TYPE STRING,
HIGH13 TYPE STRING,
OPTIO14 TYPE STRING,
LOW14 TYPE STRING,
HIGH14 TYPE STRING,
OPTIO15 TYPE STRING,
LOW15 TYPE STRING,
HIGH15 TYPE STRING,
OPTIO16 TYPE STRING,
LOW16 TYPE STRING,
HIGH16 TYPE STRING,
OPTIO20 TYPE STRING,
LOW20 TYPE STRING,
TEXT_LOW20 TYPE STRING,
HIGH20 TYPE STRING,
TEXT_HIGH20 TYPE STRING,END OF T_EKKO_STR. DATA: WA_UPF_SCREEN_OPTIOS_STR type T_EKKO_STR. DATA: ld_text TYPE string. LOOP AT IT_EKKO INTO WA_EKKO. MOVE-CORRESPONDING wa_EKKO TO WA_EKKO_STR. CONCATENATE: sy-vline
WA_UPF_SCREEN_OPTIOS_STR-CHCKB sy-vline
WA_UPF_SCREEN_OPTIOS_STR-SCRTEXT_M sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO01 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW01 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_LOW01 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH01 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_HIGH01 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO02 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW02 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_LOW02 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH02 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_HIGH02 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO03 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW03 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_LOW03 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH03 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_HIGH03 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO04 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW04 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_LOW04 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH04 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_HIGH04 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO05 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW05 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_LOW05 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH05 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_HIGH05 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO06 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW06 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_LOW06 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH06 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_HIGH06 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO07 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW07 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_LOW07 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH07 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_HIGH07 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO08 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW08 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_LOW08 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH08 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_HIGH08 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO09 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW09 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH09 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO10 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW10 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH10 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO11 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW11 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH11 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO12 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW12 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH12 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO13 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW13 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH13 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO14 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW14 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH14 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO15 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW15 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH15 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO16 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW16 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH16 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-OPTIO20 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-LOW20 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_LOW20 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-HIGH20 sy-vline
WA_UPF_SCREEN_OPTIOS_STR-TEXT_HIGH20 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.