ABAP Select data from SAP table CFB_S_RMC_TREE_MAT 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 CFB_S_RMC_TREE_MAT 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 CFB_S_RMC_TREE_MAT. 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 CFB_S_RMC_TREE_MAT 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_CFB_S_RMC_TREE_MAT TYPE STANDARD TABLE OF CFB_S_RMC_TREE_MAT, WA_CFB_S_RMC_TREE_MAT TYPE CFB_S_RMC_TREE_MAT, 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: <CFB_S_RMC_TREE_MAT> TYPE CFB_S_RMC_TREE_MAT. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_CFB_S_RMC_TREE_MAT. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM CFB_S_RMC_TREE_MAT INTO TABLE IT_CFB_S_RMC_TREE_MAT. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM CFB_S_RMC_TREE_MAT * INTO TABLE @DATA(IT_CFB_S_RMC_TREE_MAT2). *--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_CFB_S_RMC_TREE_MAT INDEX 1 INTO DATA(WA_CFB_S_RMC_TREE_MAT2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_CFB_S_RMC_TREE_MAT ASSIGNING <CFB_S_RMC_TREE_MAT>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<CFB_S_RMC_TREE_MAT>-ROW_KEY = 1.
<CFB_S_RMC_TREE_MAT>-PARENT_KEY = 1.
<CFB_S_RMC_TREE_MAT>-IS_LEAF = 1.
<CFB_S_RMC_TREE_MAT>-TREE_TEXT = 1.
<CFB_S_RMC_TREE_MAT>-TREE_IMAGE = 1.
ENDLOOP. LOOP AT IT_CFB_S_RMC_TREE_MAT INTO WA_CFB_S_RMC_TREE_MAT. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_CFB_S_RMC_TREE_MAT-LINE_TYPE, sy-vline,
WA_CFB_S_RMC_TREE_MAT-MATNR, sy-vline,
WA_CFB_S_RMC_TREE_MAT-WERKS, sy-vline,
WA_CFB_S_RMC_TREE_MAT-FLIEF, sy-vline,
WA_CFB_S_RMC_TREE_MAT-PREIS_NEU, sy-vline,
WA_CFB_S_RMC_TREE_MAT-KBETR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CFB_S_RMC_TREE_MAT 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_CFB_S_RMC_TREE_MAT 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_CFB_S_RMC_TREE_MAT INTO WA_CFB_S_RMC_TREE_MAT. *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 MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_CFB_S_RMC_TREE_MAT-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CFB_S_RMC_TREE_MAT-MATNR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field FLIEF CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CFB_S_RMC_TREE_MAT-FLIEF IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CFB_S_RMC_TREE_MAT-FLIEF.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field KMEIN CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CFB_S_RMC_TREE_MAT-KMEIN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CFB_S_RMC_TREE_MAT-KMEIN.
WRITE:/ 'New Value:', ld_input.
*Conversion exit CUNIT, internal->external for field MEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CFB_S_RMC_TREE_MAT-MEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CFB_S_RMC_TREE_MAT-MEINS.
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_CFB_S_RMC_TREE_MAT_STR,
ROW_KEY TYPE STRING,
PARENT_KEY TYPE STRING,
IS_LEAF TYPE STRING,
TREE_TEXT TYPE STRING,
TREE_IMAGE TYPE STRING,
LINE_TYPE TYPE STRING,
MATNR TYPE STRING,
WERKS TYPE STRING,
FLIEF TYPE STRING,
PREIS_NEU TYPE STRING,
KBETR TYPE STRING,
KOEIN TYPE STRING,
KPEIN TYPE STRING,
KMEIN TYPE STRING,
MENGE TYPE STRING,
MEINS TYPE STRING,
MENGE01 TYPE STRING,
MENGE02 TYPE STRING,
MENGE03 TYPE STRING,
MENGE04 TYPE STRING,
MENGE05 TYPE STRING,
MENGE06 TYPE STRING,
MENGE07 TYPE STRING,
MENGE08 TYPE STRING,
MENGE09 TYPE STRING,
MENGE10 TYPE STRING,
MENGE11 TYPE STRING,
MENGE12 TYPE STRING,
MENGE13 TYPE STRING,
MENGE14 TYPE STRING,
MENGE15 TYPE STRING,
MENGE16 TYPE STRING,
MENGE17 TYPE STRING,
MENGE18 TYPE STRING,
MENGE19 TYPE STRING,
MENGE20 TYPE STRING,
MENGE21 TYPE STRING,
MENGE22 TYPE STRING,
MENGE23 TYPE STRING,
MENGE24 TYPE STRING,
MENGE25 TYPE STRING,
MENGE26 TYPE STRING,
MENGE27 TYPE STRING,
MENGE28 TYPE STRING,
MENGE29 TYPE STRING,
MENGE30 TYPE STRING,
MENGE31 TYPE STRING,END OF T_EKKO_STR. DATA: WA_CFB_S_RMC_TREE_MAT_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_CFB_S_RMC_TREE_MAT_STR-ROW_KEY sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-PARENT_KEY sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-IS_LEAF sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-TREE_TEXT sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-TREE_IMAGE sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-LINE_TYPE sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MATNR sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-WERKS sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-FLIEF sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-PREIS_NEU sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-KBETR sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-KOEIN sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-KPEIN sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-KMEIN sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MEINS sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE01 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE02 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE03 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE04 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE05 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE06 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE07 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE08 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE09 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE10 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE11 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE12 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE13 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE14 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE15 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE16 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE17 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE18 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE19 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE20 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE21 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE22 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE23 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE24 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE25 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE26 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE27 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE28 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE29 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE30 sy-vline
WA_CFB_S_RMC_TREE_MAT_STR-MENGE31 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.