ABAP Select data from SAP table CKI_DOC_ML 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 CKI_DOC_ML 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 CKI_DOC_ML. 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 CKI_DOC_ML 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_CKI_DOC_ML TYPE STANDARD TABLE OF CKI_DOC_ML,
      WA_CKI_DOC_ML TYPE CKI_DOC_ML,
      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: <CKI_DOC_ML> TYPE CKI_DOC_ML.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CKI_DOC_ML
*  INTO TABLE @DATA(IT_CKI_DOC_ML2).
*--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_CKI_DOC_ML INDEX 1 INTO DATA(WA_CKI_DOC_ML2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CKI_DOC_ML ASSIGNING <CKI_DOC_ML>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CKI_DOC_ML>-ACT_PRICE = 1.
<CKI_DOC_ML>-SENDER = 1.
<CKI_DOC_ML>-TEST = 1.
<CKI_DOC_ML>-ALLMATS = 1.
<CKI_DOC_ML>-FEWMATS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CKI_DOC_ML-PAE_WARN, sy-vline,
WA_CKI_DOC_ML-PAE_ERR, sy-vline,
WA_CKI_DOC_ML-PAE_AMPEL, sy-vline,
WA_CKI_DOC_ML-SHOW_ACNT, sy-vline,
WA_CKI_DOC_ML-UMRECHDAT, sy-vline,
WA_CKI_DOC_ML-INIT_KONT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CKI_DOC_ML 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_CKI_DOC_ML 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_CKI_DOC_ML INTO WA_CKI_DOC_ML. *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 SENDER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_CKI_DOC_ML-SENDER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKI_DOC_ML-SENDER.
WRITE:/ 'New Value:', ld_input.

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

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

*Conversion exit EXCRT, internal->external for field CHANGE_RATE CALL FUNCTION 'CONVERSION_EXIT_EXCRT_OUTPUT' EXPORTING input = WA_CKI_DOC_ML-CHANGE_RATE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKI_DOC_ML-CHANGE_RATE.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit PTYP, internal->external for field PROZESS_TYP_S CALL FUNCTION 'CONVERSION_EXIT_PTYP_OUTPUT' EXPORTING input = WA_CKI_DOC_ML-PROZESS_TYP_S IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKI_DOC_ML-PROZESS_TYP_S.
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_CKI_DOC_ML_STR,
ACT_PRICE TYPE STRING,
SENDER TYPE STRING,
TEST TYPE STRING,
ALLMATS TYPE STRING,
FEWMATS TYPE STRING,
PAE_WARN TYPE STRING,
PAE_ERR TYPE STRING,
PAE_AMPEL TYPE STRING,
SHOW_ACNT TYPE STRING,
UMRECHDAT TYPE STRING,
INIT_KONT TYPE STRING,
MAXACCPOS TYPE STRING,
KURST TYPE STRING,
ABR_PRS TYPE STRING,
ZUKBEW TYPE STRING,
ALLROWS TYPE STRING,
PAE_ONLY TYPE STRING,
AKT_ONLY TYPE STRING,
MAKT TYPE STRING,
CUR_ONLY TYPE STRING,
PVPRS_OLD TYPE STRING,
PVPRS_AFTR TYPE STRING,
PVPRS_NEW TYPE STRING,
STPRS_NEW TYPE STRING,
STPRS_OLD TYPE STRING,
LONGLIST TYPE STRING,
CK_LBKAFT TYPE STRING,
CK_LBKDIF TYPE STRING,
CK_SALK3AF TYPE STRING,
CK_SALK3DI TYPE STRING,
CK_VERPRAF TYPE STRING,
CK_VERPRDI TYPE STRING,
CK_STPRSAF TYPE STRING,
CK_STPRSDI TYPE STRING,
ARCH_DATEI TYPE STRING,
BATCH TYPE STRING,
UMBEWERTEN TYPE STRING,
SL_PERIODE TYPE STRING,
SL_JAHR TYPE STRING,
PORTION TYPE STRING,
PAE_WARN_SL TYPE STRING,
PAE_ERR_SL TYPE STRING,
PAE_WARN_ML TYPE STRING,
PAE_ERR_ML TYPE STRING,
PROT_STORE TYPE STRING,
PROT_NUMBER TYPE STRING,
EINSTUFIG TYPE STRING,
ICON TYPE STRING,
CHANGE_RATE TYPE STRING,
FOR_WHOLE_BWKEY TYPE STRING,
MULTILEVEL_DIF TYPE STRING,
MULTILEVEL_DIF_O TYPE STRING,
SINGLELEVEL_DIF TYPE STRING,
VN_DIF TYPE STRING,
EB_DIF TYPE STRING,
SUM_PRDIF TYPE STRING,
SUM_KRDIF TYPE STRING,
SUM_DIF TYPE STRING,
ABRMENGE TYPE STRING,
1ST_DAY_OF_MONTH TYPE STRING,
ANZAHL TYPE STRING,
IGNORE_SCHWELLE TYPE STRING,
PAE_PROZENT TYPE STRING,
XPOSTPROCESSING TYPE STRING,
XALL_MATERIALS TYPE STRING,
NOT_ALLOCATED TYPE STRING,
BVTXT TYPE STRING,
OBJECT TYPE STRING,
COMPARE_STPRS TYPE STRING,
COMPARE_PVPRS TYPE STRING,
EDIT_NAME TYPE STRING,
LBKUM_VOR TYPE STRING,
SALK3_VOR TYPE STRING,
PREIS_BEW TYPE STRING,
PREIS_NEU TYPE STRING,
MATNR_MLEVEL TYPE STRING,
PROZESS_TYP_S TYPE STRING,
RECREATE_MLCD TYPE STRING,
MODE_EXECUTE TYPE STRING,
MODE_REVERSE TYPE STRING,
PRICE_OLD TYPE STRING,
PRICE_NEW TYPE STRING,
PEINH_OLD TYPE STRING,
PEINH_NEW TYPE STRING,
CKM3_VIEW TYPE STRING,
PVPRS_PREV TYPE STRING,
REVAL_CONS TYPE STRING,
PACK_SIZE_CLOSE TYPE STRING,
XPOSTPROC_VNB TYPE STRING,END OF T_EKKO_STR. DATA: WA_CKI_DOC_ML_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_CKI_DOC_ML_STR-ACT_PRICE sy-vline
WA_CKI_DOC_ML_STR-SENDER sy-vline
WA_CKI_DOC_ML_STR-TEST sy-vline
WA_CKI_DOC_ML_STR-ALLMATS sy-vline
WA_CKI_DOC_ML_STR-FEWMATS sy-vline
WA_CKI_DOC_ML_STR-PAE_WARN sy-vline
WA_CKI_DOC_ML_STR-PAE_ERR sy-vline
WA_CKI_DOC_ML_STR-PAE_AMPEL sy-vline
WA_CKI_DOC_ML_STR-SHOW_ACNT sy-vline
WA_CKI_DOC_ML_STR-UMRECHDAT sy-vline
WA_CKI_DOC_ML_STR-INIT_KONT sy-vline
WA_CKI_DOC_ML_STR-MAXACCPOS sy-vline
WA_CKI_DOC_ML_STR-KURST sy-vline
WA_CKI_DOC_ML_STR-ABR_PRS sy-vline
WA_CKI_DOC_ML_STR-ZUKBEW sy-vline
WA_CKI_DOC_ML_STR-ALLROWS sy-vline
WA_CKI_DOC_ML_STR-PAE_ONLY sy-vline
WA_CKI_DOC_ML_STR-AKT_ONLY sy-vline
WA_CKI_DOC_ML_STR-MAKT sy-vline
WA_CKI_DOC_ML_STR-CUR_ONLY sy-vline
WA_CKI_DOC_ML_STR-PVPRS_OLD sy-vline
WA_CKI_DOC_ML_STR-PVPRS_AFTR sy-vline
WA_CKI_DOC_ML_STR-PVPRS_NEW sy-vline
WA_CKI_DOC_ML_STR-STPRS_NEW sy-vline
WA_CKI_DOC_ML_STR-STPRS_OLD sy-vline
WA_CKI_DOC_ML_STR-LONGLIST sy-vline
WA_CKI_DOC_ML_STR-CK_LBKAFT sy-vline
WA_CKI_DOC_ML_STR-CK_LBKDIF sy-vline
WA_CKI_DOC_ML_STR-CK_SALK3AF sy-vline
WA_CKI_DOC_ML_STR-CK_SALK3DI sy-vline
WA_CKI_DOC_ML_STR-CK_VERPRAF sy-vline
WA_CKI_DOC_ML_STR-CK_VERPRDI sy-vline
WA_CKI_DOC_ML_STR-CK_STPRSAF sy-vline
WA_CKI_DOC_ML_STR-CK_STPRSDI sy-vline
WA_CKI_DOC_ML_STR-ARCH_DATEI sy-vline
WA_CKI_DOC_ML_STR-BATCH sy-vline
WA_CKI_DOC_ML_STR-UMBEWERTEN sy-vline
WA_CKI_DOC_ML_STR-SL_PERIODE sy-vline
WA_CKI_DOC_ML_STR-SL_JAHR sy-vline
WA_CKI_DOC_ML_STR-PORTION sy-vline
WA_CKI_DOC_ML_STR-PAE_WARN_SL sy-vline
WA_CKI_DOC_ML_STR-PAE_ERR_SL sy-vline
WA_CKI_DOC_ML_STR-PAE_WARN_ML sy-vline
WA_CKI_DOC_ML_STR-PAE_ERR_ML sy-vline
WA_CKI_DOC_ML_STR-PROT_STORE sy-vline
WA_CKI_DOC_ML_STR-PROT_NUMBER sy-vline
WA_CKI_DOC_ML_STR-EINSTUFIG sy-vline
WA_CKI_DOC_ML_STR-ICON sy-vline
WA_CKI_DOC_ML_STR-CHANGE_RATE sy-vline
WA_CKI_DOC_ML_STR-FOR_WHOLE_BWKEY sy-vline
WA_CKI_DOC_ML_STR-MULTILEVEL_DIF sy-vline
WA_CKI_DOC_ML_STR-MULTILEVEL_DIF_O sy-vline
WA_CKI_DOC_ML_STR-SINGLELEVEL_DIF sy-vline
WA_CKI_DOC_ML_STR-VN_DIF sy-vline
WA_CKI_DOC_ML_STR-EB_DIF sy-vline
WA_CKI_DOC_ML_STR-SUM_PRDIF sy-vline
WA_CKI_DOC_ML_STR-SUM_KRDIF sy-vline
WA_CKI_DOC_ML_STR-SUM_DIF sy-vline
WA_CKI_DOC_ML_STR-ABRMENGE sy-vline
WA_CKI_DOC_ML_STR-1ST_DAY_OF_MONTH sy-vline
WA_CKI_DOC_ML_STR-ANZAHL sy-vline
WA_CKI_DOC_ML_STR-IGNORE_SCHWELLE sy-vline
WA_CKI_DOC_ML_STR-PAE_PROZENT sy-vline
WA_CKI_DOC_ML_STR-XPOSTPROCESSING sy-vline
WA_CKI_DOC_ML_STR-XALL_MATERIALS sy-vline
WA_CKI_DOC_ML_STR-NOT_ALLOCATED sy-vline
WA_CKI_DOC_ML_STR-BVTXT sy-vline
WA_CKI_DOC_ML_STR-OBJECT sy-vline
WA_CKI_DOC_ML_STR-COMPARE_STPRS sy-vline
WA_CKI_DOC_ML_STR-COMPARE_PVPRS sy-vline
WA_CKI_DOC_ML_STR-EDIT_NAME sy-vline
WA_CKI_DOC_ML_STR-LBKUM_VOR sy-vline
WA_CKI_DOC_ML_STR-SALK3_VOR sy-vline
WA_CKI_DOC_ML_STR-PREIS_BEW sy-vline
WA_CKI_DOC_ML_STR-PREIS_NEU sy-vline
WA_CKI_DOC_ML_STR-MATNR_MLEVEL sy-vline
WA_CKI_DOC_ML_STR-PROZESS_TYP_S sy-vline
WA_CKI_DOC_ML_STR-RECREATE_MLCD sy-vline
WA_CKI_DOC_ML_STR-MODE_EXECUTE sy-vline
WA_CKI_DOC_ML_STR-MODE_REVERSE sy-vline
WA_CKI_DOC_ML_STR-PRICE_OLD sy-vline
WA_CKI_DOC_ML_STR-PRICE_NEW sy-vline
WA_CKI_DOC_ML_STR-PEINH_OLD sy-vline
WA_CKI_DOC_ML_STR-PEINH_NEW sy-vline
WA_CKI_DOC_ML_STR-CKM3_VIEW sy-vline
WA_CKI_DOC_ML_STR-PVPRS_PREV sy-vline
WA_CKI_DOC_ML_STR-REVAL_CONS sy-vline
WA_CKI_DOC_ML_STR-PACK_SIZE_CLOSE sy-vline
WA_CKI_DOC_ML_STR-XPOSTPROC_VNB sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.