ABAP Select data from SAP table CALP_INX 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 CALP_INX 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 CALP_INX. 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 CALP_INX 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_CALP_INX TYPE STANDARD TABLE OF CALP_INX,
      WA_CALP_INX TYPE CALP_INX,
      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: <CALP_INX> TYPE CALP_INX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CALP_INX
*  INTO TABLE @DATA(IT_CALP_INX2).
*--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_CALP_INX INDEX 1 INTO DATA(WA_CALP_INX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CALP_INX ASSIGNING <CALP_INX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CALP_INX>-KBELN = 1.
<CALP_INX>-KBELP = 1.
<CALP_INX>-MATNR = 1.
<CALP_INX>-VRKME = 1.
<CALP_INX>-EAN11 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CALP_INX-VKORG, sy-vline,
WA_CALP_INX-VTWEG, sy-vline,
WA_CALP_INX-WERKS, sy-vline,
WA_CALP_INX-PLTYP, sy-vline,
WA_CALP_INX-BGINT, sy-vline,
WA_CALP_INX-VKKAB, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CALP_INX 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_CALP_INX 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_CALP_INX INTO WA_CALP_INX. *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 KBELN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CALP_INX-KBELN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CALP_INX-KBELN.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_CALP_INX-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CALP_INX-MATNR.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit EAN11, internal->external for field EAN11 CALL FUNCTION 'CONVERSION_EXIT_EAN11_OUTPUT' EXPORTING input = WA_CALP_INX-EAN11 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CALP_INX-EAN11.
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_CALP_INX_STR,
KBELN TYPE STRING,
KBELP TYPE STRING,
MATNR TYPE STRING,
VRKME TYPE STRING,
EAN11 TYPE STRING,
VKORG TYPE STRING,
VTWEG TYPE STRING,
WERKS TYPE STRING,
PLTYP TYPE STRING,
BGINT TYPE STRING,
VKKAB TYPE STRING,
VKKAB_INX TYPE STRING,
VKKBI_INX TYPE STRING,
VKKAM_INX TYPE STRING,
VRKPE_INX TYPE STRING,
MGAME_INX TYPE STRING,
EKKAB_INX TYPE STRING,
EKKBI_INX TYPE STRING,
EKKAM_INX TYPE STRING,
EKAPP_INX TYPE STRING,
EKALS_INX TYPE STRING,
VKALS_INX TYPE STRING,
EKORG_INX TYPE STRING,
LIFNR_INX TYPE STRING,
BEWRK_INX TYPE STRING,
BEVKO_INX TYPE STRING,
BEVTW_INX TYPE STRING,
BESPA_INX TYPE STRING,
BEPLT_INX TYPE STRING,
BEBPL_INX TYPE STRING,
BEVRK_INX TYPE STRING,
VLGWK_INX TYPE STRING,
KUNNR_INX TYPE STRING,
SPART_INX TYPE STRING,
FIVKO_INX TYPE STRING,
FIVTW_INX TYPE STRING,
WAERS_INX TYPE STRING,
EKPGR_INX TYPE STRING,
KWAER_INX TYPE STRING,
EKPNN_INX TYPE STRING,
AUFSG_INX TYPE STRING,
VKPNE_INX TYPE STRING,
VKPBR_INX TYPE STRING,
VWAER_INX TYPE STRING,
ENDPR_INX TYPE STRING,
SPANE_INX TYPE STRING,
SPABR_INX TYPE STRING,
ROTPR_INX TYPE STRING,
MITPR_INX TYPE STRING,
EMPPR_INX TYPE STRING,
EVAUF_INX TYPE STRING,
EVWRS_INX TYPE STRING,
EVPRS_INX TYPE STRING,
EVSPA_INX TYPE STRING,
EKABS_INX TYPE STRING,
VKABS_INX TYPE STRING,
KZPPL_INX TYPE STRING,
KZPBL_INX TYPE STRING,
LOEVM_INX TYPE STRING,
EKERV_INX TYPE STRING,
VKERV_INX TYPE STRING,
MPROZ_INX TYPE STRING,
PSTRA_INX TYPE STRING,
WRSVO_INX TYPE STRING,
TKONN_INX TYPE STRING,
TPOSN_INX TYPE STRING,
KBELN_INX TYPE STRING,
KBELP_INX TYPE STRING,
KBELN_COPY_INX TYPE STRING,
KBELP_COPY_INX TYPE STRING,
BSTMG_INX TYPE STRING,
BSTME_INX TYPE STRING,
BSTUZ_INX TYPE STRING,
BSTUN_INX TYPE STRING,
KBETR_EKPGR_INX TYPE STRING,
WAERS_EKPGR_INX TYPE STRING,
KPEIN_EKPGR_INX TYPE STRING,
KMEIN_EKPGR_INX TYPE STRING,
KUMZA_EKPGR_INX TYPE STRING,
KUMNE_EKPGR_INX TYPE STRING,
PVGRD_INX TYPE STRING,
EPRGR_INX TYPE STRING,
EPRG2_INX TYPE STRING,
KBART_INX TYPE STRING,
KALP_UPDKZ TYPE STRING,
EPTYP_INX TYPE STRING,
RKTYP_INX TYPE STRING,
STPLGR_INX TYPE STRING,
VKABA_INX TYPE STRING,
FCODE_INX TYPE STRING,
TKRATE_SD_INX TYPE STRING,
TKRATE_MM_INX TYPE STRING,
PRSDT_INX TYPE STRING,END OF T_EKKO_STR. DATA: WA_CALP_INX_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_CALP_INX_STR-KBELN sy-vline
WA_CALP_INX_STR-KBELP sy-vline
WA_CALP_INX_STR-MATNR sy-vline
WA_CALP_INX_STR-VRKME sy-vline
WA_CALP_INX_STR-EAN11 sy-vline
WA_CALP_INX_STR-VKORG sy-vline
WA_CALP_INX_STR-VTWEG sy-vline
WA_CALP_INX_STR-WERKS sy-vline
WA_CALP_INX_STR-PLTYP sy-vline
WA_CALP_INX_STR-BGINT sy-vline
WA_CALP_INX_STR-VKKAB sy-vline
WA_CALP_INX_STR-VKKAB_INX sy-vline
WA_CALP_INX_STR-VKKBI_INX sy-vline
WA_CALP_INX_STR-VKKAM_INX sy-vline
WA_CALP_INX_STR-VRKPE_INX sy-vline
WA_CALP_INX_STR-MGAME_INX sy-vline
WA_CALP_INX_STR-EKKAB_INX sy-vline
WA_CALP_INX_STR-EKKBI_INX sy-vline
WA_CALP_INX_STR-EKKAM_INX sy-vline
WA_CALP_INX_STR-EKAPP_INX sy-vline
WA_CALP_INX_STR-EKALS_INX sy-vline
WA_CALP_INX_STR-VKALS_INX sy-vline
WA_CALP_INX_STR-EKORG_INX sy-vline
WA_CALP_INX_STR-LIFNR_INX sy-vline
WA_CALP_INX_STR-BEWRK_INX sy-vline
WA_CALP_INX_STR-BEVKO_INX sy-vline
WA_CALP_INX_STR-BEVTW_INX sy-vline
WA_CALP_INX_STR-BESPA_INX sy-vline
WA_CALP_INX_STR-BEPLT_INX sy-vline
WA_CALP_INX_STR-BEBPL_INX sy-vline
WA_CALP_INX_STR-BEVRK_INX sy-vline
WA_CALP_INX_STR-VLGWK_INX sy-vline
WA_CALP_INX_STR-KUNNR_INX sy-vline
WA_CALP_INX_STR-SPART_INX sy-vline
WA_CALP_INX_STR-FIVKO_INX sy-vline
WA_CALP_INX_STR-FIVTW_INX sy-vline
WA_CALP_INX_STR-WAERS_INX sy-vline
WA_CALP_INX_STR-EKPGR_INX sy-vline
WA_CALP_INX_STR-KWAER_INX sy-vline
WA_CALP_INX_STR-EKPNN_INX sy-vline
WA_CALP_INX_STR-AUFSG_INX sy-vline
WA_CALP_INX_STR-VKPNE_INX sy-vline
WA_CALP_INX_STR-VKPBR_INX sy-vline
WA_CALP_INX_STR-VWAER_INX sy-vline
WA_CALP_INX_STR-ENDPR_INX sy-vline
WA_CALP_INX_STR-SPANE_INX sy-vline
WA_CALP_INX_STR-SPABR_INX sy-vline
WA_CALP_INX_STR-ROTPR_INX sy-vline
WA_CALP_INX_STR-MITPR_INX sy-vline
WA_CALP_INX_STR-EMPPR_INX sy-vline
WA_CALP_INX_STR-EVAUF_INX sy-vline
WA_CALP_INX_STR-EVWRS_INX sy-vline
WA_CALP_INX_STR-EVPRS_INX sy-vline
WA_CALP_INX_STR-EVSPA_INX sy-vline
WA_CALP_INX_STR-EKABS_INX sy-vline
WA_CALP_INX_STR-VKABS_INX sy-vline
WA_CALP_INX_STR-KZPPL_INX sy-vline
WA_CALP_INX_STR-KZPBL_INX sy-vline
WA_CALP_INX_STR-LOEVM_INX sy-vline
WA_CALP_INX_STR-EKERV_INX sy-vline
WA_CALP_INX_STR-VKERV_INX sy-vline
WA_CALP_INX_STR-MPROZ_INX sy-vline
WA_CALP_INX_STR-PSTRA_INX sy-vline
WA_CALP_INX_STR-WRSVO_INX sy-vline
WA_CALP_INX_STR-TKONN_INX sy-vline
WA_CALP_INX_STR-TPOSN_INX sy-vline
WA_CALP_INX_STR-KBELN_INX sy-vline
WA_CALP_INX_STR-KBELP_INX sy-vline
WA_CALP_INX_STR-KBELN_COPY_INX sy-vline
WA_CALP_INX_STR-KBELP_COPY_INX sy-vline
WA_CALP_INX_STR-BSTMG_INX sy-vline
WA_CALP_INX_STR-BSTME_INX sy-vline
WA_CALP_INX_STR-BSTUZ_INX sy-vline
WA_CALP_INX_STR-BSTUN_INX sy-vline
WA_CALP_INX_STR-KBETR_EKPGR_INX sy-vline
WA_CALP_INX_STR-WAERS_EKPGR_INX sy-vline
WA_CALP_INX_STR-KPEIN_EKPGR_INX sy-vline
WA_CALP_INX_STR-KMEIN_EKPGR_INX sy-vline
WA_CALP_INX_STR-KUMZA_EKPGR_INX sy-vline
WA_CALP_INX_STR-KUMNE_EKPGR_INX sy-vline
WA_CALP_INX_STR-PVGRD_INX sy-vline
WA_CALP_INX_STR-EPRGR_INX sy-vline
WA_CALP_INX_STR-EPRG2_INX sy-vline
WA_CALP_INX_STR-KBART_INX sy-vline
WA_CALP_INX_STR-KALP_UPDKZ sy-vline
WA_CALP_INX_STR-EPTYP_INX sy-vline
WA_CALP_INX_STR-RKTYP_INX sy-vline
WA_CALP_INX_STR-STPLGR_INX sy-vline
WA_CALP_INX_STR-VKABA_INX sy-vline
WA_CALP_INX_STR-FCODE_INX sy-vline
WA_CALP_INX_STR-TKRATE_SD_INX sy-vline
WA_CALP_INX_STR-TKRATE_MM_INX sy-vline
WA_CALP_INX_STR-PRSDT_INX sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.