ABAP Select data from SAP table WB2_S_CPM_SCREEN_DATA 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 WB2_S_CPM_SCREEN_DATA 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 WB2_S_CPM_SCREEN_DATA. 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 WB2_S_CPM_SCREEN_DATA 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_WB2_S_CPM_SCREEN_DATA TYPE STANDARD TABLE OF WB2_S_CPM_SCREEN_DATA,
      WA_WB2_S_CPM_SCREEN_DATA TYPE WB2_S_CPM_SCREEN_DATA,
      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: <WB2_S_CPM_SCREEN_DATA> TYPE WB2_S_CPM_SCREEN_DATA.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM WB2_S_CPM_SCREEN_DATA
*  INTO TABLE @DATA(IT_WB2_S_CPM_SCREEN_DATA2).
*--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_WB2_S_CPM_SCREEN_DATA INDEX 1 INTO DATA(WA_WB2_S_CPM_SCREEN_DATA2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_WB2_S_CPM_SCREEN_DATA ASSIGNING <WB2_S_CPM_SCREEN_DATA>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<WB2_S_CPM_SCREEN_DATA>-VIEW_TYPE = 1.
<WB2_S_CPM_SCREEN_DATA>-HEADERTEXT = 1.
<WB2_S_CPM_SCREEN_DATA>-STATUS_LIST = 1.
<WB2_S_CPM_SCREEN_DATA>-DETAIL_SCREEN_PROG = 1.
<WB2_S_CPM_SCREEN_DATA>-DETAIL_SCREEN_NUM = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_WB2_S_CPM_SCREEN_DATA-FIELDCATALOG, sy-vline,
WA_WB2_S_CPM_SCREEN_DATA-STYLE, sy-vline,
WA_WB2_S_CPM_SCREEN_DATA-ZEBRA, sy-vline,
WA_WB2_S_CPM_SCREEN_DATA-EDIT, sy-vline,
WA_WB2_S_CPM_SCREEN_DATA-EDIT_MODE, sy-vline,
WA_WB2_S_CPM_SCREEN_DATA-NO_KEYFIX, sy-vline.
ENDLOOP. *Add any further fields from structure WA_WB2_S_CPM_SCREEN_DATA 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_WB2_S_CPM_SCREEN_DATA 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_WB2_S_CPM_SCREEN_DATA INTO WA_WB2_S_CPM_SCREEN_DATA. *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 LANGUAGE CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_WB2_S_CPM_SCREEN_DATA-LANGUAGE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_WB2_S_CPM_SCREEN_DATA-LANGUAGE.
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_WB2_S_CPM_SCREEN_DATA_STR,
VIEW_TYPE TYPE STRING,
HEADERTEXT TYPE STRING,
STATUS_LIST TYPE STRING,
DETAIL_SCREEN_PROG TYPE STRING,
DETAIL_SCREEN_NUM TYPE STRING,
FIELDCATALOG TYPE STRING,
STYLE TYPE STRING,
ZEBRA TYPE STRING,
EDIT TYPE STRING,
EDIT_MODE TYPE STRING,
NO_KEYFIX TYPE STRING,
FRONTEND TYPE STRING,
OBJECT_KEY TYPE STRING,
DOC_ID TYPE STRING,
TEMPLATE TYPE STRING,
LANGUAGE TYPE STRING,
GRAPHICS TYPE STRING,
SMALLTITLE TYPE STRING,
NO_HGRIDLN TYPE STRING,
NO_VGRIDLN TYPE STRING,
NO_HEADERS TYPE STRING,
NO_MERGING TYPE STRING,
CWIDTH_OPT TYPE STRING,
TOTALS_BEF TYPE STRING,
NO_TOTARR TYPE STRING,
NO_TOTEXP TYPE STRING,
NO_ROWMOVE TYPE STRING,
NO_ROWINS TYPE STRING,
NO_COLEXPD TYPE STRING,
NO_F4 TYPE STRING,
COUNTFNAME TYPE STRING,
COL_OPT TYPE STRING,
VAL_DATA TYPE STRING,
BLOB_SCOPE TYPE STRING,
BLOB_FLAVOUR TYPE STRING,
BLOB_NAME TYPE STRING,
BLOB_KEY TYPE STRING,
BLOB_TYPE TYPE STRING,
STYLEFNAME TYPE STRING,
NO_ROWMARK TYPE STRING,
NO_TOOLBAR TYPE STRING,
GRID_TITLE TYPE STRING,
SEL_MODE TYPE STRING,
BOX_FNAME TYPE STRING,
SGL_CLK_HD TYPE STRING,
NO_TOTLINE TYPE STRING,
NUMC_TOTAL TYPE STRING,
NO_UTSPLIT TYPE STRING,
EXCP_FNAME TYPE STRING,
EXCP_ROLLN TYPE STRING,
EXCP_CONDS TYPE STRING,
EXCP_LED TYPE STRING,
EXCP_GROUP TYPE STRING,
DETAILINIT TYPE STRING,
DETAILTITL TYPE STRING,
KEYHOT TYPE STRING,
NO_AUTHOR TYPE STRING,
XIFUNCKEY TYPE STRING,
XIDIRECT TYPE STRING,
S_DRAGDROP TYPE STRING,
CNTR_DDID TYPE STRING,
GRID_DDID TYPE STRING,
COL_DDID TYPE STRING,
ROW_DDID TYPE STRING,
FIELDNAME TYPE STRING,
INFO_FNAME TYPE STRING,
CTAB_FNAME TYPE STRING,
WEBLOOK TYPE STRING,
WEBSTYLE TYPE STRING,
WEBROWS TYPE STRING,
WEBXWIDTH TYPE STRING,
WEBXHEIGHT TYPE STRING,
LAYOUT TYPE STRING,
FIELDNAME TYPE STRING,
STYLE TYPE STRING,
STYLE2 TYPE STRING,
STYLE3 TYPE STRING,
STYLE4 TYPE STRING,
MAXLEN TYPE STRING,END OF T_EKKO_STR. DATA: WA_WB2_S_CPM_SCREEN_DATA_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_WB2_S_CPM_SCREEN_DATA_STR-VIEW_TYPE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-HEADERTEXT sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-STATUS_LIST sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-DETAIL_SCREEN_PROG sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-DETAIL_SCREEN_NUM sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-FIELDCATALOG sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-STYLE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-ZEBRA sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-EDIT sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-EDIT_MODE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_KEYFIX sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-FRONTEND sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-OBJECT_KEY sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-DOC_ID sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-TEMPLATE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-LANGUAGE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-GRAPHICS sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-SMALLTITLE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_HGRIDLN sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_VGRIDLN sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_HEADERS sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_MERGING sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-CWIDTH_OPT sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-TOTALS_BEF sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_TOTARR sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_TOTEXP sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_ROWMOVE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_ROWINS sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_COLEXPD sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_F4 sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-COUNTFNAME sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-COL_OPT sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-VAL_DATA sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-BLOB_SCOPE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-BLOB_FLAVOUR sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-BLOB_NAME sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-BLOB_KEY sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-BLOB_TYPE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-STYLEFNAME sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_ROWMARK sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_TOOLBAR sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-GRID_TITLE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-SEL_MODE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-BOX_FNAME sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-SGL_CLK_HD sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_TOTLINE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NUMC_TOTAL sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_UTSPLIT sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-EXCP_FNAME sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-EXCP_ROLLN sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-EXCP_CONDS sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-EXCP_LED sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-EXCP_GROUP sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-DETAILINIT sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-DETAILTITL sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-KEYHOT sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-NO_AUTHOR sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-XIFUNCKEY sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-XIDIRECT sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-S_DRAGDROP sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-CNTR_DDID sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-GRID_DDID sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-COL_DDID sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-ROW_DDID sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-FIELDNAME sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-INFO_FNAME sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-CTAB_FNAME sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-WEBLOOK sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-WEBSTYLE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-WEBROWS sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-WEBXWIDTH sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-WEBXHEIGHT sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-LAYOUT sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-FIELDNAME sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-STYLE sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-STYLE2 sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-STYLE3 sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-STYLE4 sy-vline
WA_WB2_S_CPM_SCREEN_DATA_STR-MAXLEN sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.