ABAP Select data from SAP table RPCMAGK0 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 RPCMAGK0 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 RPCMAGK0. 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 RPCMAGK0 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_RPCMAGK0 TYPE STANDARD TABLE OF RPCMAGK0,
      WA_RPCMAGK0 TYPE RPCMAGK0,
      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: <RPCMAGK0> TYPE RPCMAGK0.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RPCMAGK0
*  INTO TABLE @DATA(IT_RPCMAGK02).
*--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_RPCMAGK0 INDEX 1 INTO DATA(WA_RPCMAGK02).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RPCMAGK0 ASSIGNING <RPCMAGK0>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RPCMAGK0>-FILEMAX = 1.
<RPCMAGK0>-FILE_DES = 1.
<RPCMAGK0>-TRAN_NUM = 1.
<RPCMAGK0>-R1NUMBER = 1.
<RPCMAGK0>-SUMM_MAX = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RPCMAGK0-TRAN_NAM, sy-vline,
WA_RPCMAGK0-TECH_NAM, sy-vline,
WA_RPCMAGK0-ACCN_NAM, sy-vline,
WA_RPCMAGK0-CAN_LANG, sy-vline,
WA_RPCMAGK0-PROVINCE, sy-vline,
WA_RPCMAGK0-FORM_SEL, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RPCMAGK0 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_RPCMAGK0 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_RPCMAGK0 INTO WA_RPCMAGK0. *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_RPCMAGK0_STR,
FILEMAX TYPE STRING,
FILE_DES TYPE STRING,
TRAN_NUM TYPE STRING,
R1NUMBER TYPE STRING,
SUMM_MAX TYPE STRING,
TRAN_NAM TYPE STRING,
TECH_NAM TYPE STRING,
ACCN_NAM TYPE STRING,
CAN_LANG TYPE STRING,
PROVINCE TYPE STRING,
FORM_SEL TYPE STRING,
OPTIONS TYPE STRING,
FORMTYPE TYPE STRING,
PERWTYPE TYPE STRING,
RADBUTT1 TYPE STRING,
RADBUTT2 TYPE STRING,
RADBUTT3 TYPE STRING,
PROPSIN TYPE STRING,
RUNTYPE TYPE STRING,
CORRDATE TYPE STRING,
TEMSE TYPE STRING,
SOURCE TYPE STRING,
SUMMARY TYPE STRING,
PREVIEW TYPE STRING,
ASOFDATE TYPE STRING,
PRD_RUN TYPE STRING,
AMD_RUN TYPE STRING,
DUP_RUN TYPE STRING,
PRT_RUN TYPE STRING,
REP_RUN TYPE STRING,
TEST_RUN TYPE STRING,
RD_TEMSE TYPE STRING,
RD_MAGFL TYPE STRING,
PREVMAG TYPE STRING,
SS_FORM TYPE STRING,
LF_FORM TYPE STRING,
SUM_ONLY TYPE STRING,
BKPRINT TYPE STRING,
R2NUMBER TYPE STRING,
APD_RUN TYPE STRING,
DISP_LOG TYPE STRING,
DO_RUN TYPE STRING,
DO_PRT TYPE STRING,
TEST_PRT TYPE STRING,
NON_PRT TYPE STRING,
AMD_LIVE TYPE STRING,END OF T_EKKO_STR. DATA: WA_RPCMAGK0_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_RPCMAGK0_STR-FILEMAX sy-vline
WA_RPCMAGK0_STR-FILE_DES sy-vline
WA_RPCMAGK0_STR-TRAN_NUM sy-vline
WA_RPCMAGK0_STR-R1NUMBER sy-vline
WA_RPCMAGK0_STR-SUMM_MAX sy-vline
WA_RPCMAGK0_STR-TRAN_NAM sy-vline
WA_RPCMAGK0_STR-TECH_NAM sy-vline
WA_RPCMAGK0_STR-ACCN_NAM sy-vline
WA_RPCMAGK0_STR-CAN_LANG sy-vline
WA_RPCMAGK0_STR-PROVINCE sy-vline
WA_RPCMAGK0_STR-FORM_SEL sy-vline
WA_RPCMAGK0_STR-OPTIONS sy-vline
WA_RPCMAGK0_STR-FORMTYPE sy-vline
WA_RPCMAGK0_STR-PERWTYPE sy-vline
WA_RPCMAGK0_STR-RADBUTT1 sy-vline
WA_RPCMAGK0_STR-RADBUTT2 sy-vline
WA_RPCMAGK0_STR-RADBUTT3 sy-vline
WA_RPCMAGK0_STR-PROPSIN sy-vline
WA_RPCMAGK0_STR-RUNTYPE sy-vline
WA_RPCMAGK0_STR-CORRDATE sy-vline
WA_RPCMAGK0_STR-TEMSE sy-vline
WA_RPCMAGK0_STR-SOURCE sy-vline
WA_RPCMAGK0_STR-SUMMARY sy-vline
WA_RPCMAGK0_STR-PREVIEW sy-vline
WA_RPCMAGK0_STR-ASOFDATE sy-vline
WA_RPCMAGK0_STR-PRD_RUN sy-vline
WA_RPCMAGK0_STR-AMD_RUN sy-vline
WA_RPCMAGK0_STR-DUP_RUN sy-vline
WA_RPCMAGK0_STR-PRT_RUN sy-vline
WA_RPCMAGK0_STR-REP_RUN sy-vline
WA_RPCMAGK0_STR-TEST_RUN sy-vline
WA_RPCMAGK0_STR-RD_TEMSE sy-vline
WA_RPCMAGK0_STR-RD_MAGFL sy-vline
WA_RPCMAGK0_STR-PREVMAG sy-vline
WA_RPCMAGK0_STR-SS_FORM sy-vline
WA_RPCMAGK0_STR-LF_FORM sy-vline
WA_RPCMAGK0_STR-SUM_ONLY sy-vline
WA_RPCMAGK0_STR-BKPRINT sy-vline
WA_RPCMAGK0_STR-R2NUMBER sy-vline
WA_RPCMAGK0_STR-APD_RUN sy-vline
WA_RPCMAGK0_STR-DISP_LOG sy-vline
WA_RPCMAGK0_STR-DO_RUN sy-vline
WA_RPCMAGK0_STR-DO_PRT sy-vline
WA_RPCMAGK0_STR-TEST_PRT sy-vline
WA_RPCMAGK0_STR-NON_PRT sy-vline
WA_RPCMAGK0_STR-AMD_LIVE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.