ABAP Select data from SAP table CATS_TECHN 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 CATS_TECHN 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 CATS_TECHN. 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 CATS_TECHN 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_CATS_TECHN TYPE STANDARD TABLE OF CATS_TECHN, WA_CATS_TECHN TYPE CATS_TECHN, 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: <CATS_TECHN> TYPE CATS_TECHN. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_CATS_TECHN. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM CATS_TECHN INTO TABLE IT_CATS_TECHN. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM CATS_TECHN * INTO TABLE @DATA(IT_CATS_TECHN2). *--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_CATS_TECHN INDEX 1 INTO DATA(WA_CATS_TECHN2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_CATS_TECHN ASSIGNING <CATS_TECHN>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<CATS_TECHN>-COUNTER1 = 1.
<CATS_TECHN>-STATUS1 = 1.
<CATS_TECHN>-COUNTER2 = 1.
<CATS_TECHN>-STATUS2 = 1.
<CATS_TECHN>-COUNTER3 = 1.
ENDLOOP. LOOP AT IT_CATS_TECHN INTO WA_CATS_TECHN. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_CATS_TECHN-STATUS3, sy-vline,
WA_CATS_TECHN-COUNTER4, sy-vline,
WA_CATS_TECHN-STATUS4, sy-vline,
WA_CATS_TECHN-COUNTER5, sy-vline,
WA_CATS_TECHN-STATUS5, sy-vline,
WA_CATS_TECHN-COUNTER6, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CATS_TECHN 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_CATS_TECHN 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_CATS_TECHN INTO WA_CATS_TECHN. *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_CATS_TECHN_STR,
COUNTER1 TYPE STRING,
STATUS1 TYPE STRING,
COUNTER2 TYPE STRING,
STATUS2 TYPE STRING,
COUNTER3 TYPE STRING,
STATUS3 TYPE STRING,
COUNTER4 TYPE STRING,
STATUS4 TYPE STRING,
COUNTER5 TYPE STRING,
STATUS5 TYPE STRING,
COUNTER6 TYPE STRING,
STATUS6 TYPE STRING,
COUNTER7 TYPE STRING,
STATUS7 TYPE STRING,
COUNTER8 TYPE STRING,
STATUS8 TYPE STRING,
COUNTER9 TYPE STRING,
STATUS9 TYPE STRING,
COUNTER10 TYPE STRING,
STATUS10 TYPE STRING,
COUNTER11 TYPE STRING,
STATUS11 TYPE STRING,
COUNTER12 TYPE STRING,
STATUS12 TYPE STRING,
COUNTER13 TYPE STRING,
STATUS13 TYPE STRING,
COUNTER14 TYPE STRING,
STATUS14 TYPE STRING,
COUNTER15 TYPE STRING,
STATUS15 TYPE STRING,
COUNTER16 TYPE STRING,
STATUS16 TYPE STRING,
COUNTER17 TYPE STRING,
STATUS17 TYPE STRING,
COUNTER18 TYPE STRING,
STATUS18 TYPE STRING,
COUNTER19 TYPE STRING,
STATUS19 TYPE STRING,
COUNTER20 TYPE STRING,
STATUS20 TYPE STRING,
COUNTER21 TYPE STRING,
STATUS21 TYPE STRING,
COUNTER22 TYPE STRING,
STATUS22 TYPE STRING,
COUNTER23 TYPE STRING,
STATUS23 TYPE STRING,
COUNTER24 TYPE STRING,
STATUS24 TYPE STRING,
COUNTER25 TYPE STRING,
STATUS25 TYPE STRING,
COUNTER26 TYPE STRING,
STATUS26 TYPE STRING,
COUNTER27 TYPE STRING,
STATUS27 TYPE STRING,
COUNTER28 TYPE STRING,
STATUS28 TYPE STRING,
COUNTER29 TYPE STRING,
STATUS29 TYPE STRING,
COUNTER30 TYPE STRING,
STATUS30 TYPE STRING,
COUNTER31 TYPE STRING,
STATUS31 TYPE STRING,END OF T_EKKO_STR. DATA: WA_CATS_TECHN_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_CATS_TECHN_STR-COUNTER1 sy-vline
WA_CATS_TECHN_STR-STATUS1 sy-vline
WA_CATS_TECHN_STR-COUNTER2 sy-vline
WA_CATS_TECHN_STR-STATUS2 sy-vline
WA_CATS_TECHN_STR-COUNTER3 sy-vline
WA_CATS_TECHN_STR-STATUS3 sy-vline
WA_CATS_TECHN_STR-COUNTER4 sy-vline
WA_CATS_TECHN_STR-STATUS4 sy-vline
WA_CATS_TECHN_STR-COUNTER5 sy-vline
WA_CATS_TECHN_STR-STATUS5 sy-vline
WA_CATS_TECHN_STR-COUNTER6 sy-vline
WA_CATS_TECHN_STR-STATUS6 sy-vline
WA_CATS_TECHN_STR-COUNTER7 sy-vline
WA_CATS_TECHN_STR-STATUS7 sy-vline
WA_CATS_TECHN_STR-COUNTER8 sy-vline
WA_CATS_TECHN_STR-STATUS8 sy-vline
WA_CATS_TECHN_STR-COUNTER9 sy-vline
WA_CATS_TECHN_STR-STATUS9 sy-vline
WA_CATS_TECHN_STR-COUNTER10 sy-vline
WA_CATS_TECHN_STR-STATUS10 sy-vline
WA_CATS_TECHN_STR-COUNTER11 sy-vline
WA_CATS_TECHN_STR-STATUS11 sy-vline
WA_CATS_TECHN_STR-COUNTER12 sy-vline
WA_CATS_TECHN_STR-STATUS12 sy-vline
WA_CATS_TECHN_STR-COUNTER13 sy-vline
WA_CATS_TECHN_STR-STATUS13 sy-vline
WA_CATS_TECHN_STR-COUNTER14 sy-vline
WA_CATS_TECHN_STR-STATUS14 sy-vline
WA_CATS_TECHN_STR-COUNTER15 sy-vline
WA_CATS_TECHN_STR-STATUS15 sy-vline
WA_CATS_TECHN_STR-COUNTER16 sy-vline
WA_CATS_TECHN_STR-STATUS16 sy-vline
WA_CATS_TECHN_STR-COUNTER17 sy-vline
WA_CATS_TECHN_STR-STATUS17 sy-vline
WA_CATS_TECHN_STR-COUNTER18 sy-vline
WA_CATS_TECHN_STR-STATUS18 sy-vline
WA_CATS_TECHN_STR-COUNTER19 sy-vline
WA_CATS_TECHN_STR-STATUS19 sy-vline
WA_CATS_TECHN_STR-COUNTER20 sy-vline
WA_CATS_TECHN_STR-STATUS20 sy-vline
WA_CATS_TECHN_STR-COUNTER21 sy-vline
WA_CATS_TECHN_STR-STATUS21 sy-vline
WA_CATS_TECHN_STR-COUNTER22 sy-vline
WA_CATS_TECHN_STR-STATUS22 sy-vline
WA_CATS_TECHN_STR-COUNTER23 sy-vline
WA_CATS_TECHN_STR-STATUS23 sy-vline
WA_CATS_TECHN_STR-COUNTER24 sy-vline
WA_CATS_TECHN_STR-STATUS24 sy-vline
WA_CATS_TECHN_STR-COUNTER25 sy-vline
WA_CATS_TECHN_STR-STATUS25 sy-vline
WA_CATS_TECHN_STR-COUNTER26 sy-vline
WA_CATS_TECHN_STR-STATUS26 sy-vline
WA_CATS_TECHN_STR-COUNTER27 sy-vline
WA_CATS_TECHN_STR-STATUS27 sy-vline
WA_CATS_TECHN_STR-COUNTER28 sy-vline
WA_CATS_TECHN_STR-STATUS28 sy-vline
WA_CATS_TECHN_STR-COUNTER29 sy-vline
WA_CATS_TECHN_STR-STATUS29 sy-vline
WA_CATS_TECHN_STR-COUNTER30 sy-vline
WA_CATS_TECHN_STR-STATUS30 sy-vline
WA_CATS_TECHN_STR-COUNTER31 sy-vline
WA_CATS_TECHN_STR-STATUS31 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.