ABAP Select data from SAP table E1P0109 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 E1P0109 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 E1P0109. 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 E1P0109 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_E1P0109 TYPE STANDARD TABLE OF E1P0109,
      WA_E1P0109 TYPE E1P0109,
      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: <E1P0109> TYPE E1P0109.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM E1P0109
*  INTO TABLE @DATA(IT_E1P01092).
*--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_E1P0109 INDEX 1 INTO DATA(WA_E1P01092).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_E1P0109 ASSIGNING <E1P0109>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<E1P0109>-PERNR = 1.
<E1P0109>-INFTY = 1.
<E1P0109>-SUBTY = 1.
<E1P0109>-OBJPS = 1.
<E1P0109>-SPRPS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_E1P0109-ENDDA, sy-vline,
WA_E1P0109-BEGDA, sy-vline,
WA_E1P0109-SEQNR, sy-vline,
WA_E1P0109-AEDTM, sy-vline,
WA_E1P0109-UNAME, sy-vline,
WA_E1P0109-HISTO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_E1P0109 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_E1P0109 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_E1P0109 INTO WA_E1P0109. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_E1P0109_STR,
PERNR TYPE STRING,
INFTY TYPE STRING,
SUBTY TYPE STRING,
OBJPS TYPE STRING,
SPRPS TYPE STRING,
ENDDA TYPE STRING,
BEGDA TYPE STRING,
SEQNR TYPE STRING,
AEDTM TYPE STRING,
UNAME TYPE STRING,
HISTO TYPE STRING,
ITXEX TYPE STRING,
REFEX TYPE STRING,
ORDEX TYPE STRING,
ITBLD TYPE STRING,
PREAS TYPE STRING,
FLAG1 TYPE STRING,
FLAG2 TYPE STRING,
FLAG3 TYPE STRING,
FLAG4 TYPE STRING,
RESE1 TYPE STRING,
RESE2 TYPE STRING,
BEANC TYPE STRING,
BEAAN TYPE STRING,
BETIM TYPE STRING,
BEGWU TYPE STRING,
WAERS TYPE STRING,
BEUWG TYPE STRING,
BECAO TYPE STRING,
BEGPC TYPE STRING,
BECNR TYPE STRING,
BEMCH TYPE STRING,
BEGFB TYPE STRING,
BEGGH TYPE STRING,
BREGM TYPE STRING,
WOAHO TYPE STRING,
WPADR TYPE STRING,
BPSNS TYPE STRING,
ONSSAPLPSTFBI TYPE STRING,
ONSSAPLSTF TYPE STRING,
ONSSAPLSTPI TYPE STRING,
P12P_CA_SIT TYPE STRING,
CA_SIT TYPE STRING,
GRPVL TYPE STRING,
DIMNR TYPE STRING,
DIC3C TYPE STRING,
DIC3F TYPE STRING,
WPADD TYPE STRING,
LOCUN TYPE STRING,
WRKPB TYPE STRING,
PDNY1 TYPE STRING,
PDNQ1 TYPE STRING,
PDNV1 TYPE STRING,
PDNY2 TYPE STRING,
PDNQ2 TYPE STRING,
PDNV2 TYPE STRING,
PDNY3 TYPE STRING,
PDNQ3 TYPE STRING,
PDNV3 TYPE STRING,
PDNY4 TYPE STRING,
PDNQ4 TYPE STRING,
PDNV4 TYPE STRING,
PDNY5 TYPE STRING,
PDNQ5 TYPE STRING,
PDNV5 TYPE STRING,
DISPD TYPE STRING,
DISND TYPE STRING,
NACEC TYPE STRING,
DISHW TYPE STRING,END OF T_EKKO_STR. DATA: WA_E1P0109_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_E1P0109_STR-PERNR sy-vline
WA_E1P0109_STR-INFTY sy-vline
WA_E1P0109_STR-SUBTY sy-vline
WA_E1P0109_STR-OBJPS sy-vline
WA_E1P0109_STR-SPRPS sy-vline
WA_E1P0109_STR-ENDDA sy-vline
WA_E1P0109_STR-BEGDA sy-vline
WA_E1P0109_STR-SEQNR sy-vline
WA_E1P0109_STR-AEDTM sy-vline
WA_E1P0109_STR-UNAME sy-vline
WA_E1P0109_STR-HISTO sy-vline
WA_E1P0109_STR-ITXEX sy-vline
WA_E1P0109_STR-REFEX sy-vline
WA_E1P0109_STR-ORDEX sy-vline
WA_E1P0109_STR-ITBLD sy-vline
WA_E1P0109_STR-PREAS sy-vline
WA_E1P0109_STR-FLAG1 sy-vline
WA_E1P0109_STR-FLAG2 sy-vline
WA_E1P0109_STR-FLAG3 sy-vline
WA_E1P0109_STR-FLAG4 sy-vline
WA_E1P0109_STR-RESE1 sy-vline
WA_E1P0109_STR-RESE2 sy-vline
WA_E1P0109_STR-BEANC sy-vline
WA_E1P0109_STR-BEAAN sy-vline
WA_E1P0109_STR-BETIM sy-vline
WA_E1P0109_STR-BEGWU sy-vline
WA_E1P0109_STR-WAERS sy-vline
WA_E1P0109_STR-BEUWG sy-vline
WA_E1P0109_STR-BECAO sy-vline
WA_E1P0109_STR-BEGPC sy-vline
WA_E1P0109_STR-BECNR sy-vline
WA_E1P0109_STR-BEMCH sy-vline
WA_E1P0109_STR-BEGFB sy-vline
WA_E1P0109_STR-BEGGH sy-vline
WA_E1P0109_STR-BREGM sy-vline
WA_E1P0109_STR-WOAHO sy-vline
WA_E1P0109_STR-WPADR sy-vline
WA_E1P0109_STR-BPSNS sy-vline
WA_E1P0109_STR-ONSSAPLPSTFBI sy-vline
WA_E1P0109_STR-ONSSAPLSTF sy-vline
WA_E1P0109_STR-ONSSAPLSTPI sy-vline
WA_E1P0109_STR-P12P_CA_SIT sy-vline
WA_E1P0109_STR-CA_SIT sy-vline
WA_E1P0109_STR-GRPVL sy-vline
WA_E1P0109_STR-DIMNR sy-vline
WA_E1P0109_STR-DIC3C sy-vline
WA_E1P0109_STR-DIC3F sy-vline
WA_E1P0109_STR-WPADD sy-vline
WA_E1P0109_STR-LOCUN sy-vline
WA_E1P0109_STR-WRKPB sy-vline
WA_E1P0109_STR-PDNY1 sy-vline
WA_E1P0109_STR-PDNQ1 sy-vline
WA_E1P0109_STR-PDNV1 sy-vline
WA_E1P0109_STR-PDNY2 sy-vline
WA_E1P0109_STR-PDNQ2 sy-vline
WA_E1P0109_STR-PDNV2 sy-vline
WA_E1P0109_STR-PDNY3 sy-vline
WA_E1P0109_STR-PDNQ3 sy-vline
WA_E1P0109_STR-PDNV3 sy-vline
WA_E1P0109_STR-PDNY4 sy-vline
WA_E1P0109_STR-PDNQ4 sy-vline
WA_E1P0109_STR-PDNV4 sy-vline
WA_E1P0109_STR-PDNY5 sy-vline
WA_E1P0109_STR-PDNQ5 sy-vline
WA_E1P0109_STR-PDNV5 sy-vline
WA_E1P0109_STR-DISPD sy-vline
WA_E1P0109_STR-DISND sy-vline
WA_E1P0109_STR-NACEC sy-vline
WA_E1P0109_STR-DISHW sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.