ABAP Select data from SAP table SBRF_PM_MATRIX 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 SBRF_PM_MATRIX 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 SBRF_PM_MATRIX. 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 SBRF_PM_MATRIX 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_SBRF_PM_MATRIX TYPE STANDARD TABLE OF SBRF_PM_MATRIX,
      WA_SBRF_PM_MATRIX TYPE SBRF_PM_MATRIX,
      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: <SBRF_PM_MATRIX> TYPE SBRF_PM_MATRIX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM SBRF_PM_MATRIX
*  INTO TABLE @DATA(IT_SBRF_PM_MATRIX2).
*--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_SBRF_PM_MATRIX INDEX 1 INTO DATA(WA_SBRF_PM_MATRIX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_SBRF_PM_MATRIX ASSIGNING <SBRF_PM_MATRIX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<SBRF_PM_MATRIX>-LINE = 1.
<SBRF_PM_MATRIX>-LINE_VALUE = 1.
<SBRF_PM_MATRIX>-LINE_VALUE_SHORT = 1.
<SBRF_PM_MATRIX>-COND01 = 1.
<SBRF_PM_MATRIX>-COND02 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_SBRF_PM_MATRIX-COND03, sy-vline,
WA_SBRF_PM_MATRIX-COND04, sy-vline,
WA_SBRF_PM_MATRIX-COND05, sy-vline,
WA_SBRF_PM_MATRIX-COND06, sy-vline,
WA_SBRF_PM_MATRIX-COND07, sy-vline,
WA_SBRF_PM_MATRIX-COND08, sy-vline.
ENDLOOP. *Add any further fields from structure WA_SBRF_PM_MATRIX 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_SBRF_PM_MATRIX 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_SBRF_PM_MATRIX INTO WA_SBRF_PM_MATRIX. *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_SBRF_PM_MATRIX_STR,
LINE TYPE STRING,
LINE_VALUE TYPE STRING,
LINE_VALUE_SHORT TYPE STRING,
COND01 TYPE STRING,
COND02 TYPE STRING,
COND03 TYPE STRING,
COND04 TYPE STRING,
COND05 TYPE STRING,
COND06 TYPE STRING,
COND07 TYPE STRING,
COND08 TYPE STRING,
COND09 TYPE STRING,
COND10 TYPE STRING,
COND11 TYPE STRING,
COND12 TYPE STRING,
COND13 TYPE STRING,
COND14 TYPE STRING,
COND15 TYPE STRING,
COND16 TYPE STRING,
COND17 TYPE STRING,
COND18 TYPE STRING,
COND19 TYPE STRING,
COND20 TYPE STRING,
COND21 TYPE STRING,
COND22 TYPE STRING,
COND23 TYPE STRING,
COND24 TYPE STRING,
COND25 TYPE STRING,
COND26 TYPE STRING,
COND27 TYPE STRING,
COND28 TYPE STRING,
COND29 TYPE STRING,
COND30 TYPE STRING,
COND31 TYPE STRING,
COND32 TYPE STRING,END OF T_EKKO_STR. DATA: WA_SBRF_PM_MATRIX_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_SBRF_PM_MATRIX_STR-LINE sy-vline
WA_SBRF_PM_MATRIX_STR-LINE_VALUE sy-vline
WA_SBRF_PM_MATRIX_STR-LINE_VALUE_SHORT sy-vline
WA_SBRF_PM_MATRIX_STR-COND01 sy-vline
WA_SBRF_PM_MATRIX_STR-COND02 sy-vline
WA_SBRF_PM_MATRIX_STR-COND03 sy-vline
WA_SBRF_PM_MATRIX_STR-COND04 sy-vline
WA_SBRF_PM_MATRIX_STR-COND05 sy-vline
WA_SBRF_PM_MATRIX_STR-COND06 sy-vline
WA_SBRF_PM_MATRIX_STR-COND07 sy-vline
WA_SBRF_PM_MATRIX_STR-COND08 sy-vline
WA_SBRF_PM_MATRIX_STR-COND09 sy-vline
WA_SBRF_PM_MATRIX_STR-COND10 sy-vline
WA_SBRF_PM_MATRIX_STR-COND11 sy-vline
WA_SBRF_PM_MATRIX_STR-COND12 sy-vline
WA_SBRF_PM_MATRIX_STR-COND13 sy-vline
WA_SBRF_PM_MATRIX_STR-COND14 sy-vline
WA_SBRF_PM_MATRIX_STR-COND15 sy-vline
WA_SBRF_PM_MATRIX_STR-COND16 sy-vline
WA_SBRF_PM_MATRIX_STR-COND17 sy-vline
WA_SBRF_PM_MATRIX_STR-COND18 sy-vline
WA_SBRF_PM_MATRIX_STR-COND19 sy-vline
WA_SBRF_PM_MATRIX_STR-COND20 sy-vline
WA_SBRF_PM_MATRIX_STR-COND21 sy-vline
WA_SBRF_PM_MATRIX_STR-COND22 sy-vline
WA_SBRF_PM_MATRIX_STR-COND23 sy-vline
WA_SBRF_PM_MATRIX_STR-COND24 sy-vline
WA_SBRF_PM_MATRIX_STR-COND25 sy-vline
WA_SBRF_PM_MATRIX_STR-COND26 sy-vline
WA_SBRF_PM_MATRIX_STR-COND27 sy-vline
WA_SBRF_PM_MATRIX_STR-COND28 sy-vline
WA_SBRF_PM_MATRIX_STR-COND29 sy-vline
WA_SBRF_PM_MATRIX_STR-COND30 sy-vline
WA_SBRF_PM_MATRIX_STR-COND31 sy-vline
WA_SBRF_PM_MATRIX_STR-COND32 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.