ABAP Select data from SAP table CKI64A 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 CKI64A 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 CKI64A. 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 CKI64A 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_CKI64A TYPE STANDARD TABLE OF CKI64A,
      WA_CKI64A TYPE CKI64A,
      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: <CKI64A> TYPE CKI64A.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CKI64A
*  INTO TABLE @DATA(IT_CKI64A2).
*--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_CKI64A INDEX 1 INTO DATA(WA_CKI64A2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CKI64A ASSIGNING <CKI64A>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CKI64A>-QS_18 = 1.
<CKI64A>-SQS_18 = 1.
<CKI64A>-F_1_18_S = 1.
<CKI64A>-V_1_18_S = 1.
<CKI64A>-F_1_18 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CKI64A-V_1_18, sy-vline,
WA_CKI64A-H_WERTV8, sy-vline,
WA_CKI64A-WERTFAKTOR, sy-vline,
WA_CKI64A-SELKZ, sy-vline,
WA_CKI64A-LOSGR, sy-vline,
WA_CKI64A-MATNR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CKI64A 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_CKI64A 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_CKI64A INTO WA_CKI64A. *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 MATN1, internal->external for field MATNR CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_CKI64A-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKI64A-MATNR.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit NUMCV, internal->external for field STNUM CALL FUNCTION 'CONVERSION_EXIT_NUMCV_OUTPUT' EXPORTING input = WA_CKI64A-STNUM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKI64A-STNUM.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

*Conversion exit ABPSP, internal->external for field PSPNR CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT' EXPORTING input = WA_CKI64A-PSPNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKI64A-PSPNR.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit CUNIT, internal->external for field /CWM/MEINH_BEW CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CKI64A-/CWM/MEINH_BEW IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKI64A-/CWM/MEINH_BEW.
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_CKI64A_STR,
QS_18 TYPE STRING,
SQS_18 TYPE STRING,
F_1_18_S TYPE STRING,
V_1_18_S TYPE STRING,
F_1_18 TYPE STRING,
V_1_18 TYPE STRING,
H_WERTV8 TYPE STRING,
WERTFAKTOR TYPE STRING,
SELKZ TYPE STRING,
LOSGR TYPE STRING,
MATNR TYPE STRING,
MEINS TYPE STRING,
WERKS TYPE STRING,
PEINH TYPE STRING,
EINTRAG TYPE STRING,
KALKA TYPE STRING,
KADAT TYPE STRING,
RLDNR TYPE STRING,
TXRLD TYPE STRING,
KLVAR TYPE STRING,
BWKEY TYPE STRING,
TVERS TYPE STRING,
AUFGEL TYPE STRING,
BWVAR TYPE STRING,
MAKTX TYPE STRING,
BIDAM TYPE STRING,
WERKSNAME TYPE STRING,
TXKLV TYPE STRING,
DISST TYPE STRING,
KALST TYPE STRING,
CYCLENR TYPE STRING,
FEHLKZ TYPE STRING,
FVIDK TYPE STRING,
STLAN TYPE STRING,
STNUM TYPE STRING,
STALT TYPE STRING,
PLNTY TYPE STRING,
PLNNR TYPE STRING,
PLNAL TYPE STRING,
KADAM TYPE STRING,
BIDAT TYPE STRING,
AMDAT TYPE STRING,
BWDAT TYPE STRING,
BEDAT TYPE STRING,
ALDAT TYPE STRING,
EINTRAG3 TYPE STRING,
GESAMT3 TYPE STRING,
POPER TYPE STRING,
BDATJ TYPE STRING,
ERFNM TYPE STRING,
FEH_STA TYPE STRING,
FEH_ANZ TYPE STRING,
FREIG TYPE STRING,
KKZMA TYPE STRING,
KALAID TYPE STRING,
KALADAT TYPE STRING,
PARAVB1 TYPE STRING,
PARAVB2 TYPE STRING,
PARAVB3 TYPE STRING,
PARAVB4 TYPE STRING,
HKGES TYPE STRING,
HKFIX TYPE STRING,
HKVAR TYPE STRING,
VVGES TYPE STRING,
VVFIX TYPE STRING,
VVVAR TYPE STRING,
SKGES TYPE STRING,
SKFIX TYPE STRING,
SKVAR TYPE STRING,
SICHT TYPE STRING,
TXSIC TYPE STRING,
KALABEZ TYPE STRING,
MANKZ TYPE STRING,
CUOBJ TYPE STRING,
CUOBJID TYPE STRING,
CUMATNR TYPE STRING,
CUMAKTX TYPE STRING,
TYPE TYPE STRING,
WRKLT TYPE STRING,
MATNR_INP TYPE STRING,
WERKS_INP TYPE STRING,
TYPETX TYPE STRING,
STDPD TYPE STRING,
GK_SICHT1 TYPE STRING,
FK_SICHT1 TYPE STRING,
VK_SICHT1 TYPE STRING,
GK_SICHT2 TYPE STRING,
FK_SICHT2 TYPE STRING,
VK_SICHT2 TYPE STRING,
GK_SICHT3 TYPE STRING,
FK_SICHT3 TYPE STRING,
VK_SICHT3 TYPE STRING,
GK_SICHT4 TYPE STRING,
FK_SICHT4 TYPE STRING,
VK_SICHT4 TYPE STRING,
GK_SICHT5 TYPE STRING,
FK_SICHT5 TYPE STRING,
VK_SICHT5 TYPE STRING,
TXSICHT1 TYPE STRING,
TXSICHT2 TYPE STRING,
TXSICHT3 TYPE STRING,
TXSICHT4 TYPE STRING,
TXSICHT5 TYPE STRING,
USR_MENGE TYPE STRING,
S_LOSGR TYPE STRING,
S_PEINH TYPE STRING,
S_MEINH TYPE STRING,
S_MENGE TYPE STRING,
WAERS TYPE STRING,
WAERSTX TYPE STRING,
KOSMNG TYPE STRING,
SOBESWERK TYPE STRING,
SOBES TYPE STRING,
UEBID TYPE STRING,
DRUCKU1 TYPE STRING,
DRUCKU2 TYPE STRING,
DRUCKU3 TYPE STRING,
VBELN TYPE STRING,
POSNR TYPE STRING,
DISST_PAR TYPE STRING,
RTIME TYPE STRING,
ANZMT TYPE STRING,
PATNR TYPE STRING,
LTYPWERK TYPE STRING,
KALNR_BA TYPE STRING,
MKALK TYPE STRING,
BWTAR TYPE STRING,
BAKTX TYPE STRING,
PSPNR TYPE STRING,
AENNR TYPE STRING,
INCOMPLETE TYPE STRING,
BEZUG TYPE STRING,
GTEIL TYPE STRING,
COSTING_MODEL TYPE STRING,
COSTING_MODEL_NAME TYPE STRING,
/CWM/XCWMAT TYPE STRING,
/CWM/LOSGR_BAS TYPE STRING,
/CWM/MEINH_BAS TYPE STRING,
/CWM/LOSGR_BEW TYPE STRING,
/CWM/MEINH_BEW TYPE STRING,END OF T_EKKO_STR. DATA: WA_CKI64A_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_CKI64A_STR-QS_18 sy-vline
WA_CKI64A_STR-SQS_18 sy-vline
WA_CKI64A_STR-F_1_18_S sy-vline
WA_CKI64A_STR-V_1_18_S sy-vline
WA_CKI64A_STR-F_1_18 sy-vline
WA_CKI64A_STR-V_1_18 sy-vline
WA_CKI64A_STR-H_WERTV8 sy-vline
WA_CKI64A_STR-WERTFAKTOR sy-vline
WA_CKI64A_STR-SELKZ sy-vline
WA_CKI64A_STR-LOSGR sy-vline
WA_CKI64A_STR-MATNR sy-vline
WA_CKI64A_STR-MEINS sy-vline
WA_CKI64A_STR-WERKS sy-vline
WA_CKI64A_STR-PEINH sy-vline
WA_CKI64A_STR-EINTRAG sy-vline
WA_CKI64A_STR-KALKA sy-vline
WA_CKI64A_STR-KADAT sy-vline
WA_CKI64A_STR-RLDNR sy-vline
WA_CKI64A_STR-TXRLD sy-vline
WA_CKI64A_STR-KLVAR sy-vline
WA_CKI64A_STR-BWKEY sy-vline
WA_CKI64A_STR-TVERS sy-vline
WA_CKI64A_STR-AUFGEL sy-vline
WA_CKI64A_STR-BWVAR sy-vline
WA_CKI64A_STR-MAKTX sy-vline
WA_CKI64A_STR-BIDAM sy-vline
WA_CKI64A_STR-WERKSNAME sy-vline
WA_CKI64A_STR-TXKLV sy-vline
WA_CKI64A_STR-DISST sy-vline
WA_CKI64A_STR-KALST sy-vline
WA_CKI64A_STR-CYCLENR sy-vline
WA_CKI64A_STR-FEHLKZ sy-vline
WA_CKI64A_STR-FVIDK sy-vline
WA_CKI64A_STR-STLAN sy-vline
WA_CKI64A_STR-STNUM sy-vline
WA_CKI64A_STR-STALT sy-vline
WA_CKI64A_STR-PLNTY sy-vline
WA_CKI64A_STR-PLNNR sy-vline
WA_CKI64A_STR-PLNAL sy-vline
WA_CKI64A_STR-KADAM sy-vline
WA_CKI64A_STR-BIDAT sy-vline
WA_CKI64A_STR-AMDAT sy-vline
WA_CKI64A_STR-BWDAT sy-vline
WA_CKI64A_STR-BEDAT sy-vline
WA_CKI64A_STR-ALDAT sy-vline
WA_CKI64A_STR-EINTRAG3 sy-vline
WA_CKI64A_STR-GESAMT3 sy-vline
WA_CKI64A_STR-POPER sy-vline
WA_CKI64A_STR-BDATJ sy-vline
WA_CKI64A_STR-ERFNM sy-vline
WA_CKI64A_STR-FEH_STA sy-vline
WA_CKI64A_STR-FEH_ANZ sy-vline
WA_CKI64A_STR-FREIG sy-vline
WA_CKI64A_STR-KKZMA sy-vline
WA_CKI64A_STR-KALAID sy-vline
WA_CKI64A_STR-KALADAT sy-vline
WA_CKI64A_STR-PARAVB1 sy-vline
WA_CKI64A_STR-PARAVB2 sy-vline
WA_CKI64A_STR-PARAVB3 sy-vline
WA_CKI64A_STR-PARAVB4 sy-vline
WA_CKI64A_STR-HKGES sy-vline
WA_CKI64A_STR-HKFIX sy-vline
WA_CKI64A_STR-HKVAR sy-vline
WA_CKI64A_STR-VVGES sy-vline
WA_CKI64A_STR-VVFIX sy-vline
WA_CKI64A_STR-VVVAR sy-vline
WA_CKI64A_STR-SKGES sy-vline
WA_CKI64A_STR-SKFIX sy-vline
WA_CKI64A_STR-SKVAR sy-vline
WA_CKI64A_STR-SICHT sy-vline
WA_CKI64A_STR-TXSIC sy-vline
WA_CKI64A_STR-KALABEZ sy-vline
WA_CKI64A_STR-MANKZ sy-vline
WA_CKI64A_STR-CUOBJ sy-vline
WA_CKI64A_STR-CUOBJID sy-vline
WA_CKI64A_STR-CUMATNR sy-vline
WA_CKI64A_STR-CUMAKTX sy-vline
WA_CKI64A_STR-TYPE sy-vline
WA_CKI64A_STR-WRKLT sy-vline
WA_CKI64A_STR-MATNR_INP sy-vline
WA_CKI64A_STR-WERKS_INP sy-vline
WA_CKI64A_STR-TYPETX sy-vline
WA_CKI64A_STR-STDPD sy-vline
WA_CKI64A_STR-GK_SICHT1 sy-vline
WA_CKI64A_STR-FK_SICHT1 sy-vline
WA_CKI64A_STR-VK_SICHT1 sy-vline
WA_CKI64A_STR-GK_SICHT2 sy-vline
WA_CKI64A_STR-FK_SICHT2 sy-vline
WA_CKI64A_STR-VK_SICHT2 sy-vline
WA_CKI64A_STR-GK_SICHT3 sy-vline
WA_CKI64A_STR-FK_SICHT3 sy-vline
WA_CKI64A_STR-VK_SICHT3 sy-vline
WA_CKI64A_STR-GK_SICHT4 sy-vline
WA_CKI64A_STR-FK_SICHT4 sy-vline
WA_CKI64A_STR-VK_SICHT4 sy-vline
WA_CKI64A_STR-GK_SICHT5 sy-vline
WA_CKI64A_STR-FK_SICHT5 sy-vline
WA_CKI64A_STR-VK_SICHT5 sy-vline
WA_CKI64A_STR-TXSICHT1 sy-vline
WA_CKI64A_STR-TXSICHT2 sy-vline
WA_CKI64A_STR-TXSICHT3 sy-vline
WA_CKI64A_STR-TXSICHT4 sy-vline
WA_CKI64A_STR-TXSICHT5 sy-vline
WA_CKI64A_STR-USR_MENGE sy-vline
WA_CKI64A_STR-S_LOSGR sy-vline
WA_CKI64A_STR-S_PEINH sy-vline
WA_CKI64A_STR-S_MEINH sy-vline
WA_CKI64A_STR-S_MENGE sy-vline
WA_CKI64A_STR-WAERS sy-vline
WA_CKI64A_STR-WAERSTX sy-vline
WA_CKI64A_STR-KOSMNG sy-vline
WA_CKI64A_STR-SOBESWERK sy-vline
WA_CKI64A_STR-SOBES sy-vline
WA_CKI64A_STR-UEBID sy-vline
WA_CKI64A_STR-DRUCKU1 sy-vline
WA_CKI64A_STR-DRUCKU2 sy-vline
WA_CKI64A_STR-DRUCKU3 sy-vline
WA_CKI64A_STR-VBELN sy-vline
WA_CKI64A_STR-POSNR sy-vline
WA_CKI64A_STR-DISST_PAR sy-vline
WA_CKI64A_STR-RTIME sy-vline
WA_CKI64A_STR-ANZMT sy-vline
WA_CKI64A_STR-PATNR sy-vline
WA_CKI64A_STR-LTYPWERK sy-vline
WA_CKI64A_STR-KALNR_BA sy-vline
WA_CKI64A_STR-MKALK sy-vline
WA_CKI64A_STR-BWTAR sy-vline
WA_CKI64A_STR-BAKTX sy-vline
WA_CKI64A_STR-PSPNR sy-vline
WA_CKI64A_STR-AENNR sy-vline
WA_CKI64A_STR-INCOMPLETE sy-vline
WA_CKI64A_STR-BEZUG sy-vline
WA_CKI64A_STR-GTEIL sy-vline
WA_CKI64A_STR-COSTING_MODEL sy-vline
WA_CKI64A_STR-COSTING_MODEL_NAME sy-vline
WA_CKI64A_STR-/CWM/XCWMAT sy-vline
WA_CKI64A_STR-/CWM/LOSGR_BAS sy-vline
WA_CKI64A_STR-/CWM/MEINH_BAS sy-vline
WA_CKI64A_STR-/CWM/LOSGR_BEW sy-vline
WA_CKI64A_STR-/CWM/MEINH_BEW sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.