ABAP Select data from SAP table CATSBEGEND 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 CATSBEGEND 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 CATSBEGEND. 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 CATSBEGEND 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_CATSBEGEND TYPE STANDARD TABLE OF CATSBEGEND,
      WA_CATSBEGEND TYPE CATSBEGEND,
      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: <CATSBEGEND> TYPE CATSBEGEND.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CATSBEGEND
*  INTO TABLE @DATA(IT_CATSBEGEND2).
*--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_CATSBEGEND INDEX 1 INTO DATA(WA_CATSBEGEND2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CATSBEGEND ASSIGNING <CATSBEGEND>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CATSBEGEND>-BEGUZ1 = 1.
<CATSBEGEND>-BEGUZ2 = 1.
<CATSBEGEND>-BEGUZ3 = 1.
<CATSBEGEND>-BEGUZ4 = 1.
<CATSBEGEND>-BEGUZ5 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CATSBEGEND-BEGUZ6, sy-vline,
WA_CATSBEGEND-BEGUZ7, sy-vline,
WA_CATSBEGEND-BEGUZ8, sy-vline,
WA_CATSBEGEND-BEGUZ9, sy-vline,
WA_CATSBEGEND-BEGUZ10, sy-vline,
WA_CATSBEGEND-BEGUZ11, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CATSBEGEND 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_CATSBEGEND 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_CATSBEGEND INTO WA_CATSBEGEND. *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_CATSBEGEND_STR,
BEGUZ1 TYPE STRING,
BEGUZ2 TYPE STRING,
BEGUZ3 TYPE STRING,
BEGUZ4 TYPE STRING,
BEGUZ5 TYPE STRING,
BEGUZ6 TYPE STRING,
BEGUZ7 TYPE STRING,
BEGUZ8 TYPE STRING,
BEGUZ9 TYPE STRING,
BEGUZ10 TYPE STRING,
BEGUZ11 TYPE STRING,
BEGUZ12 TYPE STRING,
BEGUZ13 TYPE STRING,
BEGUZ14 TYPE STRING,
BEGUZ15 TYPE STRING,
BEGUZ16 TYPE STRING,
BEGUZ17 TYPE STRING,
BEGUZ18 TYPE STRING,
BEGUZ19 TYPE STRING,
BEGUZ20 TYPE STRING,
BEGUZ21 TYPE STRING,
BEGUZ22 TYPE STRING,
BEGUZ23 TYPE STRING,
BEGUZ24 TYPE STRING,
BEGUZ25 TYPE STRING,
BEGUZ26 TYPE STRING,
BEGUZ27 TYPE STRING,
BEGUZ28 TYPE STRING,
BEGUZ29 TYPE STRING,
BEGUZ30 TYPE STRING,
BEGUZ31 TYPE STRING,
ENDUZ1 TYPE STRING,
ENDUZ2 TYPE STRING,
ENDUZ3 TYPE STRING,
ENDUZ4 TYPE STRING,
ENDUZ5 TYPE STRING,
ENDUZ6 TYPE STRING,
ENDUZ7 TYPE STRING,
ENDUZ8 TYPE STRING,
ENDUZ9 TYPE STRING,
ENDUZ10 TYPE STRING,
ENDUZ11 TYPE STRING,
ENDUZ12 TYPE STRING,
ENDUZ13 TYPE STRING,
ENDUZ14 TYPE STRING,
ENDUZ15 TYPE STRING,
ENDUZ16 TYPE STRING,
ENDUZ17 TYPE STRING,
ENDUZ18 TYPE STRING,
ENDUZ19 TYPE STRING,
ENDUZ20 TYPE STRING,
ENDUZ21 TYPE STRING,
ENDUZ22 TYPE STRING,
ENDUZ23 TYPE STRING,
ENDUZ24 TYPE STRING,
ENDUZ25 TYPE STRING,
ENDUZ26 TYPE STRING,
ENDUZ27 TYPE STRING,
ENDUZ28 TYPE STRING,
ENDUZ29 TYPE STRING,
ENDUZ30 TYPE STRING,
ENDUZ31 TYPE STRING,END OF T_EKKO_STR. DATA: WA_CATSBEGEND_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_CATSBEGEND_STR-BEGUZ1 sy-vline
WA_CATSBEGEND_STR-BEGUZ2 sy-vline
WA_CATSBEGEND_STR-BEGUZ3 sy-vline
WA_CATSBEGEND_STR-BEGUZ4 sy-vline
WA_CATSBEGEND_STR-BEGUZ5 sy-vline
WA_CATSBEGEND_STR-BEGUZ6 sy-vline
WA_CATSBEGEND_STR-BEGUZ7 sy-vline
WA_CATSBEGEND_STR-BEGUZ8 sy-vline
WA_CATSBEGEND_STR-BEGUZ9 sy-vline
WA_CATSBEGEND_STR-BEGUZ10 sy-vline
WA_CATSBEGEND_STR-BEGUZ11 sy-vline
WA_CATSBEGEND_STR-BEGUZ12 sy-vline
WA_CATSBEGEND_STR-BEGUZ13 sy-vline
WA_CATSBEGEND_STR-BEGUZ14 sy-vline
WA_CATSBEGEND_STR-BEGUZ15 sy-vline
WA_CATSBEGEND_STR-BEGUZ16 sy-vline
WA_CATSBEGEND_STR-BEGUZ17 sy-vline
WA_CATSBEGEND_STR-BEGUZ18 sy-vline
WA_CATSBEGEND_STR-BEGUZ19 sy-vline
WA_CATSBEGEND_STR-BEGUZ20 sy-vline
WA_CATSBEGEND_STR-BEGUZ21 sy-vline
WA_CATSBEGEND_STR-BEGUZ22 sy-vline
WA_CATSBEGEND_STR-BEGUZ23 sy-vline
WA_CATSBEGEND_STR-BEGUZ24 sy-vline
WA_CATSBEGEND_STR-BEGUZ25 sy-vline
WA_CATSBEGEND_STR-BEGUZ26 sy-vline
WA_CATSBEGEND_STR-BEGUZ27 sy-vline
WA_CATSBEGEND_STR-BEGUZ28 sy-vline
WA_CATSBEGEND_STR-BEGUZ29 sy-vline
WA_CATSBEGEND_STR-BEGUZ30 sy-vline
WA_CATSBEGEND_STR-BEGUZ31 sy-vline
WA_CATSBEGEND_STR-ENDUZ1 sy-vline
WA_CATSBEGEND_STR-ENDUZ2 sy-vline
WA_CATSBEGEND_STR-ENDUZ3 sy-vline
WA_CATSBEGEND_STR-ENDUZ4 sy-vline
WA_CATSBEGEND_STR-ENDUZ5 sy-vline
WA_CATSBEGEND_STR-ENDUZ6 sy-vline
WA_CATSBEGEND_STR-ENDUZ7 sy-vline
WA_CATSBEGEND_STR-ENDUZ8 sy-vline
WA_CATSBEGEND_STR-ENDUZ9 sy-vline
WA_CATSBEGEND_STR-ENDUZ10 sy-vline
WA_CATSBEGEND_STR-ENDUZ11 sy-vline
WA_CATSBEGEND_STR-ENDUZ12 sy-vline
WA_CATSBEGEND_STR-ENDUZ13 sy-vline
WA_CATSBEGEND_STR-ENDUZ14 sy-vline
WA_CATSBEGEND_STR-ENDUZ15 sy-vline
WA_CATSBEGEND_STR-ENDUZ16 sy-vline
WA_CATSBEGEND_STR-ENDUZ17 sy-vline
WA_CATSBEGEND_STR-ENDUZ18 sy-vline
WA_CATSBEGEND_STR-ENDUZ19 sy-vline
WA_CATSBEGEND_STR-ENDUZ20 sy-vline
WA_CATSBEGEND_STR-ENDUZ21 sy-vline
WA_CATSBEGEND_STR-ENDUZ22 sy-vline
WA_CATSBEGEND_STR-ENDUZ23 sy-vline
WA_CATSBEGEND_STR-ENDUZ24 sy-vline
WA_CATSBEGEND_STR-ENDUZ25 sy-vline
WA_CATSBEGEND_STR-ENDUZ26 sy-vline
WA_CATSBEGEND_STR-ENDUZ27 sy-vline
WA_CATSBEGEND_STR-ENDUZ28 sy-vline
WA_CATSBEGEND_STR-ENDUZ29 sy-vline
WA_CATSBEGEND_STR-ENDUZ30 sy-vline
WA_CATSBEGEND_STR-ENDUZ31 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.