ABAP Select data from SAP table UPWB_SCREEN 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 UPWB_SCREEN 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 UPWB_SCREEN. 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 UPWB_SCREEN 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_UPWB_SCREEN TYPE STANDARD TABLE OF UPWB_SCREEN,
      WA_UPWB_SCREEN TYPE UPWB_SCREEN,
      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: <UPWB_SCREEN> TYPE UPWB_SCREEN.

*Process all fields in table header/work area as string values
  PERFORM process_as_string_field_values CHANGING wa_UPWB_SCREEN.

SELECT *
*restrict ABAP select to first 10 rows
 UP TO 10 ROWS      
  FROM UPWB_SCREEN
  INTO TABLE IT_UPWB_SCREEN.

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM UPWB_SCREEN
*  INTO TABLE @DATA(IT_UPWB_SCREEN2).
*--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_UPWB_SCREEN INDEX 1 INTO DATA(WA_UPWB_SCREEN2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_UPWB_SCREEN ASSIGNING <UPWB_SCREEN>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<UPWB_SCREEN>-QUELLE = 1.
<UPWB_SCREEN>-ZIEL = 1.
<UPWB_SCREEN>-VATER = 1.
<UPWB_SCREEN>-FIRST_POS = 1.
<UPWB_SCREEN>-LAST_POS = 1.
ENDLOOP.

LOOP AT IT_UPWB_SCREEN INTO WA_UPWB_SCREEN.
*Write horizonal line to screen report.
  WRITE:/ sy-uline.

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_UPWB_SCREEN-SPECIAL_POS, sy-vline,
WA_UPWB_SCREEN-POS_NR, sy-vline,
WA_UPWB_SCREEN-DEFAULT_CLASS, sy-vline,
WA_UPWB_SCREEN-OWNCLASS, sy-vline,
WA_UPWB_SCREEN-DEVCLASS, sy-vline,
WA_UPWB_SCREEN-CLSNAME, sy-vline.
ENDLOOP. *Add any further fields from structure WA_UPWB_SCREEN 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_UPWB_SCREEN 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_UPWB_SCREEN INTO WA_UPWB_SCREEN. *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.

*Conversion exit ISOLA, internal->external for field SPRAS CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_UPWB_SCREEN-SPRAS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UPWB_SCREEN-SPRAS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ISOLA, internal->external for field TARGETLANGUAGE CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_UPWB_SCREEN-TARGETLANGUAGE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_UPWB_SCREEN-TARGETLANGUAGE.
WRITE:/ 'New Value:', ld_input.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_UPWB_SCREEN_STR,
QUELLE TYPE STRING,
ZIEL TYPE STRING,
VATER TYPE STRING,
FIRST_POS TYPE STRING,
LAST_POS TYPE STRING,
SPECIAL_POS TYPE STRING,
POS_NR TYPE STRING,
DEFAULT_CLASS TYPE STRING,
OWNCLASS TYPE STRING,
DEVCLASS TYPE STRING,
CLSNAME TYPE STRING,
DEFAULTCLSNAME TYPE STRING,
INS_BEFORE TYPE STRING,
INS_CHILD TYPE STRING,
LAYOUT_NORMAL TYPE STRING,
LAYOUT_FRAMEW TYPE STRING,
BSP_PREVIEW TYPE STRING,
IE_PREVIEW TYPE STRING,
SHOW_PICTURE TYPE STRING,
ACTUAL_APPLNAME TYPE STRING,
NEW_APPLNAME TYPE STRING,
FLAG_PLANNINGBK TYPE STRING,
PAGENUMS TYPE STRING,
SAVE_BUT_ONSCR TYPE STRING,
REFRESH_ONSCR TYPE STRING,
EXIT_BUT_ONSCR TYPE STRING,
BUTS_IN_CNTNER TYPE STRING,
MSGTRAY_ONSCR TYPE STRING,
NAVIGATION_ONSCR TYPE STRING,
AREA TYPE STRING,
AREATEXT TYPE STRING,
PAGENAME TYPE STRING,
LAYOUT TYPE STRING,
PAGENUMBER TYPE STRING,
PLEVEL TYPE STRING,
COMPNAME TYPE STRING,
NEWVAL TYPE STRING,
ORIGVAL TYPE STRING,
ERRMSG TYPE STRING,
TRUEFALSE TYPE STRING,
SELECTOR TYPE STRING,
DESCRIPTION TYPE STRING,
DESCRIPTION_LG TYPE STRING,
DOCNAME TYPE STRING,
MIME_DESCR TYPE STRING,
PAGENAME2 TYPE STRING,
TARGET TYPE STRING,
TEXTDESIGN TYPE STRING,
DESIGNDESC TYPE STRING,
DESIGN TYPE STRING,
DLDESIGN TYPE STRING,
PCKAGE TYPE STRING,
PARAMSEL TYPE STRING,
HTMLNAME TYPE STRING,
ACTUALDEVCLASS TYPE STRING,
NEWDEVCLASS TYPE STRING,
ACTUALCLASS TYPE STRING,
NEWCLASS TYPE STRING,
FUNCTION TYPE STRING,
OTRSHORTTEXT TYPE STRING,
OTRLONGTEXT TYPE STRING,
OTRORIGLANG TYPE STRING,
OTRSPECLANG TYPE STRING,
SPRAS TYPE STRING,
GENBSP TYPE STRING,
GENCLS TYPE STRING,
STOREXML TYPE STRING,
DISPLAY_GCLASS TYPE STRING,
COPYBSP TYPE STRING,
COPYCLS TYPE STRING,
COPYXML TYPE STRING,
TARGETLANGUAGE TYPE STRING,
SHOW_FAVOURITES TYPE STRING,
SHOW_LASTOPENED TYPE STRING,
SHOW_ALL TYPE STRING,
NUM_LAST_OPENED TYPE STRING,
MIMETYPES TYPE STRING,
WIFDESCR TYPE STRING,
NEWWIFDESCR TYPE STRING,
GEN_ON_RENAME TYPE STRING,
TEXT_FROM_OTR TYPE STRING,
TEXT_FROM_DESCR TYPE STRING,
TEXT_FROM_EDITOR TYPE STRING,
TEXTKEY TYPE STRING,
TEXT TYPE STRING,
PREVIEW_BSP TYPE STRING,
PREVIEW_DYNAMIC TYPE STRING,
GENERATE TYPE STRING,
GENERATE_NOT TYPE STRING,END OF T_EKKO_STR. DATA: WA_UPWB_SCREEN_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_UPWB_SCREEN_STR-QUELLE sy-vline
WA_UPWB_SCREEN_STR-ZIEL sy-vline
WA_UPWB_SCREEN_STR-VATER sy-vline
WA_UPWB_SCREEN_STR-FIRST_POS sy-vline
WA_UPWB_SCREEN_STR-LAST_POS sy-vline
WA_UPWB_SCREEN_STR-SPECIAL_POS sy-vline
WA_UPWB_SCREEN_STR-POS_NR sy-vline
WA_UPWB_SCREEN_STR-DEFAULT_CLASS sy-vline
WA_UPWB_SCREEN_STR-OWNCLASS sy-vline
WA_UPWB_SCREEN_STR-DEVCLASS sy-vline
WA_UPWB_SCREEN_STR-CLSNAME sy-vline
WA_UPWB_SCREEN_STR-DEFAULTCLSNAME sy-vline
WA_UPWB_SCREEN_STR-INS_BEFORE sy-vline
WA_UPWB_SCREEN_STR-INS_CHILD sy-vline
WA_UPWB_SCREEN_STR-LAYOUT_NORMAL sy-vline
WA_UPWB_SCREEN_STR-LAYOUT_FRAMEW sy-vline
WA_UPWB_SCREEN_STR-BSP_PREVIEW sy-vline
WA_UPWB_SCREEN_STR-IE_PREVIEW sy-vline
WA_UPWB_SCREEN_STR-SHOW_PICTURE sy-vline
WA_UPWB_SCREEN_STR-ACTUAL_APPLNAME sy-vline
WA_UPWB_SCREEN_STR-NEW_APPLNAME sy-vline
WA_UPWB_SCREEN_STR-FLAG_PLANNINGBK sy-vline
WA_UPWB_SCREEN_STR-PAGENUMS sy-vline
WA_UPWB_SCREEN_STR-SAVE_BUT_ONSCR sy-vline
WA_UPWB_SCREEN_STR-REFRESH_ONSCR sy-vline
WA_UPWB_SCREEN_STR-EXIT_BUT_ONSCR sy-vline
WA_UPWB_SCREEN_STR-BUTS_IN_CNTNER sy-vline
WA_UPWB_SCREEN_STR-MSGTRAY_ONSCR sy-vline
WA_UPWB_SCREEN_STR-NAVIGATION_ONSCR sy-vline
WA_UPWB_SCREEN_STR-AREA sy-vline
WA_UPWB_SCREEN_STR-AREATEXT sy-vline
WA_UPWB_SCREEN_STR-PAGENAME sy-vline
WA_UPWB_SCREEN_STR-LAYOUT sy-vline
WA_UPWB_SCREEN_STR-PAGENUMBER sy-vline
WA_UPWB_SCREEN_STR-PLEVEL sy-vline
WA_UPWB_SCREEN_STR-COMPNAME sy-vline
WA_UPWB_SCREEN_STR-NEWVAL sy-vline
WA_UPWB_SCREEN_STR-ORIGVAL sy-vline
WA_UPWB_SCREEN_STR-ERRMSG sy-vline
WA_UPWB_SCREEN_STR-TRUEFALSE sy-vline
WA_UPWB_SCREEN_STR-SELECTOR sy-vline
WA_UPWB_SCREEN_STR-DESCRIPTION sy-vline
WA_UPWB_SCREEN_STR-DESCRIPTION_LG sy-vline
WA_UPWB_SCREEN_STR-DOCNAME sy-vline
WA_UPWB_SCREEN_STR-MIME_DESCR sy-vline
WA_UPWB_SCREEN_STR-PAGENAME2 sy-vline
WA_UPWB_SCREEN_STR-TARGET sy-vline
WA_UPWB_SCREEN_STR-TEXTDESIGN sy-vline
WA_UPWB_SCREEN_STR-DESIGNDESC sy-vline
WA_UPWB_SCREEN_STR-DESIGN sy-vline
WA_UPWB_SCREEN_STR-DLDESIGN sy-vline
WA_UPWB_SCREEN_STR-PCKAGE sy-vline
WA_UPWB_SCREEN_STR-PARAMSEL sy-vline
WA_UPWB_SCREEN_STR-HTMLNAME sy-vline
WA_UPWB_SCREEN_STR-ACTUALDEVCLASS sy-vline
WA_UPWB_SCREEN_STR-NEWDEVCLASS sy-vline
WA_UPWB_SCREEN_STR-ACTUALCLASS sy-vline
WA_UPWB_SCREEN_STR-NEWCLASS sy-vline
WA_UPWB_SCREEN_STR-FUNCTION sy-vline
WA_UPWB_SCREEN_STR-OTRSHORTTEXT sy-vline
WA_UPWB_SCREEN_STR-OTRLONGTEXT sy-vline
WA_UPWB_SCREEN_STR-OTRORIGLANG sy-vline
WA_UPWB_SCREEN_STR-OTRSPECLANG sy-vline
WA_UPWB_SCREEN_STR-SPRAS sy-vline
WA_UPWB_SCREEN_STR-GENBSP sy-vline
WA_UPWB_SCREEN_STR-GENCLS sy-vline
WA_UPWB_SCREEN_STR-STOREXML sy-vline
WA_UPWB_SCREEN_STR-DISPLAY_GCLASS sy-vline
WA_UPWB_SCREEN_STR-COPYBSP sy-vline
WA_UPWB_SCREEN_STR-COPYCLS sy-vline
WA_UPWB_SCREEN_STR-COPYXML sy-vline
WA_UPWB_SCREEN_STR-TARGETLANGUAGE sy-vline
WA_UPWB_SCREEN_STR-SHOW_FAVOURITES sy-vline
WA_UPWB_SCREEN_STR-SHOW_LASTOPENED sy-vline
WA_UPWB_SCREEN_STR-SHOW_ALL sy-vline
WA_UPWB_SCREEN_STR-NUM_LAST_OPENED sy-vline
WA_UPWB_SCREEN_STR-MIMETYPES sy-vline
WA_UPWB_SCREEN_STR-WIFDESCR sy-vline
WA_UPWB_SCREEN_STR-NEWWIFDESCR sy-vline
WA_UPWB_SCREEN_STR-GEN_ON_RENAME sy-vline
WA_UPWB_SCREEN_STR-TEXT_FROM_OTR sy-vline
WA_UPWB_SCREEN_STR-TEXT_FROM_DESCR sy-vline
WA_UPWB_SCREEN_STR-TEXT_FROM_EDITOR sy-vline
WA_UPWB_SCREEN_STR-TEXTKEY sy-vline
WA_UPWB_SCREEN_STR-TEXT sy-vline
WA_UPWB_SCREEN_STR-PREVIEW_BSP sy-vline
WA_UPWB_SCREEN_STR-PREVIEW_DYNAMIC sy-vline
WA_UPWB_SCREEN_STR-GENERATE sy-vline
WA_UPWB_SCREEN_STR-GENERATE_NOT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.