ABAP Select data from SAP table PKR_YEA_RENTAL_CONTRACT 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 PKR_YEA_RENTAL_CONTRACT 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 PKR_YEA_RENTAL_CONTRACT. 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 PKR_YEA_RENTAL_CONTRACT 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_PKR_YEA_RENTAL_CONTRACT TYPE STANDARD TABLE OF PKR_YEA_RENTAL_CONTRACT,
      WA_PKR_YEA_RENTAL_CONTRACT TYPE PKR_YEA_RENTAL_CONTRACT,
      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: <PKR_YEA_RENTAL_CONTRACT> TYPE PKR_YEA_RENTAL_CONTRACT.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PKR_YEA_RENTAL_CONTRACT
*  INTO TABLE @DATA(IT_PKR_YEA_RENTAL_CONTRACT2).
*--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_PKR_YEA_RENTAL_CONTRACT INDEX 1 INTO DATA(WA_PKR_YEA_RENTAL_CONTRACT2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PKR_YEA_RENTAL_CONTRACT ASSIGNING <PKR_YEA_RENTAL_CONTRACT>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PKR_YEA_RENTAL_CONTRACT>-LDNA0 = 1.
<PKR_YEA_RENTAL_CONTRACT>-LDRE0 = 1.
<PKR_YEA_RENTAL_CONTRACT>-HOUT0 = 1.
<PKR_YEA_RENTAL_CONTRACT>-FLRA0 = 1.
<PKR_YEA_RENTAL_CONTRACT>-ADDR0 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PKR_YEA_RENTAL_CONTRACT-RCBE0, sy-vline,
WA_PKR_YEA_RENTAL_CONTRACT-RCEN0, sy-vline,
WA_PKR_YEA_RENTAL_CONTRACT-INRA0, sy-vline,
WA_PKR_YEA_RENTAL_CONTRACT-AMTP0, sy-vline,
WA_PKR_YEA_RENTAL_CONTRACT-AMTI0, sy-vline,
WA_PKR_YEA_RENTAL_CONTRACT-AMTT0, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PKR_YEA_RENTAL_CONTRACT 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_PKR_YEA_RENTAL_CONTRACT 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_PKR_YEA_RENTAL_CONTRACT INTO WA_PKR_YEA_RENTAL_CONTRACT. *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 RGBZN, internal->external for field LDRE0 CALL FUNCTION 'CONVERSION_EXIT_RGBZN_OUTPUT' EXPORTING input = WA_PKR_YEA_RENTAL_CONTRACT-LDRE0 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PKR_YEA_RENTAL_CONTRACT-LDRE0.
WRITE:/ 'New Value:', ld_input.

*Conversion exit RGBZN, internal->external for field LDRE1 CALL FUNCTION 'CONVERSION_EXIT_RGBZN_OUTPUT' EXPORTING input = WA_PKR_YEA_RENTAL_CONTRACT-LDRE1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PKR_YEA_RENTAL_CONTRACT-LDRE1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit RGBZN, internal->external for field LDRE2 CALL FUNCTION 'CONVERSION_EXIT_RGBZN_OUTPUT' EXPORTING input = WA_PKR_YEA_RENTAL_CONTRACT-LDRE2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PKR_YEA_RENTAL_CONTRACT-LDRE2.
WRITE:/ 'New Value:', ld_input.

*Conversion exit RGBZN, internal->external for field LDRE3 CALL FUNCTION 'CONVERSION_EXIT_RGBZN_OUTPUT' EXPORTING input = WA_PKR_YEA_RENTAL_CONTRACT-LDRE3 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PKR_YEA_RENTAL_CONTRACT-LDRE3.
WRITE:/ 'New Value:', ld_input.

*Conversion exit RGBZN, internal->external for field LDRE4 CALL FUNCTION 'CONVERSION_EXIT_RGBZN_OUTPUT' EXPORTING input = WA_PKR_YEA_RENTAL_CONTRACT-LDRE4 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PKR_YEA_RENTAL_CONTRACT-LDRE4.
WRITE:/ 'New Value:', ld_input.

*Conversion exit RGBZN, internal->external for field LDRE5 CALL FUNCTION 'CONVERSION_EXIT_RGBZN_OUTPUT' EXPORTING input = WA_PKR_YEA_RENTAL_CONTRACT-LDRE5 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PKR_YEA_RENTAL_CONTRACT-LDRE5.
WRITE:/ 'New Value:', ld_input.

*Conversion exit RGBZN, internal->external for field LDRE6 CALL FUNCTION 'CONVERSION_EXIT_RGBZN_OUTPUT' EXPORTING input = WA_PKR_YEA_RENTAL_CONTRACT-LDRE6 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PKR_YEA_RENTAL_CONTRACT-LDRE6.
WRITE:/ 'New Value:', ld_input.

*Conversion exit RGBZN, internal->external for field LDRE7 CALL FUNCTION 'CONVERSION_EXIT_RGBZN_OUTPUT' EXPORTING input = WA_PKR_YEA_RENTAL_CONTRACT-LDRE7 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PKR_YEA_RENTAL_CONTRACT-LDRE7.
WRITE:/ 'New Value:', ld_input.

*Conversion exit RGBZN, internal->external for field LDRE8 CALL FUNCTION 'CONVERSION_EXIT_RGBZN_OUTPUT' EXPORTING input = WA_PKR_YEA_RENTAL_CONTRACT-LDRE8 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PKR_YEA_RENTAL_CONTRACT-LDRE8.
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_PKR_YEA_RENTAL_CONTRACT_STR,
LDNA0 TYPE STRING,
LDRE0 TYPE STRING,
HOUT0 TYPE STRING,
FLRA0 TYPE STRING,
ADDR0 TYPE STRING,
RCBE0 TYPE STRING,
RCEN0 TYPE STRING,
INRA0 TYPE STRING,
AMTP0 TYPE STRING,
AMTI0 TYPE STRING,
AMTT0 TYPE STRING,
AMTD0 TYPE STRING,
LDNA1 TYPE STRING,
LDRE1 TYPE STRING,
HOUT1 TYPE STRING,
FLRA1 TYPE STRING,
ADDR1 TYPE STRING,
RCBE1 TYPE STRING,
RCEN1 TYPE STRING,
INRA1 TYPE STRING,
AMTP1 TYPE STRING,
AMTI1 TYPE STRING,
AMTT1 TYPE STRING,
AMTD1 TYPE STRING,
LDNA2 TYPE STRING,
LDRE2 TYPE STRING,
HOUT2 TYPE STRING,
FLRA2 TYPE STRING,
ADDR2 TYPE STRING,
RCBE2 TYPE STRING,
RCEN2 TYPE STRING,
INRA2 TYPE STRING,
AMTP2 TYPE STRING,
AMTI2 TYPE STRING,
AMTT2 TYPE STRING,
AMTD2 TYPE STRING,
LDNA3 TYPE STRING,
LDRE3 TYPE STRING,
HOUT3 TYPE STRING,
FLRA3 TYPE STRING,
ADDR3 TYPE STRING,
RCBE3 TYPE STRING,
RCEN3 TYPE STRING,
INRA3 TYPE STRING,
AMTP3 TYPE STRING,
AMTI3 TYPE STRING,
AMTT3 TYPE STRING,
AMTD3 TYPE STRING,
LDNA4 TYPE STRING,
LDRE4 TYPE STRING,
HOUT4 TYPE STRING,
FLRA4 TYPE STRING,
ADDR4 TYPE STRING,
RCBE4 TYPE STRING,
RCEN4 TYPE STRING,
INRA4 TYPE STRING,
AMTP4 TYPE STRING,
AMTI4 TYPE STRING,
AMTT4 TYPE STRING,
AMTD4 TYPE STRING,
LDNA5 TYPE STRING,
LDRE5 TYPE STRING,
HOUT5 TYPE STRING,
FLRA5 TYPE STRING,
ADDR5 TYPE STRING,
RCBE5 TYPE STRING,
RCEN5 TYPE STRING,
INRA5 TYPE STRING,
AMTP5 TYPE STRING,
AMTI5 TYPE STRING,
AMTT5 TYPE STRING,
AMTD5 TYPE STRING,
LDNA6 TYPE STRING,
LDRE6 TYPE STRING,
HOUT6 TYPE STRING,
FLRA6 TYPE STRING,
ADDR6 TYPE STRING,
RCBE6 TYPE STRING,
RCEN6 TYPE STRING,
INRA6 TYPE STRING,
AMTP6 TYPE STRING,
AMTI6 TYPE STRING,
AMTT6 TYPE STRING,
AMTD6 TYPE STRING,
LDNA7 TYPE STRING,
LDRE7 TYPE STRING,
HOUT7 TYPE STRING,
FLRA7 TYPE STRING,
ADDR7 TYPE STRING,
RCBE7 TYPE STRING,
RCEN7 TYPE STRING,
INRA7 TYPE STRING,
AMTP7 TYPE STRING,
AMTI7 TYPE STRING,
AMTT7 TYPE STRING,
AMTD7 TYPE STRING,
LDNA8 TYPE STRING,
LDRE8 TYPE STRING,
HOUT8 TYPE STRING,
FLRA8 TYPE STRING,
ADDR8 TYPE STRING,
RCBE8 TYPE STRING,
RCEN8 TYPE STRING,
INRA8 TYPE STRING,
AMTP8 TYPE STRING,
AMTI8 TYPE STRING,
AMTT8 TYPE STRING,
AMTD8 TYPE STRING,END OF T_EKKO_STR. DATA: WA_PKR_YEA_RENTAL_CONTRACT_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_PKR_YEA_RENTAL_CONTRACT_STR-LDNA0 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDRE0 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-HOUT0 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-FLRA0 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-ADDR0 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCBE0 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCEN0 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-INRA0 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTP0 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTI0 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTT0 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTD0 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDNA1 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDRE1 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-HOUT1 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-FLRA1 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-ADDR1 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCBE1 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCEN1 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-INRA1 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTP1 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTI1 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTT1 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTD1 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDNA2 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDRE2 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-HOUT2 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-FLRA2 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-ADDR2 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCBE2 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCEN2 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-INRA2 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTP2 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTI2 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTT2 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTD2 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDNA3 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDRE3 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-HOUT3 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-FLRA3 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-ADDR3 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCBE3 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCEN3 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-INRA3 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTP3 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTI3 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTT3 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTD3 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDNA4 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDRE4 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-HOUT4 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-FLRA4 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-ADDR4 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCBE4 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCEN4 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-INRA4 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTP4 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTI4 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTT4 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTD4 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDNA5 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDRE5 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-HOUT5 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-FLRA5 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-ADDR5 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCBE5 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCEN5 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-INRA5 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTP5 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTI5 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTT5 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTD5 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDNA6 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDRE6 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-HOUT6 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-FLRA6 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-ADDR6 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCBE6 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCEN6 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-INRA6 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTP6 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTI6 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTT6 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTD6 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDNA7 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDRE7 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-HOUT7 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-FLRA7 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-ADDR7 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCBE7 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCEN7 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-INRA7 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTP7 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTI7 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTT7 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTD7 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDNA8 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-LDRE8 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-HOUT8 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-FLRA8 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-ADDR8 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCBE8 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-RCEN8 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-INRA8 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTP8 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTI8 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTT8 sy-vline
WA_PKR_YEA_RENTAL_CONTRACT_STR-AMTD8 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.