ABAP Select data from SAP table P0421 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 P0421 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 P0421. 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 P0421 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_P0421 TYPE STANDARD TABLE OF P0421,
      WA_P0421 TYPE P0421,
      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: <P0421> TYPE P0421.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM P0421
*  INTO TABLE @DATA(IT_P04212).
*--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_P0421 INDEX 1 INTO DATA(WA_P04212).


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

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_P0421-ENDDA, sy-vline,
WA_P0421-BEGDA, sy-vline,
WA_P0421-SEQNR, sy-vline,
WA_P0421-AEDTM, sy-vline,
WA_P0421-UNAME, sy-vline,
WA_P0421-HISTO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P0421 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_P0421 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_P0421 INTO WA_P0421. *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_P0421_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,
GRPVL TYPE STRING,
ITWAE TYPE STRING,
RETP1 TYPE STRING,
DAT11 TYPE STRING,
DAT21 TYPE STRING,
RETR1 TYPE STRING,
NSET1 TYPE STRING,
NUMG1 TYPE STRING,
RETP2 TYPE STRING,
DAT12 TYPE STRING,
DAT22 TYPE STRING,
RETR2 TYPE STRING,
NSET2 TYPE STRING,
NUMG2 TYPE STRING,
RETP3 TYPE STRING,
DAT13 TYPE STRING,
DAT23 TYPE STRING,
RETR3 TYPE STRING,
NSET3 TYPE STRING,
NUMG3 TYPE STRING,
RETP4 TYPE STRING,
DAT14 TYPE STRING,
DAT24 TYPE STRING,
RETR4 TYPE STRING,
NSET4 TYPE STRING,
NUMG4 TYPE STRING,
RETP5 TYPE STRING,
DAT15 TYPE STRING,
DAT25 TYPE STRING,
RETR5 TYPE STRING,
NSET5 TYPE STRING,
NUMG5 TYPE STRING,
RETP6 TYPE STRING,
DAT16 TYPE STRING,
DAT26 TYPE STRING,
RETR6 TYPE STRING,
NSET6 TYPE STRING,
NUMG6 TYPE STRING,
RETP7 TYPE STRING,
DAT17 TYPE STRING,
DAT27 TYPE STRING,
RETR7 TYPE STRING,
NSET7 TYPE STRING,
NUMG7 TYPE STRING,
RETP8 TYPE STRING,
DAT18 TYPE STRING,
DAT28 TYPE STRING,
RETR8 TYPE STRING,
NSET8 TYPE STRING,
NUMG8 TYPE STRING,
GGUT1 TYPE STRING,
GGUT2 TYPE STRING,
GGUT3 TYPE STRING,
GGUT4 TYPE STRING,
GGUT5 TYPE STRING,
GGUT6 TYPE STRING,
GGUT7 TYPE STRING,
GGUT8 TYPE STRING,
GGNR1 TYPE STRING,
GGNR2 TYPE STRING,
GGNR3 TYPE STRING,
GGNR4 TYPE STRING,
GGNR5 TYPE STRING,
GGNR6 TYPE STRING,
GGNR7 TYPE STRING,
GGNR8 TYPE STRING,
RPEN1 TYPE STRING,
RPEN2 TYPE STRING,
RPEN3 TYPE STRING,
RPEN4 TYPE STRING,
RPEN5 TYPE STRING,
RPEN6 TYPE STRING,
RPEN7 TYPE STRING,
RPEN8 TYPE STRING,END OF T_EKKO_STR. DATA: WA_P0421_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_P0421_STR-PERNR sy-vline
WA_P0421_STR-INFTY sy-vline
WA_P0421_STR-SUBTY sy-vline
WA_P0421_STR-OBJPS sy-vline
WA_P0421_STR-SPRPS sy-vline
WA_P0421_STR-ENDDA sy-vline
WA_P0421_STR-BEGDA sy-vline
WA_P0421_STR-SEQNR sy-vline
WA_P0421_STR-AEDTM sy-vline
WA_P0421_STR-UNAME sy-vline
WA_P0421_STR-HISTO sy-vline
WA_P0421_STR-ITXEX sy-vline
WA_P0421_STR-REFEX sy-vline
WA_P0421_STR-ORDEX sy-vline
WA_P0421_STR-ITBLD sy-vline
WA_P0421_STR-PREAS sy-vline
WA_P0421_STR-FLAG1 sy-vline
WA_P0421_STR-FLAG2 sy-vline
WA_P0421_STR-FLAG3 sy-vline
WA_P0421_STR-FLAG4 sy-vline
WA_P0421_STR-RESE1 sy-vline
WA_P0421_STR-RESE2 sy-vline
WA_P0421_STR-GRPVL sy-vline
WA_P0421_STR-ITWAE sy-vline
WA_P0421_STR-RETP1 sy-vline
WA_P0421_STR-DAT11 sy-vline
WA_P0421_STR-DAT21 sy-vline
WA_P0421_STR-RETR1 sy-vline
WA_P0421_STR-NSET1 sy-vline
WA_P0421_STR-NUMG1 sy-vline
WA_P0421_STR-RETP2 sy-vline
WA_P0421_STR-DAT12 sy-vline
WA_P0421_STR-DAT22 sy-vline
WA_P0421_STR-RETR2 sy-vline
WA_P0421_STR-NSET2 sy-vline
WA_P0421_STR-NUMG2 sy-vline
WA_P0421_STR-RETP3 sy-vline
WA_P0421_STR-DAT13 sy-vline
WA_P0421_STR-DAT23 sy-vline
WA_P0421_STR-RETR3 sy-vline
WA_P0421_STR-NSET3 sy-vline
WA_P0421_STR-NUMG3 sy-vline
WA_P0421_STR-RETP4 sy-vline
WA_P0421_STR-DAT14 sy-vline
WA_P0421_STR-DAT24 sy-vline
WA_P0421_STR-RETR4 sy-vline
WA_P0421_STR-NSET4 sy-vline
WA_P0421_STR-NUMG4 sy-vline
WA_P0421_STR-RETP5 sy-vline
WA_P0421_STR-DAT15 sy-vline
WA_P0421_STR-DAT25 sy-vline
WA_P0421_STR-RETR5 sy-vline
WA_P0421_STR-NSET5 sy-vline
WA_P0421_STR-NUMG5 sy-vline
WA_P0421_STR-RETP6 sy-vline
WA_P0421_STR-DAT16 sy-vline
WA_P0421_STR-DAT26 sy-vline
WA_P0421_STR-RETR6 sy-vline
WA_P0421_STR-NSET6 sy-vline
WA_P0421_STR-NUMG6 sy-vline
WA_P0421_STR-RETP7 sy-vline
WA_P0421_STR-DAT17 sy-vline
WA_P0421_STR-DAT27 sy-vline
WA_P0421_STR-RETR7 sy-vline
WA_P0421_STR-NSET7 sy-vline
WA_P0421_STR-NUMG7 sy-vline
WA_P0421_STR-RETP8 sy-vline
WA_P0421_STR-DAT18 sy-vline
WA_P0421_STR-DAT28 sy-vline
WA_P0421_STR-RETR8 sy-vline
WA_P0421_STR-NSET8 sy-vline
WA_P0421_STR-NUMG8 sy-vline
WA_P0421_STR-GGUT1 sy-vline
WA_P0421_STR-GGUT2 sy-vline
WA_P0421_STR-GGUT3 sy-vline
WA_P0421_STR-GGUT4 sy-vline
WA_P0421_STR-GGUT5 sy-vline
WA_P0421_STR-GGUT6 sy-vline
WA_P0421_STR-GGUT7 sy-vline
WA_P0421_STR-GGUT8 sy-vline
WA_P0421_STR-GGNR1 sy-vline
WA_P0421_STR-GGNR2 sy-vline
WA_P0421_STR-GGNR3 sy-vline
WA_P0421_STR-GGNR4 sy-vline
WA_P0421_STR-GGNR5 sy-vline
WA_P0421_STR-GGNR6 sy-vline
WA_P0421_STR-GGNR7 sy-vline
WA_P0421_STR-GGNR8 sy-vline
WA_P0421_STR-RPEN1 sy-vline
WA_P0421_STR-RPEN2 sy-vline
WA_P0421_STR-RPEN3 sy-vline
WA_P0421_STR-RPEN4 sy-vline
WA_P0421_STR-RPEN5 sy-vline
WA_P0421_STR-RPEN6 sy-vline
WA_P0421_STR-RPEN7 sy-vline
WA_P0421_STR-RPEN8 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.