ABAP Select data from SAP table MYOBJ_CATS_CUST 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 MYOBJ_CATS_CUST 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 MYOBJ_CATS_CUST. 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 MYOBJ_CATS_CUST 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_MYOBJ_CATS_CUST TYPE STANDARD TABLE OF MYOBJ_CATS_CUST,
      WA_MYOBJ_CATS_CUST TYPE MYOBJ_CATS_CUST,
      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: <MYOBJ_CATS_CUST> TYPE MYOBJ_CATS_CUST.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM MYOBJ_CATS_CUST
*  INTO TABLE @DATA(IT_MYOBJ_CATS_CUST2).
*--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_MYOBJ_CATS_CUST INDEX 1 INTO DATA(WA_MYOBJ_CATS_CUST2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_MYOBJ_CATS_CUST ASSIGNING <MYOBJ_CATS_CUST>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<MYOBJ_CATS_CUST>-CATSPROFIL = 1.
<MYOBJ_CATS_CUST>-PARENT1 = 1.
<MYOBJ_CATS_CUST>-ACTIVE1 = 1.
<MYOBJ_CATS_CUST>-PARENT2 = 1.
<MYOBJ_CATS_CUST>-ACTIVE2 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_MYOBJ_CATS_CUST-PARENT3, sy-vline,
WA_MYOBJ_CATS_CUST-ACTIVE3, sy-vline,
WA_MYOBJ_CATS_CUST-PARENT4, sy-vline,
WA_MYOBJ_CATS_CUST-ACTIVE4, sy-vline,
WA_MYOBJ_CATS_CUST-PARENT5, sy-vline,
WA_MYOBJ_CATS_CUST-ACTIVE5, sy-vline.
ENDLOOP. *Add any further fields from structure WA_MYOBJ_CATS_CUST 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_MYOBJ_CATS_CUST 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_MYOBJ_CATS_CUST INTO WA_MYOBJ_CATS_CUST. *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_MYOBJ_CATS_CUST_STR,
CATSPROFIL TYPE STRING,
PARENT1 TYPE STRING,
ACTIVE1 TYPE STRING,
PARENT2 TYPE STRING,
ACTIVE2 TYPE STRING,
PARENT3 TYPE STRING,
ACTIVE3 TYPE STRING,
PARENT4 TYPE STRING,
ACTIVE4 TYPE STRING,
PARENT5 TYPE STRING,
ACTIVE5 TYPE STRING,
PARENT6 TYPE STRING,
ACTIVE6 TYPE STRING,
PARENT7 TYPE STRING,
ACTIVE7 TYPE STRING,
PARENT8 TYPE STRING,
ACTIVE8 TYPE STRING,
PARENT9 TYPE STRING,
ACTIVE9 TYPE STRING,
PARENT10 TYPE STRING,
ACTIVE10 TYPE STRING,
PARENT11 TYPE STRING,
ACTIVE11 TYPE STRING,
PARENT12 TYPE STRING,
ACTIVE12 TYPE STRING,
PARENT13 TYPE STRING,
ACTIVE13 TYPE STRING,
PARENT14 TYPE STRING,
ACTIVE14 TYPE STRING,
PARENT15 TYPE STRING,
ACTIVE15 TYPE STRING,
PARENT16 TYPE STRING,
ACTIVE16 TYPE STRING,
PARENT17 TYPE STRING,
ACTIVE17 TYPE STRING,
PARENT18 TYPE STRING,
ACTIVE18 TYPE STRING,
PARENT19 TYPE STRING,
ACTIVE19 TYPE STRING,
PARENT20 TYPE STRING,
ACTIVE20 TYPE STRING,END OF T_EKKO_STR. DATA: WA_MYOBJ_CATS_CUST_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_MYOBJ_CATS_CUST_STR-CATSPROFIL sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT1 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE1 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT2 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE2 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT3 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE3 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT4 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE4 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT5 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE5 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT6 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE6 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT7 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE7 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT8 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE8 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT9 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE9 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT10 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE10 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT11 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE11 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT12 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE12 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT13 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE13 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT14 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE14 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT15 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE15 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT16 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE16 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT17 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE17 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT18 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE18 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT19 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE19 sy-vline
WA_MYOBJ_CATS_CUST_STR-PARENT20 sy-vline
WA_MYOBJ_CATS_CUST_STR-ACTIVE20 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.