ABAP Select data from SAP table RM61HELP 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 RM61HELP 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 RM61HELP. 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 RM61HELP 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_RM61HELP TYPE STANDARD TABLE OF RM61HELP,
      WA_RM61HELP TYPE RM61HELP,
      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: <RM61HELP> TYPE RM61HELP.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RM61HELP
*  INTO TABLE @DATA(IT_RM61HELP2).
*--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_RM61HELP INDEX 1 INTO DATA(WA_RM61HELP2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RM61HELP ASSIGNING <RM61HELP>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RM61HELP>-OR_FERT = 1.
<RM61HELP>-OR_FIX = 1.
<RM61HELP>-OR_PLAN = 1.
<RM61HELP>-OR_SUM = 1.
<RM61HELP>-OR_OV = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RM61HELP-OR_REST, sy-vline,
WA_RM61HELP-OR_BED, sy-vline,
WA_RM61HELP-OR_SZU, sy-vline,
WA_RM61HELP-OR_VERF, sy-vline,
WA_RM61HELP-OR_FIX_KO, sy-vline,
WA_RM61HELP-OR_PLAN_KO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RM61HELP 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_RM61HELP 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_RM61HELP INTO WA_RM61HELP. *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_RM61HELP_STR,
OR_FERT TYPE STRING,
OR_FIX TYPE STRING,
OR_PLAN TYPE STRING,
OR_SUM TYPE STRING,
OR_OV TYPE STRING,
OR_REST TYPE STRING,
OR_BED TYPE STRING,
OR_SZU TYPE STRING,
OR_VERF TYPE STRING,
OR_FIX_KO TYPE STRING,
OR_PLAN_KO TYPE STRING,
OR_SUM_KO TYPE STRING,
OR_OV_KO TYPE STRING,
OR_REST_KO TYPE STRING,
OR_BED_KO TYPE STRING,
OR_SZU_KO TYPE STRING,
OR_VERF_KO TYPE STRING,
MT_BED TYPE STRING,
MT_FREI TYPE STRING,
MT_ISTRW TYPE STRING,
MT_KAPA TYPE STRING,
MT_KAPBE TYPE STRING,
MT_KAPBES TYPE STRING,
MT_KAPBL TYPE STRING,
MT_MAXRW TYPE STRING,
MT_MINRW TYPE STRING,
MT_OV TYPE STRING,
MT_OV_KO TYPE STRING,
MT_PLAN TYPE STRING,
MT_PLAN_KO TYPE STRING,
MT_SOLLRW TYPE STRING,
MT_SZU TYPE STRING,
MT_VERF TYPE STRING,
PID_EINZ TYPE STRING,
PID_SMAT TYPE STRING,
PID_SID1 TYPE STRING,
PID_SID2 TYPE STRING,
LI_ANVER TYPE STRING,
LI_EINZ TYPE STRING,
LI_ISTMAX TYPE STRING,
LI_ISTMIN TYPE STRING,
LI_ISTRW TYPE STRING,
LI_ISTSOLL TYPE STRING,
LI_KAPA TYPE STRING,
LI_KAPBE TYPE STRING,
LI_KAPBES TYPE STRING,
LI_KAPBL TYPE STRING,
LI_MAT TYPE STRING,
LI_MAXRW TYPE STRING,
LI_MINRW TYPE STRING,
LI_OVER TYPE STRING,
LI_SOLLRW TYPE STRING,
PGR_LINE TYPE STRING,
PGR_MAT TYPE STRING,
PGR_SUM TYPE STRING,
PGR_VER TYPE STRING,
LGR_KAPA TYPE STRING,
LGR_KAPBE TYPE STRING,
LGR_KAPBES TYPE STRING,
LGR_KAPBL TYPE STRING,
RK_FREI TYPE STRING,
RK_IST TYPE STRING,
RK_MELD TYPE STRING,
RK_PLAN TYPE STRING,
RK_SUM TYPE STRING,
WA_FREI TYPE STRING,
WA_IST TYPE STRING,
WA_MELD TYPE STRING,
WA_PLAN TYPE STRING,
WA_SUM TYPE STRING,
WE_FREI TYPE STRING,
WE_IST TYPE STRING,
WE_MELD TYPE STRING,
WE_PLAN TYPE STRING,
WE_SUM TYPE STRING,END OF T_EKKO_STR. DATA: WA_RM61HELP_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_RM61HELP_STR-OR_FERT sy-vline
WA_RM61HELP_STR-OR_FIX sy-vline
WA_RM61HELP_STR-OR_PLAN sy-vline
WA_RM61HELP_STR-OR_SUM sy-vline
WA_RM61HELP_STR-OR_OV sy-vline
WA_RM61HELP_STR-OR_REST sy-vline
WA_RM61HELP_STR-OR_BED sy-vline
WA_RM61HELP_STR-OR_SZU sy-vline
WA_RM61HELP_STR-OR_VERF sy-vline
WA_RM61HELP_STR-OR_FIX_KO sy-vline
WA_RM61HELP_STR-OR_PLAN_KO sy-vline
WA_RM61HELP_STR-OR_SUM_KO sy-vline
WA_RM61HELP_STR-OR_OV_KO sy-vline
WA_RM61HELP_STR-OR_REST_KO sy-vline
WA_RM61HELP_STR-OR_BED_KO sy-vline
WA_RM61HELP_STR-OR_SZU_KO sy-vline
WA_RM61HELP_STR-OR_VERF_KO sy-vline
WA_RM61HELP_STR-MT_BED sy-vline
WA_RM61HELP_STR-MT_FREI sy-vline
WA_RM61HELP_STR-MT_ISTRW sy-vline
WA_RM61HELP_STR-MT_KAPA sy-vline
WA_RM61HELP_STR-MT_KAPBE sy-vline
WA_RM61HELP_STR-MT_KAPBES sy-vline
WA_RM61HELP_STR-MT_KAPBL sy-vline
WA_RM61HELP_STR-MT_MAXRW sy-vline
WA_RM61HELP_STR-MT_MINRW sy-vline
WA_RM61HELP_STR-MT_OV sy-vline
WA_RM61HELP_STR-MT_OV_KO sy-vline
WA_RM61HELP_STR-MT_PLAN sy-vline
WA_RM61HELP_STR-MT_PLAN_KO sy-vline
WA_RM61HELP_STR-MT_SOLLRW sy-vline
WA_RM61HELP_STR-MT_SZU sy-vline
WA_RM61HELP_STR-MT_VERF sy-vline
WA_RM61HELP_STR-PID_EINZ sy-vline
WA_RM61HELP_STR-PID_SMAT sy-vline
WA_RM61HELP_STR-PID_SID1 sy-vline
WA_RM61HELP_STR-PID_SID2 sy-vline
WA_RM61HELP_STR-LI_ANVER sy-vline
WA_RM61HELP_STR-LI_EINZ sy-vline
WA_RM61HELP_STR-LI_ISTMAX sy-vline
WA_RM61HELP_STR-LI_ISTMIN sy-vline
WA_RM61HELP_STR-LI_ISTRW sy-vline
WA_RM61HELP_STR-LI_ISTSOLL sy-vline
WA_RM61HELP_STR-LI_KAPA sy-vline
WA_RM61HELP_STR-LI_KAPBE sy-vline
WA_RM61HELP_STR-LI_KAPBES sy-vline
WA_RM61HELP_STR-LI_KAPBL sy-vline
WA_RM61HELP_STR-LI_MAT sy-vline
WA_RM61HELP_STR-LI_MAXRW sy-vline
WA_RM61HELP_STR-LI_MINRW sy-vline
WA_RM61HELP_STR-LI_OVER sy-vline
WA_RM61HELP_STR-LI_SOLLRW sy-vline
WA_RM61HELP_STR-PGR_LINE sy-vline
WA_RM61HELP_STR-PGR_MAT sy-vline
WA_RM61HELP_STR-PGR_SUM sy-vline
WA_RM61HELP_STR-PGR_VER sy-vline
WA_RM61HELP_STR-LGR_KAPA sy-vline
WA_RM61HELP_STR-LGR_KAPBE sy-vline
WA_RM61HELP_STR-LGR_KAPBES sy-vline
WA_RM61HELP_STR-LGR_KAPBL sy-vline
WA_RM61HELP_STR-RK_FREI sy-vline
WA_RM61HELP_STR-RK_IST sy-vline
WA_RM61HELP_STR-RK_MELD sy-vline
WA_RM61HELP_STR-RK_PLAN sy-vline
WA_RM61HELP_STR-RK_SUM sy-vline
WA_RM61HELP_STR-WA_FREI sy-vline
WA_RM61HELP_STR-WA_IST sy-vline
WA_RM61HELP_STR-WA_MELD sy-vline
WA_RM61HELP_STR-WA_PLAN sy-vline
WA_RM61HELP_STR-WA_SUM sy-vline
WA_RM61HELP_STR-WE_FREI sy-vline
WA_RM61HELP_STR-WE_IST sy-vline
WA_RM61HELP_STR-WE_MELD sy-vline
WA_RM61HELP_STR-WE_PLAN sy-vline
WA_RM61HELP_STR-WE_SUM sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.