ABAP Select data from SAP table RC68K 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 RC68K 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 RC68K. 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 RC68K 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_RC68K TYPE STANDARD TABLE OF RC68K,
      WA_RC68K TYPE RC68K,
      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: <RC68K> TYPE RC68K.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RC68K
*  INTO TABLE @DATA(IT_RC68K2).
*--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_RC68K INDEX 1 INTO DATA(WA_RC68K2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RC68K ASSIGNING <RC68K>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RC68K>-ANZHL = 1.
<RC68K>-AKTYP = 1.
<RC68K>-ARBPL = 1.
<RC68K>-ARKTX = 1.
<RC68K>-ART = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RC68K-ART_A, sy-vline,
WA_RC68K-ART01, sy-vline,
WA_RC68K-ART02, sy-vline,
WA_RC68K-ART03, sy-vline,
WA_RC68K-ART_CPY, sy-vline,
WA_RC68K-BEGZT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RC68K 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_RC68K 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_RC68K INTO WA_RC68K. *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 CUNIT, internal->external for field KAPEH CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RC68K-KAPEH IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RC68K-KAPEH.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field KAPEH_01 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RC68K-KAPEH_01 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RC68K-KAPEH_01.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field KAPEH_02 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RC68K-KAPEH_02 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RC68K-KAPEH_02.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field KAPEH_03 CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_RC68K-KAPEH_03 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RC68K-KAPEH_03.
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_RC68K_STR,
ANZHL TYPE STRING,
AKTYP TYPE STRING,
ARBPL TYPE STRING,
ARKTX TYPE STRING,
ART TYPE STRING,
ART_A TYPE STRING,
ART01 TYPE STRING,
ART02 TYPE STRING,
ART03 TYPE STRING,
ART_CPY TYPE STRING,
BEGZT TYPE STRING,
BROBJ TYPE STRING,
CANUM_A TYPE STRING,
CANUM01 TYPE STRING,
CANUM02 TYPE STRING,
CANUM03 TYPE STRING,
DATUB TYPE STRING,
DATUB_CPY TYPE STRING,
DATUV TYPE STRING,
DATUB_SEL TYPE STRING,
DATUV_SEL TYPE STRING,
DDTEXT TYPE STRING,
EINZH TYPE STRING,
EINZH01 TYPE STRING,
EINZH02 TYPE STRING,
EINZH03 TYPE STRING,
ENDZT TYPE STRING,
FLG_DEF TYPE STRING,
FLG_MARKED TYPE STRING,
FLG_NEWPOS TYPE STRING,
FLG_OBJECT TYPE STRING,
KAPAH TYPE STRING,
KAPAH01 TYPE STRING,
KAPAH02 TYPE STRING,
KAPAH03 TYPE STRING,
KAPAZ TYPE STRING,
KAPAZ_01 TYPE STRING,
KAPAZ_02 TYPE STRING,
KAPAZ_03 TYPE STRING,
KAPAZ_VM_MAX TYPE STRING,
KAPAZ_VM_MIN TYPE STRING,
KAPAZ_VM_MAX_TOT TYPE STRING,
KAPAZ_VM_MIN_TOT TYPE STRING,
KAPEH TYPE STRING,
KAPEH_01 TYPE STRING,
KAPEH_02 TYPE STRING,
KAPEH_03 TYPE STRING,
KAPEL_01 TYPE STRING,
KAPEL_02 TYPE STRING,
KAPEL_03 TYPE STRING,
NAME TYPE STRING,
NAME01 TYPE STRING,
NAME02 TYPE STRING,
NAME03 TYPE STRING,
NGRAD TYPE STRING,
PAUSE TYPE STRING,
REF_ARBPL TYPE STRING,
REF_NAME TYPE STRING,
REF_WERKS TYPE STRING,
SCHNR TYPE STRING,
SCHNR_CPY TYPE STRING,
SELKZ TYPE STRING,
SELKZ01 TYPE STRING,
SELKZ02 TYPE STRING,
SELKZ03 TYPE STRING,
SELKZ04 TYPE STRING,
SELKZ05 TYPE STRING,
TAGNR TYPE STRING,
TAGNR_CPY TYPE STRING,
TEXT40A TYPE STRING,
TEXT40B TYPE STRING,
VERSN TYPE STRING,
VERSN_CPY TYPE STRING,
VERSN01 TYPE STRING,
VERSN02 TYPE STRING,
VERSN03 TYPE STRING,
WERKS TYPE STRING,
WERKS01 TYPE STRING,
WERKS02 TYPE STRING,
WERKS03 TYPE STRING,
WOTAG TYPE STRING,
MSEHT TYPE STRING,
SHORT TYPE STRING,
KAPLPL TYPE STRING,
KAPAKZ TYPE STRING,
SPROG TYPE STRING,
WONUM TYPE STRING,END OF T_EKKO_STR. DATA: WA_RC68K_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_RC68K_STR-ANZHL sy-vline
WA_RC68K_STR-AKTYP sy-vline
WA_RC68K_STR-ARBPL sy-vline
WA_RC68K_STR-ARKTX sy-vline
WA_RC68K_STR-ART sy-vline
WA_RC68K_STR-ART_A sy-vline
WA_RC68K_STR-ART01 sy-vline
WA_RC68K_STR-ART02 sy-vline
WA_RC68K_STR-ART03 sy-vline
WA_RC68K_STR-ART_CPY sy-vline
WA_RC68K_STR-BEGZT sy-vline
WA_RC68K_STR-BROBJ sy-vline
WA_RC68K_STR-CANUM_A sy-vline
WA_RC68K_STR-CANUM01 sy-vline
WA_RC68K_STR-CANUM02 sy-vline
WA_RC68K_STR-CANUM03 sy-vline
WA_RC68K_STR-DATUB sy-vline
WA_RC68K_STR-DATUB_CPY sy-vline
WA_RC68K_STR-DATUV sy-vline
WA_RC68K_STR-DATUB_SEL sy-vline
WA_RC68K_STR-DATUV_SEL sy-vline
WA_RC68K_STR-DDTEXT sy-vline
WA_RC68K_STR-EINZH sy-vline
WA_RC68K_STR-EINZH01 sy-vline
WA_RC68K_STR-EINZH02 sy-vline
WA_RC68K_STR-EINZH03 sy-vline
WA_RC68K_STR-ENDZT sy-vline
WA_RC68K_STR-FLG_DEF sy-vline
WA_RC68K_STR-FLG_MARKED sy-vline
WA_RC68K_STR-FLG_NEWPOS sy-vline
WA_RC68K_STR-FLG_OBJECT sy-vline
WA_RC68K_STR-KAPAH sy-vline
WA_RC68K_STR-KAPAH01 sy-vline
WA_RC68K_STR-KAPAH02 sy-vline
WA_RC68K_STR-KAPAH03 sy-vline
WA_RC68K_STR-KAPAZ sy-vline
WA_RC68K_STR-KAPAZ_01 sy-vline
WA_RC68K_STR-KAPAZ_02 sy-vline
WA_RC68K_STR-KAPAZ_03 sy-vline
WA_RC68K_STR-KAPAZ_VM_MAX sy-vline
WA_RC68K_STR-KAPAZ_VM_MIN sy-vline
WA_RC68K_STR-KAPAZ_VM_MAX_TOT sy-vline
WA_RC68K_STR-KAPAZ_VM_MIN_TOT sy-vline
WA_RC68K_STR-KAPEH sy-vline
WA_RC68K_STR-KAPEH_01 sy-vline
WA_RC68K_STR-KAPEH_02 sy-vline
WA_RC68K_STR-KAPEH_03 sy-vline
WA_RC68K_STR-KAPEL_01 sy-vline
WA_RC68K_STR-KAPEL_02 sy-vline
WA_RC68K_STR-KAPEL_03 sy-vline
WA_RC68K_STR-NAME sy-vline
WA_RC68K_STR-NAME01 sy-vline
WA_RC68K_STR-NAME02 sy-vline
WA_RC68K_STR-NAME03 sy-vline
WA_RC68K_STR-NGRAD sy-vline
WA_RC68K_STR-PAUSE sy-vline
WA_RC68K_STR-REF_ARBPL sy-vline
WA_RC68K_STR-REF_NAME sy-vline
WA_RC68K_STR-REF_WERKS sy-vline
WA_RC68K_STR-SCHNR sy-vline
WA_RC68K_STR-SCHNR_CPY sy-vline
WA_RC68K_STR-SELKZ sy-vline
WA_RC68K_STR-SELKZ01 sy-vline
WA_RC68K_STR-SELKZ02 sy-vline
WA_RC68K_STR-SELKZ03 sy-vline
WA_RC68K_STR-SELKZ04 sy-vline
WA_RC68K_STR-SELKZ05 sy-vline
WA_RC68K_STR-TAGNR sy-vline
WA_RC68K_STR-TAGNR_CPY sy-vline
WA_RC68K_STR-TEXT40A sy-vline
WA_RC68K_STR-TEXT40B sy-vline
WA_RC68K_STR-VERSN sy-vline
WA_RC68K_STR-VERSN_CPY sy-vline
WA_RC68K_STR-VERSN01 sy-vline
WA_RC68K_STR-VERSN02 sy-vline
WA_RC68K_STR-VERSN03 sy-vline
WA_RC68K_STR-WERKS sy-vline
WA_RC68K_STR-WERKS01 sy-vline
WA_RC68K_STR-WERKS02 sy-vline
WA_RC68K_STR-WERKS03 sy-vline
WA_RC68K_STR-WOTAG sy-vline
WA_RC68K_STR-MSEHT sy-vline
WA_RC68K_STR-SHORT sy-vline
WA_RC68K_STR-KAPLPL sy-vline
WA_RC68K_STR-KAPAKZ sy-vline
WA_RC68K_STR-SPROG sy-vline
WA_RC68K_STR-WONUM sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.