ABAP Select data from SAP table E1P1691 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 E1P1691 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 E1P1691. 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 E1P1691 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_E1P1691 TYPE STANDARD TABLE OF E1P1691,
      WA_E1P1691 TYPE E1P1691,
      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: <E1P1691> TYPE E1P1691.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM E1P1691
*  INTO TABLE @DATA(IT_E1P16912).
*--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_E1P1691 INDEX 1 INTO DATA(WA_E1P16912).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_E1P1691 ASSIGNING <E1P1691>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<E1P1691>-MANDT = 1.
<E1P1691>-PLVAR = 1.
<E1P1691>-OTYPE = 1.
<E1P1691>-OBJID = 1.
<E1P1691>-INFTY = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_E1P1691-SUBTY, sy-vline,
WA_E1P1691-ISTAT, sy-vline,
WA_E1P1691-PRIOX, sy-vline,
WA_E1P1691-BEGDA, sy-vline,
WA_E1P1691-ENDDA, sy-vline,
WA_E1P1691-LANGU, sy-vline.
ENDLOOP. *Add any further fields from structure WA_E1P1691 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_E1P1691 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_E1P1691 INTO WA_E1P1691. *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_E1P1691_STR,
MANDT TYPE STRING,
PLVAR TYPE STRING,
OTYPE TYPE STRING,
OBJID TYPE STRING,
INFTY TYPE STRING,
SUBTY TYPE STRING,
ISTAT TYPE STRING,
PRIOX TYPE STRING,
BEGDA TYPE STRING,
ENDDA TYPE STRING,
LANGU TYPE STRING,
FILLER TYPE STRING,
SEQNR TYPE STRING,
AEDTM TYPE STRING,
UNAME TYPE STRING,
REASN TYPE STRING,
HISTO TYPE STRING,
ITXNR TYPE STRING,
MOLGA TYPE STRING,
TRTYP TYPE STRING,
TROBJ TYPE STRING,
KOBES TYPE STRING,
PRDIR TYPE STRING,
PRICE TYPE STRING,
WAERS TYPE STRING,
BUNIT TYPE STRING,
BZGME TYPE STRING,
KOBES001 TYPE STRING,
PRDIR001 TYPE STRING,
PRICE001 TYPE STRING,
WAERS001 TYPE STRING,
BUNIT001 TYPE STRING,
BZGME001 TYPE STRING,
KOBES002 TYPE STRING,
PRDIR002 TYPE STRING,
PRICE002 TYPE STRING,
WAERS002 TYPE STRING,
BUNIT002 TYPE STRING,
BZGME002 TYPE STRING,
KOBES003 TYPE STRING,
PRDIR003 TYPE STRING,
PRICE003 TYPE STRING,
WAERS003 TYPE STRING,
BUNIT003 TYPE STRING,
BZGME003 TYPE STRING,
KOBES004 TYPE STRING,
PRDIR004 TYPE STRING,
PRICE004 TYPE STRING,
WAERS004 TYPE STRING,
BUNIT004 TYPE STRING,
BZGME004 TYPE STRING,
KOBES005 TYPE STRING,
PRDIR005 TYPE STRING,
PRICE005 TYPE STRING,
WAERS005 TYPE STRING,
BUNIT005 TYPE STRING,
BZGME005 TYPE STRING,
KOBES006 TYPE STRING,
PRDIR006 TYPE STRING,
PRICE006 TYPE STRING,
WAERS006 TYPE STRING,
BUNIT006 TYPE STRING,
BZGME006 TYPE STRING,
KOBES007 TYPE STRING,
PRDIR007 TYPE STRING,
PRICE007 TYPE STRING,
WAERS007 TYPE STRING,
BUNIT007 TYPE STRING,
BZGME007 TYPE STRING,
KOBES008 TYPE STRING,
PRDIR008 TYPE STRING,
PRICE008 TYPE STRING,
WAERS008 TYPE STRING,
BUNIT008 TYPE STRING,
BZGME008 TYPE STRING,
WERKS001 TYPE STRING,
BTRTL001 TYPE STRING,
PERNR001 TYPE STRING,
WERKS002 TYPE STRING,
BTRTL002 TYPE STRING,
PERNR002 TYPE STRING,
TABNR TYPE STRING,
LANGU_ISO TYPE STRING,END OF T_EKKO_STR. DATA: WA_E1P1691_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_E1P1691_STR-MANDT sy-vline
WA_E1P1691_STR-PLVAR sy-vline
WA_E1P1691_STR-OTYPE sy-vline
WA_E1P1691_STR-OBJID sy-vline
WA_E1P1691_STR-INFTY sy-vline
WA_E1P1691_STR-SUBTY sy-vline
WA_E1P1691_STR-ISTAT sy-vline
WA_E1P1691_STR-PRIOX sy-vline
WA_E1P1691_STR-BEGDA sy-vline
WA_E1P1691_STR-ENDDA sy-vline
WA_E1P1691_STR-LANGU sy-vline
WA_E1P1691_STR-FILLER sy-vline
WA_E1P1691_STR-SEQNR sy-vline
WA_E1P1691_STR-AEDTM sy-vline
WA_E1P1691_STR-UNAME sy-vline
WA_E1P1691_STR-REASN sy-vline
WA_E1P1691_STR-HISTO sy-vline
WA_E1P1691_STR-ITXNR sy-vline
WA_E1P1691_STR-MOLGA sy-vline
WA_E1P1691_STR-TRTYP sy-vline
WA_E1P1691_STR-TROBJ sy-vline
WA_E1P1691_STR-KOBES sy-vline
WA_E1P1691_STR-PRDIR sy-vline
WA_E1P1691_STR-PRICE sy-vline
WA_E1P1691_STR-WAERS sy-vline
WA_E1P1691_STR-BUNIT sy-vline
WA_E1P1691_STR-BZGME sy-vline
WA_E1P1691_STR-KOBES001 sy-vline
WA_E1P1691_STR-PRDIR001 sy-vline
WA_E1P1691_STR-PRICE001 sy-vline
WA_E1P1691_STR-WAERS001 sy-vline
WA_E1P1691_STR-BUNIT001 sy-vline
WA_E1P1691_STR-BZGME001 sy-vline
WA_E1P1691_STR-KOBES002 sy-vline
WA_E1P1691_STR-PRDIR002 sy-vline
WA_E1P1691_STR-PRICE002 sy-vline
WA_E1P1691_STR-WAERS002 sy-vline
WA_E1P1691_STR-BUNIT002 sy-vline
WA_E1P1691_STR-BZGME002 sy-vline
WA_E1P1691_STR-KOBES003 sy-vline
WA_E1P1691_STR-PRDIR003 sy-vline
WA_E1P1691_STR-PRICE003 sy-vline
WA_E1P1691_STR-WAERS003 sy-vline
WA_E1P1691_STR-BUNIT003 sy-vline
WA_E1P1691_STR-BZGME003 sy-vline
WA_E1P1691_STR-KOBES004 sy-vline
WA_E1P1691_STR-PRDIR004 sy-vline
WA_E1P1691_STR-PRICE004 sy-vline
WA_E1P1691_STR-WAERS004 sy-vline
WA_E1P1691_STR-BUNIT004 sy-vline
WA_E1P1691_STR-BZGME004 sy-vline
WA_E1P1691_STR-KOBES005 sy-vline
WA_E1P1691_STR-PRDIR005 sy-vline
WA_E1P1691_STR-PRICE005 sy-vline
WA_E1P1691_STR-WAERS005 sy-vline
WA_E1P1691_STR-BUNIT005 sy-vline
WA_E1P1691_STR-BZGME005 sy-vline
WA_E1P1691_STR-KOBES006 sy-vline
WA_E1P1691_STR-PRDIR006 sy-vline
WA_E1P1691_STR-PRICE006 sy-vline
WA_E1P1691_STR-WAERS006 sy-vline
WA_E1P1691_STR-BUNIT006 sy-vline
WA_E1P1691_STR-BZGME006 sy-vline
WA_E1P1691_STR-KOBES007 sy-vline
WA_E1P1691_STR-PRDIR007 sy-vline
WA_E1P1691_STR-PRICE007 sy-vline
WA_E1P1691_STR-WAERS007 sy-vline
WA_E1P1691_STR-BUNIT007 sy-vline
WA_E1P1691_STR-BZGME007 sy-vline
WA_E1P1691_STR-KOBES008 sy-vline
WA_E1P1691_STR-PRDIR008 sy-vline
WA_E1P1691_STR-PRICE008 sy-vline
WA_E1P1691_STR-WAERS008 sy-vline
WA_E1P1691_STR-BUNIT008 sy-vline
WA_E1P1691_STR-BZGME008 sy-vline
WA_E1P1691_STR-WERKS001 sy-vline
WA_E1P1691_STR-BTRTL001 sy-vline
WA_E1P1691_STR-PERNR001 sy-vline
WA_E1P1691_STR-WERKS002 sy-vline
WA_E1P1691_STR-BTRTL002 sy-vline
WA_E1P1691_STR-PERNR002 sy-vline
WA_E1P1691_STR-TABNR sy-vline
WA_E1P1691_STR-LANGU_ISO sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.