ABAP Select data from SAP table RKPT3_DYNP 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 RKPT3_DYNP 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 RKPT3_DYNP. 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 RKPT3_DYNP 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_RKPT3_DYNP TYPE STANDARD TABLE OF RKPT3_DYNP,
      WA_RKPT3_DYNP TYPE RKPT3_DYNP,
      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: <RKPT3_DYNP> TYPE RKPT3_DYNP.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM RKPT3_DYNP
*  INTO TABLE @DATA(IT_RKPT3_DYNP2).
*--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_RKPT3_DYNP INDEX 1 INTO DATA(WA_RKPT3_DYNP2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_RKPT3_DYNP ASSIGNING <RKPT3_DYNP>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<RKPT3_DYNP>-SVERSN = 1.
<RKPT3_DYNP>-SGJAHR = 1.
<RKPT3_DYNP>-SPERAB = 1.
<RKPT3_DYNP>-SPERBI = 1.
<RKPT3_DYNP>-TVERSN = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_RKPT3_DYNP-TGJAHR, sy-vline,
WA_RKPT3_DYNP-TPERAB, sy-vline,
WA_RKPT3_DYNP-TPERBI, sy-vline,
WA_RKPT3_DYNP-SKOSTL, sy-vline,
WA_RKPT3_DYNP-SPRZNR, sy-vline,
WA_RKPT3_DYNP-SAUFNR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_RKPT3_DYNP 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_RKPT3_DYNP 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_RKPT3_DYNP INTO WA_RKPT3_DYNP. *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 SVERSN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RKPT3_DYNP-SVERSN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKPT3_DYNP-SVERSN.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field SGJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RKPT3_DYNP-SGJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKPT3_DYNP-SGJAHR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field TVERSN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RKPT3_DYNP-TVERSN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKPT3_DYNP-TVERSN.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field TGJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RKPT3_DYNP-TGJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKPT3_DYNP-TGJAHR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field SKOSTL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RKPT3_DYNP-SKOSTL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKPT3_DYNP-SKOSTL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field SPRZNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RKPT3_DYNP-SPRZNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKPT3_DYNP-SPRZNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field SAUFNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_RKPT3_DYNP-SAUFNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKPT3_DYNP-SAUFNR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ABPSN, internal->external for field SWBS CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT' EXPORTING input = WA_RKPT3_DYNP-SWBS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKPT3_DYNP-SWBS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field SGJAHR_OPA CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RKPT3_DYNP-SGJAHR_OPA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKPT3_DYNP-SGJAHR_OPA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field EGJAHR_OPA CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RKPT3_DYNP-EGJAHR_OPA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKPT3_DYNP-EGJAHR_OPA.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field SJAHRB CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RKPT3_DYNP-SJAHRB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKPT3_DYNP-SJAHRB.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field TJAHRB CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_RKPT3_DYNP-TJAHRB IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_RKPT3_DYNP-TJAHRB.
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_RKPT3_DYNP_STR,
SVERSN TYPE STRING,
SGJAHR TYPE STRING,
SPERAB TYPE STRING,
SPERBI TYPE STRING,
TVERSN TYPE STRING,
TGJAHR TYPE STRING,
TPERAB TYPE STRING,
TPERBI TYPE STRING,
SKOSTL TYPE STRING,
SPRZNR TYPE STRING,
SAUFNR TYPE STRING,
SWBS TYPE STRING,
REVPRCT TYPE STRING,
FOVER TYPE STRING,
FOVER_PERIO TYPE STRING,
VALUTYP TYPE STRING,
FLG_VRGALL TYPE STRING,
FLG_VRGSEL TYPE STRING,
UPDATE_NOT TYPE STRING,
UPDATE_YES TYPE STRING,
UPDATE_KUM TYPE STRING,
FLG_SOBJ_YES TYPE STRING,
FLG_SOBJ_NO TYPE STRING,
FLG_BATCH TYPE STRING,
FLG_TEST TYPE STRING,
FLG_PROTO TYPE STRING,
FLG_STRUM TYPE STRING,
FLG_STRUO TYPE STRING,
FLG_SPLIT TYPE STRING,
FLG_SPECPER TYPE STRING,
FLG_LTEXT TYPE STRING,
FLG_KALK TYPE STRING,
FLG_RKP2Q TYPE STRING,
FLG_RKP2P TYPE STRING,
NO_GJAHR TYPE STRING,
NO_PERIODS TYPE STRING,
FLG_PROJECTION TYPE STRING,
FLG_CTWAER TYPE STRING,
FLG_COWAER TYPE STRING,
FLG_CKWAER TYPE STRING,
FLG_POWAER TYPE STRING,
FLG_PKWAER TYPE STRING,
VRGNG_RKP1 TYPE STRING,
VRGNG_RKP2 TYPE STRING,
VRGNG_RKP2Q TYPE STRING,
VRGNG_RKP2P TYPE STRING,
VRGNG_RKP3 TYPE STRING,
VRGNG_RKP4 TYPE STRING,
VRGNG_RKP5 TYPE STRING,
VRGNG_RKP6 TYPE STRING,
VRGNG_RKP7 TYPE STRING,
VRGNG_RKPW TYPE STRING,
VRGNG_RKPX TYPE STRING,
VRGNG_GRP_XLEI TYPE STRING,
VRGNG_GRP_XTAR TYPE STRING,
VRGNG_GRP_XPRI TYPE STRING,
VRGNG_GRP_XERL TYPE STRING,
VRGNG_GRP_XILV TYPE STRING,
VRGNG_GRP_XAUF TYPE STRING,
VRGNG_GRP_XZUS TYPE STRING,
VRGNG_GRP_XSTA TYPE STRING,
VRGNG_KSTP TYPE STRING,
VRGNG_KSTR TYPE STRING,
VRGNG_KSTE_KEKX TYPE STRING,
VRGNG_KSTP_YEAR TYPE STRING,
VRGNG_KSTR_YEAR TYPE STRING,
VRGNG_KSTE_KEKX_YEAR TYPE STRING,
SGJAHR_OPA TYPE STRING,
EGJAHR_OPA TYPE STRING,
REOBART TYPE STRING,
REOBJID TYPE STRING,
REOBJNR TYPE STRING,
SJAHRB TYPE STRING,
TJAHRB TYPE STRING,END OF T_EKKO_STR. DATA: WA_RKPT3_DYNP_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_RKPT3_DYNP_STR-SVERSN sy-vline
WA_RKPT3_DYNP_STR-SGJAHR sy-vline
WA_RKPT3_DYNP_STR-SPERAB sy-vline
WA_RKPT3_DYNP_STR-SPERBI sy-vline
WA_RKPT3_DYNP_STR-TVERSN sy-vline
WA_RKPT3_DYNP_STR-TGJAHR sy-vline
WA_RKPT3_DYNP_STR-TPERAB sy-vline
WA_RKPT3_DYNP_STR-TPERBI sy-vline
WA_RKPT3_DYNP_STR-SKOSTL sy-vline
WA_RKPT3_DYNP_STR-SPRZNR sy-vline
WA_RKPT3_DYNP_STR-SAUFNR sy-vline
WA_RKPT3_DYNP_STR-SWBS sy-vline
WA_RKPT3_DYNP_STR-REVPRCT sy-vline
WA_RKPT3_DYNP_STR-FOVER sy-vline
WA_RKPT3_DYNP_STR-FOVER_PERIO sy-vline
WA_RKPT3_DYNP_STR-VALUTYP sy-vline
WA_RKPT3_DYNP_STR-FLG_VRGALL sy-vline
WA_RKPT3_DYNP_STR-FLG_VRGSEL sy-vline
WA_RKPT3_DYNP_STR-UPDATE_NOT sy-vline
WA_RKPT3_DYNP_STR-UPDATE_YES sy-vline
WA_RKPT3_DYNP_STR-UPDATE_KUM sy-vline
WA_RKPT3_DYNP_STR-FLG_SOBJ_YES sy-vline
WA_RKPT3_DYNP_STR-FLG_SOBJ_NO sy-vline
WA_RKPT3_DYNP_STR-FLG_BATCH sy-vline
WA_RKPT3_DYNP_STR-FLG_TEST sy-vline
WA_RKPT3_DYNP_STR-FLG_PROTO sy-vline
WA_RKPT3_DYNP_STR-FLG_STRUM sy-vline
WA_RKPT3_DYNP_STR-FLG_STRUO sy-vline
WA_RKPT3_DYNP_STR-FLG_SPLIT sy-vline
WA_RKPT3_DYNP_STR-FLG_SPECPER sy-vline
WA_RKPT3_DYNP_STR-FLG_LTEXT sy-vline
WA_RKPT3_DYNP_STR-FLG_KALK sy-vline
WA_RKPT3_DYNP_STR-FLG_RKP2Q sy-vline
WA_RKPT3_DYNP_STR-FLG_RKP2P sy-vline
WA_RKPT3_DYNP_STR-NO_GJAHR sy-vline
WA_RKPT3_DYNP_STR-NO_PERIODS sy-vline
WA_RKPT3_DYNP_STR-FLG_PROJECTION sy-vline
WA_RKPT3_DYNP_STR-FLG_CTWAER sy-vline
WA_RKPT3_DYNP_STR-FLG_COWAER sy-vline
WA_RKPT3_DYNP_STR-FLG_CKWAER sy-vline
WA_RKPT3_DYNP_STR-FLG_POWAER sy-vline
WA_RKPT3_DYNP_STR-FLG_PKWAER sy-vline
WA_RKPT3_DYNP_STR-VRGNG_RKP1 sy-vline
WA_RKPT3_DYNP_STR-VRGNG_RKP2 sy-vline
WA_RKPT3_DYNP_STR-VRGNG_RKP2Q sy-vline
WA_RKPT3_DYNP_STR-VRGNG_RKP2P sy-vline
WA_RKPT3_DYNP_STR-VRGNG_RKP3 sy-vline
WA_RKPT3_DYNP_STR-VRGNG_RKP4 sy-vline
WA_RKPT3_DYNP_STR-VRGNG_RKP5 sy-vline
WA_RKPT3_DYNP_STR-VRGNG_RKP6 sy-vline
WA_RKPT3_DYNP_STR-VRGNG_RKP7 sy-vline
WA_RKPT3_DYNP_STR-VRGNG_RKPW sy-vline
WA_RKPT3_DYNP_STR-VRGNG_RKPX sy-vline
WA_RKPT3_DYNP_STR-VRGNG_GRP_XLEI sy-vline
WA_RKPT3_DYNP_STR-VRGNG_GRP_XTAR sy-vline
WA_RKPT3_DYNP_STR-VRGNG_GRP_XPRI sy-vline
WA_RKPT3_DYNP_STR-VRGNG_GRP_XERL sy-vline
WA_RKPT3_DYNP_STR-VRGNG_GRP_XILV sy-vline
WA_RKPT3_DYNP_STR-VRGNG_GRP_XAUF sy-vline
WA_RKPT3_DYNP_STR-VRGNG_GRP_XZUS sy-vline
WA_RKPT3_DYNP_STR-VRGNG_GRP_XSTA sy-vline
WA_RKPT3_DYNP_STR-VRGNG_KSTP sy-vline
WA_RKPT3_DYNP_STR-VRGNG_KSTR sy-vline
WA_RKPT3_DYNP_STR-VRGNG_KSTE_KEKX sy-vline
WA_RKPT3_DYNP_STR-VRGNG_KSTP_YEAR sy-vline
WA_RKPT3_DYNP_STR-VRGNG_KSTR_YEAR sy-vline
WA_RKPT3_DYNP_STR-VRGNG_KSTE_KEKX_YEAR sy-vline
WA_RKPT3_DYNP_STR-SGJAHR_OPA sy-vline
WA_RKPT3_DYNP_STR-EGJAHR_OPA sy-vline
WA_RKPT3_DYNP_STR-REOBART sy-vline
WA_RKPT3_DYNP_STR-REOBJID sy-vline
WA_RKPT3_DYNP_STR-REOBJNR sy-vline
WA_RKPT3_DYNP_STR-SJAHRB sy-vline
WA_RKPT3_DYNP_STR-TJAHRB sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.