ABAP Select data from SAP table PPMD_LOIWCS01 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 PPMD_LOIWCS01 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 PPMD_LOIWCS01. 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 PPMD_LOIWCS01 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_PPMD_LOIWCS01 TYPE STANDARD TABLE OF PPMD_LOIWCS01,
      WA_PPMD_LOIWCS01 TYPE PPMD_LOIWCS01,
      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: <PPMD_LOIWCS01> TYPE PPMD_LOIWCS01.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PPMD_LOIWCS01
*  INTO TABLE @DATA(IT_PPMD_LOIWCS012).
*--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_PPMD_LOIWCS01 INDEX 1 INTO DATA(WA_PPMD_LOIWCS012).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PPMD_LOIWCS01 ASSIGNING <PPMD_LOIWCS01>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PPMD_LOIWCS01>-EDIDC = 1.
<PPMD_LOIWCS01>-MANDT = 1.
<PPMD_LOIWCS01>-DOCNUM = 1.
<PPMD_LOIWCS01>-DOCREL = 1.
<PPMD_LOIWCS01>-STATUS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PPMD_LOIWCS01-DOCTYP, sy-vline,
WA_PPMD_LOIWCS01-DIRECT, sy-vline,
WA_PPMD_LOIWCS01-RCVPOR, sy-vline,
WA_PPMD_LOIWCS01-RCVPRT, sy-vline,
WA_PPMD_LOIWCS01-RCVPRN, sy-vline,
WA_PPMD_LOIWCS01-RCVSAD, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PPMD_LOIWCS01 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_PPMD_LOIWCS01 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_PPMD_LOIWCS01 INTO WA_PPMD_LOIWCS01. *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 RCVPRN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PPMD_LOIWCS01-RCVPRN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PPMD_LOIWCS01-RCVPRN.
WRITE:/ 'New Value:', ld_input.

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

*Conversion exit EDIPV, internal->external for field RCVPFC CALL FUNCTION 'CONVERSION_EXIT_EDIPV_OUTPUT' EXPORTING input = WA_PPMD_LOIWCS01-RCVPFC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PPMD_LOIWCS01-RCVPFC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit EDIPV, internal->external for field SNDPFC CALL FUNCTION 'CONVERSION_EXIT_EDIPV_OUTPUT' EXPORTING input = WA_PPMD_LOIWCS01-SNDPFC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PPMD_LOIWCS01-SNDPFC.
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_PPMD_LOIWCS01_STR,
EDIDC TYPE STRING,
MANDT TYPE STRING,
DOCNUM TYPE STRING,
DOCREL TYPE STRING,
STATUS TYPE STRING,
DOCTYP TYPE STRING,
DIRECT TYPE STRING,
RCVPOR TYPE STRING,
RCVPRT TYPE STRING,
RCVPRN TYPE STRING,
RCVSAD TYPE STRING,
RCVSMN TYPE STRING,
RCVSNA TYPE STRING,
RCVSCA TYPE STRING,
RCVSDF TYPE STRING,
RCVSLF TYPE STRING,
RCVLAD TYPE STRING,
STD TYPE STRING,
STDVRS TYPE STRING,
STDMES TYPE STRING,
MESCOD TYPE STRING,
MESFCT TYPE STRING,
OUTMOD TYPE STRING,
TEST TYPE STRING,
SNDPOR TYPE STRING,
SNDPRT TYPE STRING,
SNDPRN TYPE STRING,
SNDSAD TYPE STRING,
SNDSMN TYPE STRING,
SNDSNA TYPE STRING,
SNDSCA TYPE STRING,
SNDSDF TYPE STRING,
SNDSLF TYPE STRING,
SNDLAD TYPE STRING,
REFINT TYPE STRING,
REFGRP TYPE STRING,
REFMES TYPE STRING,
ARCKEY TYPE STRING,
CREDAT TYPE STRING,
CRETIM TYPE STRING,
MESTYP TYPE STRING,
IDOCTP TYPE STRING,
CIMTYP TYPE STRING,
RCVPFC TYPE STRING,
SNDPFC TYPE STRING,
SERIAL TYPE STRING,
EXPRSS TYPE STRING,
UPDDAT TYPE STRING,
UPDTIM TYPE STRING,
MAXSEGNUM TYPE STRING,
E1CRHDL TYPE STRING,
MSGFN TYPE STRING,
OBJID TYPE STRING,
ARBPL TYPE STRING,
FORT1 TYPE STRING,
FORT2 TYPE STRING,
FORT3 TYPE STRING,
FORTN TYPE STRING,
KAPID TYPE STRING,
ORTGR TYPE STRING,
PAR01 TYPE STRING,
PAR02 TYPE STRING,
PAR03 TYPE STRING,
PAR04 TYPE STRING,
PAR05 TYPE STRING,
PAR06 TYPE STRING,
PARU1 TYPE STRING,
PARU2 TYPE STRING,
PARU3 TYPE STRING,
PARU4 TYPE STRING,
PARU5 TYPE STRING,
PARU6 TYPE STRING,
PARV1 TYPE STRING,
PARV2 TYPE STRING,
PARV3 TYPE STRING,
PARV4 TYPE STRING,
PARV5 TYPE STRING,
PARV6 TYPE STRING,
PLANV TYPE STRING,
STAND TYPE STRING,
VERAN TYPE STRING,
VGM01 TYPE STRING,
VGM02 TYPE STRING,
VGM03 TYPE STRING,
VGM04 TYPE STRING,
VGM05 TYPE STRING,
VGM06 TYPE STRING,
VGWTS TYPE STRING,
WERKS TYPE STRING,
ZGR01 TYPE STRING,
ZGR02 TYPE STRING,
ZGR03 TYPE STRING,
ZGR04 TYPE STRING,
ZGR05 TYPE STRING,
ZGR06 TYPE STRING,
RESGR TYPE STRING,
LGORT_RES TYPE STRING,
MIXMAT TYPE STRING,
PRVBE TYPE STRING,
E1CRTXL TYPE STRING,
E1CRCAL TYPE STRING,END OF T_EKKO_STR. DATA: WA_PPMD_LOIWCS01_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_PPMD_LOIWCS01_STR-EDIDC sy-vline
WA_PPMD_LOIWCS01_STR-MANDT sy-vline
WA_PPMD_LOIWCS01_STR-DOCNUM sy-vline
WA_PPMD_LOIWCS01_STR-DOCREL sy-vline
WA_PPMD_LOIWCS01_STR-STATUS sy-vline
WA_PPMD_LOIWCS01_STR-DOCTYP sy-vline
WA_PPMD_LOIWCS01_STR-DIRECT sy-vline
WA_PPMD_LOIWCS01_STR-RCVPOR sy-vline
WA_PPMD_LOIWCS01_STR-RCVPRT sy-vline
WA_PPMD_LOIWCS01_STR-RCVPRN sy-vline
WA_PPMD_LOIWCS01_STR-RCVSAD sy-vline
WA_PPMD_LOIWCS01_STR-RCVSMN sy-vline
WA_PPMD_LOIWCS01_STR-RCVSNA sy-vline
WA_PPMD_LOIWCS01_STR-RCVSCA sy-vline
WA_PPMD_LOIWCS01_STR-RCVSDF sy-vline
WA_PPMD_LOIWCS01_STR-RCVSLF sy-vline
WA_PPMD_LOIWCS01_STR-RCVLAD sy-vline
WA_PPMD_LOIWCS01_STR-STD sy-vline
WA_PPMD_LOIWCS01_STR-STDVRS sy-vline
WA_PPMD_LOIWCS01_STR-STDMES sy-vline
WA_PPMD_LOIWCS01_STR-MESCOD sy-vline
WA_PPMD_LOIWCS01_STR-MESFCT sy-vline
WA_PPMD_LOIWCS01_STR-OUTMOD sy-vline
WA_PPMD_LOIWCS01_STR-TEST sy-vline
WA_PPMD_LOIWCS01_STR-SNDPOR sy-vline
WA_PPMD_LOIWCS01_STR-SNDPRT sy-vline
WA_PPMD_LOIWCS01_STR-SNDPRN sy-vline
WA_PPMD_LOIWCS01_STR-SNDSAD sy-vline
WA_PPMD_LOIWCS01_STR-SNDSMN sy-vline
WA_PPMD_LOIWCS01_STR-SNDSNA sy-vline
WA_PPMD_LOIWCS01_STR-SNDSCA sy-vline
WA_PPMD_LOIWCS01_STR-SNDSDF sy-vline
WA_PPMD_LOIWCS01_STR-SNDSLF sy-vline
WA_PPMD_LOIWCS01_STR-SNDLAD sy-vline
WA_PPMD_LOIWCS01_STR-REFINT sy-vline
WA_PPMD_LOIWCS01_STR-REFGRP sy-vline
WA_PPMD_LOIWCS01_STR-REFMES sy-vline
WA_PPMD_LOIWCS01_STR-ARCKEY sy-vline
WA_PPMD_LOIWCS01_STR-CREDAT sy-vline
WA_PPMD_LOIWCS01_STR-CRETIM sy-vline
WA_PPMD_LOIWCS01_STR-MESTYP sy-vline
WA_PPMD_LOIWCS01_STR-IDOCTP sy-vline
WA_PPMD_LOIWCS01_STR-CIMTYP sy-vline
WA_PPMD_LOIWCS01_STR-RCVPFC sy-vline
WA_PPMD_LOIWCS01_STR-SNDPFC sy-vline
WA_PPMD_LOIWCS01_STR-SERIAL sy-vline
WA_PPMD_LOIWCS01_STR-EXPRSS sy-vline
WA_PPMD_LOIWCS01_STR-UPDDAT sy-vline
WA_PPMD_LOIWCS01_STR-UPDTIM sy-vline
WA_PPMD_LOIWCS01_STR-MAXSEGNUM sy-vline
WA_PPMD_LOIWCS01_STR-E1CRHDL sy-vline
WA_PPMD_LOIWCS01_STR-MSGFN sy-vline
WA_PPMD_LOIWCS01_STR-OBJID sy-vline
WA_PPMD_LOIWCS01_STR-ARBPL sy-vline
WA_PPMD_LOIWCS01_STR-FORT1 sy-vline
WA_PPMD_LOIWCS01_STR-FORT2 sy-vline
WA_PPMD_LOIWCS01_STR-FORT3 sy-vline
WA_PPMD_LOIWCS01_STR-FORTN sy-vline
WA_PPMD_LOIWCS01_STR-KAPID sy-vline
WA_PPMD_LOIWCS01_STR-ORTGR sy-vline
WA_PPMD_LOIWCS01_STR-PAR01 sy-vline
WA_PPMD_LOIWCS01_STR-PAR02 sy-vline
WA_PPMD_LOIWCS01_STR-PAR03 sy-vline
WA_PPMD_LOIWCS01_STR-PAR04 sy-vline
WA_PPMD_LOIWCS01_STR-PAR05 sy-vline
WA_PPMD_LOIWCS01_STR-PAR06 sy-vline
WA_PPMD_LOIWCS01_STR-PARU1 sy-vline
WA_PPMD_LOIWCS01_STR-PARU2 sy-vline
WA_PPMD_LOIWCS01_STR-PARU3 sy-vline
WA_PPMD_LOIWCS01_STR-PARU4 sy-vline
WA_PPMD_LOIWCS01_STR-PARU5 sy-vline
WA_PPMD_LOIWCS01_STR-PARU6 sy-vline
WA_PPMD_LOIWCS01_STR-PARV1 sy-vline
WA_PPMD_LOIWCS01_STR-PARV2 sy-vline
WA_PPMD_LOIWCS01_STR-PARV3 sy-vline
WA_PPMD_LOIWCS01_STR-PARV4 sy-vline
WA_PPMD_LOIWCS01_STR-PARV5 sy-vline
WA_PPMD_LOIWCS01_STR-PARV6 sy-vline
WA_PPMD_LOIWCS01_STR-PLANV sy-vline
WA_PPMD_LOIWCS01_STR-STAND sy-vline
WA_PPMD_LOIWCS01_STR-VERAN sy-vline
WA_PPMD_LOIWCS01_STR-VGM01 sy-vline
WA_PPMD_LOIWCS01_STR-VGM02 sy-vline
WA_PPMD_LOIWCS01_STR-VGM03 sy-vline
WA_PPMD_LOIWCS01_STR-VGM04 sy-vline
WA_PPMD_LOIWCS01_STR-VGM05 sy-vline
WA_PPMD_LOIWCS01_STR-VGM06 sy-vline
WA_PPMD_LOIWCS01_STR-VGWTS sy-vline
WA_PPMD_LOIWCS01_STR-WERKS sy-vline
WA_PPMD_LOIWCS01_STR-ZGR01 sy-vline
WA_PPMD_LOIWCS01_STR-ZGR02 sy-vline
WA_PPMD_LOIWCS01_STR-ZGR03 sy-vline
WA_PPMD_LOIWCS01_STR-ZGR04 sy-vline
WA_PPMD_LOIWCS01_STR-ZGR05 sy-vline
WA_PPMD_LOIWCS01_STR-ZGR06 sy-vline
WA_PPMD_LOIWCS01_STR-RESGR sy-vline
WA_PPMD_LOIWCS01_STR-LGORT_RES sy-vline
WA_PPMD_LOIWCS01_STR-MIXMAT sy-vline
WA_PPMD_LOIWCS01_STR-PRVBE sy-vline
WA_PPMD_LOIWCS01_STR-E1CRTXL sy-vline
WA_PPMD_LOIWCS01_STR-E1CRCAL sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.