ABAP Select data from SAP table RNG12X 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 RNG12X 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 RNG12X. 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 RNG12X 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_RNG12X TYPE STANDARD TABLE OF RNG12X,
      WA_RNG12X TYPE RNG12X,
      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: <RNG12X> TYPE RNG12X.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RNG12X
*  INTO TABLE @DATA(IT_RNG12X2).
*--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_RNG12X INDEX 1 INTO DATA(WA_RNG12X2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RNG12X ASSIGNING <RNG12X>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RNG12X>-LFDNR = 1.
<RNG12X>-KUNNR = 1.
<RNG12X>-AKTION = 1.
<RNG12X>-AKSTAT = 1.
<RNG12X>-AKONT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RNG12X-AKONT_X, sy-vline,
WA_RNG12X-ZUAWA, sy-vline,
WA_RNG12X-ZUAWA_X, sy-vline,
WA_RNG12X-ZTERM, sy-vline,
WA_RNG12X-ZTERM_X, sy-vline,
WA_RNG12X-MAHNA, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RNG12X 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_RNG12X 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_RNG12X INTO WA_RNG12X. *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 ALPHA, internal->external for field KUNNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RNG12X-KUNNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RNG12X-KUNNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field AKONT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RNG12X-AKONT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RNG12X-AKONT.
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_RNG12X_STR,
LFDNR TYPE STRING,
KUNNR TYPE STRING,
AKTION TYPE STRING,
AKSTAT TYPE STRING,
AKONT TYPE STRING,
AKONT_X TYPE STRING,
ZUAWA TYPE STRING,
ZUAWA_X TYPE STRING,
ZTERM TYPE STRING,
ZTERM_X TYPE STRING,
MAHNA TYPE STRING,
MAHNA_X TYPE STRING,
ZWELS TYPE STRING,
ZWELS_X TYPE STRING,
BUSAB_MA TYPE STRING,
BUSAB_MA_X TYPE STRING,
BUSAB TYPE STRING,
BUSAB_X TYPE STRING,
TOGRU TYPE STRING,
TOGRU_X TYPE STRING,
XZVER TYPE STRING,
XZVER_X TYPE STRING,
ZAHLS TYPE STRING,
ZAHLS_X TYPE STRING,
MGRUP TYPE STRING,
MGRUP_X TYPE STRING,
NAME1 TYPE STRING,
NAME1_X TYPE STRING,
NAME2 TYPE STRING,
NAME2_X TYPE STRING,
NAME3 TYPE STRING,
NAME3_X TYPE STRING,
ORT TYPE STRING,
ORT_X TYPE STRING,
PSTLZ TYPE STRING,
PSTLZ_X TYPE STRING,
ORT2 TYPE STRING,
ORT2_X TYPE STRING,
PFACH TYPE STRING,
PFACH_X TYPE STRING,
PSTL2 TYPE STRING,
PSTL2_X TYPE STRING,
LAND TYPE STRING,
LAND_X TYPE STRING,
STRAS TYPE STRING,
STRAS_X TYPE STRING,
TELF1 TYPE STRING,
TELF1_X TYPE STRING,
TELFX TYPE STRING,
TELFX_X TYPE STRING,
TELEX TYPE STRING,
TELEX_X TYPE STRING,
ANRED TYPE STRING,
ANRED_X TYPE STRING,
TITEL TYPE STRING,
TITEL_X TYPE STRING,
NAMZU TYPE STRING,
NAMZU_X TYPE STRING,
VORSW TYPE STRING,
VORSW_X TYPE STRING,
REGIO TYPE STRING,
REGIO_X TYPE STRING,
STRAZ TYPE STRING,
STRAZ_X TYPE STRING,
EINZG TYPE STRING,
EINZG_X TYPE STRING,
LANPF TYPE STRING,
LANPF_X TYPE STRING,
ORTPF TYPE STRING,
ORTPF_X TYPE STRING,
TELXT TYPE STRING,
TELXT_X TYPE STRING,
FAXXT TYPE STRING,
FAXXT_X TYPE STRING,
BUILD TYPE STRING,
BUILD_X TYPE STRING,
FLOOR TYPE STRING,
FLOOR_X TYPE STRING,
ROOM TYPE STRING,
ROOM_X TYPE STRING,
NAME4 TYPE STRING,
NAME4_X TYPE STRING,
HSNM1 TYPE STRING,
HSNM1_X TYPE STRING,
HSNM2 TYPE STRING,
HSNM2_X TYPE STRING,
CITY3 TYPE STRING,
CITY3_X TYPE STRING,
TELF2 TYPE STRING,
TELF2_X TYPE STRING,
CONAM TYPE STRING,
CONAM_X TYPE STRING,
STREET2 TYPE STRING,
STREET2_X TYPE STRING,
STREET3 TYPE STRING,
STREET3_X TYPE STRING,
TELNR TYPE STRING,
TELNR_X TYPE STRING,
PO_BX_NUM TYPE STRING,
PO_BX_NUM_X TYPE STRING,END OF T_EKKO_STR. DATA: WA_RNG12X_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_RNG12X_STR-LFDNR sy-vline
WA_RNG12X_STR-KUNNR sy-vline
WA_RNG12X_STR-AKTION sy-vline
WA_RNG12X_STR-AKSTAT sy-vline
WA_RNG12X_STR-AKONT sy-vline
WA_RNG12X_STR-AKONT_X sy-vline
WA_RNG12X_STR-ZUAWA sy-vline
WA_RNG12X_STR-ZUAWA_X sy-vline
WA_RNG12X_STR-ZTERM sy-vline
WA_RNG12X_STR-ZTERM_X sy-vline
WA_RNG12X_STR-MAHNA sy-vline
WA_RNG12X_STR-MAHNA_X sy-vline
WA_RNG12X_STR-ZWELS sy-vline
WA_RNG12X_STR-ZWELS_X sy-vline
WA_RNG12X_STR-BUSAB_MA sy-vline
WA_RNG12X_STR-BUSAB_MA_X sy-vline
WA_RNG12X_STR-BUSAB sy-vline
WA_RNG12X_STR-BUSAB_X sy-vline
WA_RNG12X_STR-TOGRU sy-vline
WA_RNG12X_STR-TOGRU_X sy-vline
WA_RNG12X_STR-XZVER sy-vline
WA_RNG12X_STR-XZVER_X sy-vline
WA_RNG12X_STR-ZAHLS sy-vline
WA_RNG12X_STR-ZAHLS_X sy-vline
WA_RNG12X_STR-MGRUP sy-vline
WA_RNG12X_STR-MGRUP_X sy-vline
WA_RNG12X_STR-NAME1 sy-vline
WA_RNG12X_STR-NAME1_X sy-vline
WA_RNG12X_STR-NAME2 sy-vline
WA_RNG12X_STR-NAME2_X sy-vline
WA_RNG12X_STR-NAME3 sy-vline
WA_RNG12X_STR-NAME3_X sy-vline
WA_RNG12X_STR-ORT sy-vline
WA_RNG12X_STR-ORT_X sy-vline
WA_RNG12X_STR-PSTLZ sy-vline
WA_RNG12X_STR-PSTLZ_X sy-vline
WA_RNG12X_STR-ORT2 sy-vline
WA_RNG12X_STR-ORT2_X sy-vline
WA_RNG12X_STR-PFACH sy-vline
WA_RNG12X_STR-PFACH_X sy-vline
WA_RNG12X_STR-PSTL2 sy-vline
WA_RNG12X_STR-PSTL2_X sy-vline
WA_RNG12X_STR-LAND sy-vline
WA_RNG12X_STR-LAND_X sy-vline
WA_RNG12X_STR-STRAS sy-vline
WA_RNG12X_STR-STRAS_X sy-vline
WA_RNG12X_STR-TELF1 sy-vline
WA_RNG12X_STR-TELF1_X sy-vline
WA_RNG12X_STR-TELFX sy-vline
WA_RNG12X_STR-TELFX_X sy-vline
WA_RNG12X_STR-TELEX sy-vline
WA_RNG12X_STR-TELEX_X sy-vline
WA_RNG12X_STR-ANRED sy-vline
WA_RNG12X_STR-ANRED_X sy-vline
WA_RNG12X_STR-TITEL sy-vline
WA_RNG12X_STR-TITEL_X sy-vline
WA_RNG12X_STR-NAMZU sy-vline
WA_RNG12X_STR-NAMZU_X sy-vline
WA_RNG12X_STR-VORSW sy-vline
WA_RNG12X_STR-VORSW_X sy-vline
WA_RNG12X_STR-REGIO sy-vline
WA_RNG12X_STR-REGIO_X sy-vline
WA_RNG12X_STR-STRAZ sy-vline
WA_RNG12X_STR-STRAZ_X sy-vline
WA_RNG12X_STR-EINZG sy-vline
WA_RNG12X_STR-EINZG_X sy-vline
WA_RNG12X_STR-LANPF sy-vline
WA_RNG12X_STR-LANPF_X sy-vline
WA_RNG12X_STR-ORTPF sy-vline
WA_RNG12X_STR-ORTPF_X sy-vline
WA_RNG12X_STR-TELXT sy-vline
WA_RNG12X_STR-TELXT_X sy-vline
WA_RNG12X_STR-FAXXT sy-vline
WA_RNG12X_STR-FAXXT_X sy-vline
WA_RNG12X_STR-BUILD sy-vline
WA_RNG12X_STR-BUILD_X sy-vline
WA_RNG12X_STR-FLOOR sy-vline
WA_RNG12X_STR-FLOOR_X sy-vline
WA_RNG12X_STR-ROOM sy-vline
WA_RNG12X_STR-ROOM_X sy-vline
WA_RNG12X_STR-NAME4 sy-vline
WA_RNG12X_STR-NAME4_X sy-vline
WA_RNG12X_STR-HSNM1 sy-vline
WA_RNG12X_STR-HSNM1_X sy-vline
WA_RNG12X_STR-HSNM2 sy-vline
WA_RNG12X_STR-HSNM2_X sy-vline
WA_RNG12X_STR-CITY3 sy-vline
WA_RNG12X_STR-CITY3_X sy-vline
WA_RNG12X_STR-TELF2 sy-vline
WA_RNG12X_STR-TELF2_X sy-vline
WA_RNG12X_STR-CONAM sy-vline
WA_RNG12X_STR-CONAM_X sy-vline
WA_RNG12X_STR-STREET2 sy-vline
WA_RNG12X_STR-STREET2_X sy-vline
WA_RNG12X_STR-STREET3 sy-vline
WA_RNG12X_STR-STREET3_X sy-vline
WA_RNG12X_STR-TELNR sy-vline
WA_RNG12X_STR-TELNR_X sy-vline
WA_RNG12X_STR-PO_BX_NUM sy-vline
WA_RNG12X_STR-PO_BX_NUM_X sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.