ABAP Select data from SAP table CKML_S_WIP_PRICEDOC_ALV 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 CKML_S_WIP_PRICEDOC_ALV 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 CKML_S_WIP_PRICEDOC_ALV. 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 CKML_S_WIP_PRICEDOC_ALV 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_CKML_S_WIP_PRICEDOC_ALV TYPE STANDARD TABLE OF CKML_S_WIP_PRICEDOC_ALV,
      WA_CKML_S_WIP_PRICEDOC_ALV TYPE CKML_S_WIP_PRICEDOC_ALV,
      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: <CKML_S_WIP_PRICEDOC_ALV> TYPE CKML_S_WIP_PRICEDOC_ALV.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM CKML_S_WIP_PRICEDOC_ALV
*  INTO TABLE @DATA(IT_CKML_S_WIP_PRICEDOC_ALV2).
*--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_CKML_S_WIP_PRICEDOC_ALV INDEX 1 INTO DATA(WA_CKML_S_WIP_PRICEDOC_ALV2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_CKML_S_WIP_PRICEDOC_ALV ASSIGNING <CKML_S_WIP_PRICEDOC_ALV>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<CKML_S_WIP_PRICEDOC_ALV>-QTYRO = 1.
<CKML_S_WIP_PRICEDOC_ALV>-QTYRD = 1.
<CKML_S_WIP_PRICEDOC_ALV>-QTYRN = 1.
<CKML_S_WIP_PRICEDOC_ALV>-QTYTO = 1.
<CKML_S_WIP_PRICEDOC_ALV>-QTYTD = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_CKML_S_WIP_PRICEDOC_ALV-QTYTN, sy-vline,
WA_CKML_S_WIP_PRICEDOC_ALV-MEINS, sy-vline,
WA_CKML_S_WIP_PRICEDOC_ALV-ESTPRDTO, sy-vline,
WA_CKML_S_WIP_PRICEDOC_ALV-ESTKDMTO, sy-vline,
WA_CKML_S_WIP_PRICEDOC_ALV-MSTPRDTO, sy-vline,
WA_CKML_S_WIP_PRICEDOC_ALV-MSTKDMTO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_CKML_S_WIP_PRICEDOC_ALV 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_CKML_S_WIP_PRICEDOC_ALV 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_CKML_S_WIP_PRICEDOC_ALV INTO WA_CKML_S_WIP_PRICEDOC_ALV. *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 CUNIT, internal->external for field MEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_CKML_S_WIP_PRICEDOC_ALV-MEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_CKML_S_WIP_PRICEDOC_ALV-MEINS.
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_CKML_S_WIP_PRICEDOC_ALV_STR,
QTYRO TYPE STRING,
QTYRD TYPE STRING,
QTYRN TYPE STRING,
QTYTO TYPE STRING,
QTYTD TYPE STRING,
QTYTN TYPE STRING,
MEINS TYPE STRING,
ESTPRDTO TYPE STRING,
ESTKDMTO TYPE STRING,
MSTPRDTO TYPE STRING,
MSTKDMTO TYPE STRING,
PRDTO TYPE STRING,
KDMTO TYPE STRING,
PKDIFFTO TYPE STRING,
ESTPRDTD TYPE STRING,
ESTKDMTD TYPE STRING,
MSTPRDTD TYPE STRING,
MSTKDMTD TYPE STRING,
PRDTD TYPE STRING,
KDMTD TYPE STRING,
PKDIFFTD TYPE STRING,
ESTPRDTN TYPE STRING,
ESTKDMTN TYPE STRING,
MSTPRDTN TYPE STRING,
MSTKDMTN TYPE STRING,
PRDTN TYPE STRING,
KDMTN TYPE STRING,
PKDIFFTN TYPE STRING,
ESTPRDRO TYPE STRING,
ESTKDMRO TYPE STRING,
MSTPRDRO TYPE STRING,
MSTKDMRO TYPE STRING,
PRDRO TYPE STRING,
KDMRO TYPE STRING,
PKDIFFRO TYPE STRING,
ESTPRDRD TYPE STRING,
ESTKDMRD TYPE STRING,
MSTPRDRD TYPE STRING,
MSTKDMRD TYPE STRING,
PRDRD TYPE STRING,
KDMRD TYPE STRING,
PKDIFFRD TYPE STRING,
ESTPRDRN TYPE STRING,
ESTKDMRN TYPE STRING,
MSTPRDRN TYPE STRING,
MSTKDMRN TYPE STRING,
PRDRN TYPE STRING,
KDMRN TYPE STRING,
PKDIFFRN TYPE STRING,
WAERS TYPE STRING,END OF T_EKKO_STR. DATA: WA_CKML_S_WIP_PRICEDOC_ALV_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_CKML_S_WIP_PRICEDOC_ALV_STR-QTYRO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-QTYRD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-QTYRN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-QTYTO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-QTYTD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-QTYTN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MEINS sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-ESTPRDTO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-ESTKDMTO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MSTPRDTO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MSTKDMTO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-PRDTO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-KDMTO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-PKDIFFTO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-ESTPRDTD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-ESTKDMTD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MSTPRDTD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MSTKDMTD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-PRDTD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-KDMTD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-PKDIFFTD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-ESTPRDTN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-ESTKDMTN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MSTPRDTN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MSTKDMTN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-PRDTN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-KDMTN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-PKDIFFTN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-ESTPRDRO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-ESTKDMRO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MSTPRDRO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MSTKDMRO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-PRDRO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-KDMRO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-PKDIFFRO sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-ESTPRDRD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-ESTKDMRD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MSTPRDRD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MSTKDMRD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-PRDRD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-KDMRD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-PKDIFFRD sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-ESTPRDRN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-ESTKDMRN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MSTPRDRN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-MSTKDMRN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-PRDRN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-KDMRN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-PKDIFFRN sy-vline
WA_CKML_S_WIP_PRICEDOC_ALV_STR-WAERS sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.