ABAP Select data from SAP table RKSPIL_MORE_CURR 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 RKSPIL_MORE_CURR 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 RKSPIL_MORE_CURR. 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 RKSPIL_MORE_CURR 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_RKSPIL_MORE_CURR TYPE STANDARD TABLE OF RKSPIL_MORE_CURR,
      WA_RKSPIL_MORE_CURR TYPE RKSPIL_MORE_CURR,
      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: <RKSPIL_MORE_CURR> TYPE RKSPIL_MORE_CURR.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RKSPIL_MORE_CURR
*  INTO TABLE @DATA(IT_RKSPIL_MORE_CURR2).
*--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_RKSPIL_MORE_CURR INDEX 1 INTO DATA(WA_RKSPIL_MORE_CURR2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RKSPIL_MORE_CURR ASSIGNING <RKSPIL_MORE_CURR>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RKSPIL_MORE_CURR>-AWAER = 1.
<RKSPIL_MORE_CURR>-TAGBTR = 1.
<RKSPIL_MORE_CURR>-TAFBTR = 1.
<RKSPIL_MORE_CURR>-TAVBTR = 1.
<RKSPIL_MORE_CURR>-TAEBTR = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RKSPIL_MORE_CURR-VWAER, sy-vline,
WA_RKSPIL_MORE_CURR-TVGBTR, sy-vline,
WA_RKSPIL_MORE_CURR-TVFBTR, sy-vline,
WA_RKSPIL_MORE_CURR-TVVBTR, sy-vline,
WA_RKSPIL_MORE_CURR-TVEBTR, sy-vline,
WA_RKSPIL_MORE_CURR-BWAER, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RKSPIL_MORE_CURR 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_RKSPIL_MORE_CURR 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_RKSPIL_MORE_CURR INTO WA_RKSPIL_MORE_CURR. *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 AC112, internal->external for field TAGBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TAGBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TAGBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TAFBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TAFBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TAFBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TAVBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TAVBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TAVBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TVGBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TVGBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TVGBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TVFBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TVFBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TVFBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TVVBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TVVBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TVVBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TBGBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TBGBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TBGBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TBFBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TBFBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TBFBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TBVBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TBVBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TBVBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TCGBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TCGBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TCGBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TCFBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TCFBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TCFBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TCVBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TCVBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TCVBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TDGBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TDGBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TDGBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TDFBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TDFBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TDFBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TDVBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TDVBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TDVBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TEGBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TEGBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TEGBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TEFBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TEFBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TEFBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TEVBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TEVBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TEVBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TFGBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TFGBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TFGBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TFFBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TFFBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TFFBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TFVBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TFVBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TFVBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TGGBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TGGBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TGGBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TGFBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TGFBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TGFBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field TGVBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-TGVBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-TGVBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field THGBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-THGBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-THGBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field THFBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-THFBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-THFBTR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AC112, internal->external for field THVBTR CALL FUNCTION 'CONVERSION_EXIT_AC112_OUTPUT' EXPORTING input = WA_RKSPIL_MORE_CURR-THVBTR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKSPIL_MORE_CURR-THVBTR.
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_RKSPIL_MORE_CURR_STR,
AWAER TYPE STRING,
TAGBTR TYPE STRING,
TAFBTR TYPE STRING,
TAVBTR TYPE STRING,
TAEBTR TYPE STRING,
VWAER TYPE STRING,
TVGBTR TYPE STRING,
TVFBTR TYPE STRING,
TVVBTR TYPE STRING,
TVEBTR TYPE STRING,
BWAER TYPE STRING,
TBGBTR TYPE STRING,
TBFBTR TYPE STRING,
TBVBTR TYPE STRING,
TBEBTR TYPE STRING,
CWAER TYPE STRING,
TCGBTR TYPE STRING,
TCFBTR TYPE STRING,
TCVBTR TYPE STRING,
TCEBTR TYPE STRING,
DWAER TYPE STRING,
TDGBTR TYPE STRING,
TDFBTR TYPE STRING,
TDVBTR TYPE STRING,
TDEBTR TYPE STRING,
EWAER TYPE STRING,
TEGBTR TYPE STRING,
TEFBTR TYPE STRING,
TEVBTR TYPE STRING,
TEEBTR TYPE STRING,
FWAER TYPE STRING,
TFGBTR TYPE STRING,
TFFBTR TYPE STRING,
TFVBTR TYPE STRING,
TFEBTR TYPE STRING,
GWAER TYPE STRING,
TGGBTR TYPE STRING,
TGFBTR TYPE STRING,
TGVBTR TYPE STRING,
TGEBTR TYPE STRING,
HWAER TYPE STRING,
THGBTR TYPE STRING,
THFBTR TYPE STRING,
THVBTR TYPE STRING,
THEBTR TYPE STRING,END OF T_EKKO_STR. DATA: WA_RKSPIL_MORE_CURR_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_RKSPIL_MORE_CURR_STR-AWAER sy-vline
WA_RKSPIL_MORE_CURR_STR-TAGBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TAFBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TAVBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TAEBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-VWAER sy-vline
WA_RKSPIL_MORE_CURR_STR-TVGBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TVFBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TVVBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TVEBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-BWAER sy-vline
WA_RKSPIL_MORE_CURR_STR-TBGBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TBFBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TBVBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TBEBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-CWAER sy-vline
WA_RKSPIL_MORE_CURR_STR-TCGBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TCFBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TCVBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TCEBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-DWAER sy-vline
WA_RKSPIL_MORE_CURR_STR-TDGBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TDFBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TDVBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TDEBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-EWAER sy-vline
WA_RKSPIL_MORE_CURR_STR-TEGBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TEFBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TEVBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TEEBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-FWAER sy-vline
WA_RKSPIL_MORE_CURR_STR-TFGBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TFFBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TFVBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TFEBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-GWAER sy-vline
WA_RKSPIL_MORE_CURR_STR-TGGBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TGFBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TGVBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-TGEBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-HWAER sy-vline
WA_RKSPIL_MORE_CURR_STR-THGBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-THFBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-THVBTR sy-vline
WA_RKSPIL_MORE_CURR_STR-THEBTR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.