ABAP Select data from SAP table PP0J 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 PP0J 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 PP0J. 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 PP0J 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_PP0J TYPE STANDARD TABLE OF PP0J,
      WA_PP0J TYPE PP0J,
      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: <PP0J> TYPE PP0J.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PP0J
*  INTO TABLE @DATA(IT_PP0J2).
*--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_PP0J INDEX 1 INTO DATA(WA_PP0J2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PP0J ASSIGNING <PP0J>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PP0J>-BELEGT = 1.
<PP0J>-EXPLOD = 1.
<PP0J>-TXT_ID = 1.
<PP0J>-OUTPUT = 1.
<PP0J>-OCCP = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PP0J-HOLIDAY, sy-vline,
WA_PP0J-RASTER, sy-vline,
WA_PP0J-MESSG, sy-vline,
WA_PP0J-SKIP, sy-vline,
WA_PP0J-QUART, sy-vline,
WA_PP0J-SMODE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PP0J 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_PP0J 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_PP0J INTO WA_PP0J. *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_PP0J_STR,
BELEGT TYPE STRING,
EXPLOD TYPE STRING,
TXT_ID TYPE STRING,
OUTPUT TYPE STRING,
OCCP TYPE STRING,
HOLIDAY TYPE STRING,
RASTER TYPE STRING,
MESSG TYPE STRING,
SKIP TYPE STRING,
QUART TYPE STRING,
SMODE TYPE STRING,
IMODE TYPE STRING,
HISTOFL TYPE STRING,
PRIO1 TYPE STRING,
PRIO2 TYPE STRING,
PRIO3 TYPE STRING,
SCREENO TYPE STRING,
VORSTOR TYPE STRING,
RAHMEN TYPE STRING,
LANGU TYPE STRING,
COUNT TYPE STRING,
TEST TYPE STRING,
EVASELEC TYPE STRING,
KMACO TYPE STRING,
PERS TYPE STRING,
UNIT TYPE STRING,
KOSTEN TYPE STRING,
PRINT TYPE STRING,
PRESENT TYPE STRING,
KURS TYPE STRING,
KURST TYPE STRING,
OFFER TYPE STRING,
EXTRN TYPE STRING,
SPERR TYPE STRING,
LOESCH TYPE STRING,
HISTOR TYPE STRING,
CONTEND TYPE STRING,
CONTENT TYPE STRING,
ALPHSORTA TYPE STRING,
ALPHSORT TYPE STRING,
EVEDATE TYPE STRING,
SEL_1029 TYPE STRING,
CHO_KGRP TYPE STRING,
KUGRP TYPE STRING,
ALL_TEIL TYPE STRING,
SORT TYPE STRING,
SPLIT TYPE STRING,
CHO_KTYP TYPE STRING,
COURSES TYPE STRING,
APPLK TYPE STRING,
KINFO TYPE STRING,
KUNDE TYPE STRING,
PERNR TYPE STRING,
FIRMA TYPE STRING,
TEILN TYPE STRING,
PARTN TYPE STRING,
ORGEH TYPE STRING,
USER TYPE STRING,
SPLIT_LANG TYPE STRING,
UMS_LISTE TYPE STRING,
OFFER_BOX TYPE STRING,
PERS_BOX TYPE STRING,
ALPHA_BOX TYPE STRING,
GESUM TYPE STRING,
INTUM TYPE STRING,
EXTUM TYPE STRING,
GESTEIL TYPE STRING,
INTTEIL TYPE STRING,
EXTTEIL TYPE STRING,
INTPREIS_X TYPE STRING,
EXTPREIS_X TYPE STRING,
WIPARTEVEN TYPE STRING,
OHEMPLBOOK TYPE STRING,
MIEMPLBOOK TYPE STRING,
OHPREBVORM TYPE STRING,
MIPREBVORM TYPE STRING,
MIEMPLHIST TYPE STRING,
OHEMPLHIST TYPE STRING,
MIEMPLSTOR TYPE STRING,
OHEMPLSTOR TYPE STRING,
OUTPINLV TYPE STRING,
OUTPFAKT TYPE STRING,
OUTPSTOR TYPE STRING,
ORGSORT TYPE STRING,
PRICSORT TYPE STRING,
STICHTAG TYPE STRING,
PRIOSORT TYPE STRING,
MODE TYPE STRING,
DAYNR TYPE STRING,
SORT_UP TYPE STRING,
SORT_DOWN TYPE STRING,
TC_DISP TYPE STRING,
SELECTIT TYPE STRING,
NEWPAGE TYPE STRING,
TEXT TYPE STRING,
EVMAT TYPE STRING,
ORGINCL TYPE STRING,
QUALI TYPE STRING,END OF T_EKKO_STR. DATA: WA_PP0J_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_PP0J_STR-BELEGT sy-vline
WA_PP0J_STR-EXPLOD sy-vline
WA_PP0J_STR-TXT_ID sy-vline
WA_PP0J_STR-OUTPUT sy-vline
WA_PP0J_STR-OCCP sy-vline
WA_PP0J_STR-HOLIDAY sy-vline
WA_PP0J_STR-RASTER sy-vline
WA_PP0J_STR-MESSG sy-vline
WA_PP0J_STR-SKIP sy-vline
WA_PP0J_STR-QUART sy-vline
WA_PP0J_STR-SMODE sy-vline
WA_PP0J_STR-IMODE sy-vline
WA_PP0J_STR-HISTOFL sy-vline
WA_PP0J_STR-PRIO1 sy-vline
WA_PP0J_STR-PRIO2 sy-vline
WA_PP0J_STR-PRIO3 sy-vline
WA_PP0J_STR-SCREENO sy-vline
WA_PP0J_STR-VORSTOR sy-vline
WA_PP0J_STR-RAHMEN sy-vline
WA_PP0J_STR-LANGU sy-vline
WA_PP0J_STR-COUNT sy-vline
WA_PP0J_STR-TEST sy-vline
WA_PP0J_STR-EVASELEC sy-vline
WA_PP0J_STR-KMACO sy-vline
WA_PP0J_STR-PERS sy-vline
WA_PP0J_STR-UNIT sy-vline
WA_PP0J_STR-KOSTEN sy-vline
WA_PP0J_STR-PRINT sy-vline
WA_PP0J_STR-PRESENT sy-vline
WA_PP0J_STR-KURS sy-vline
WA_PP0J_STR-KURST sy-vline
WA_PP0J_STR-OFFER sy-vline
WA_PP0J_STR-EXTRN sy-vline
WA_PP0J_STR-SPERR sy-vline
WA_PP0J_STR-LOESCH sy-vline
WA_PP0J_STR-HISTOR sy-vline
WA_PP0J_STR-CONTEND sy-vline
WA_PP0J_STR-CONTENT sy-vline
WA_PP0J_STR-ALPHSORTA sy-vline
WA_PP0J_STR-ALPHSORT sy-vline
WA_PP0J_STR-EVEDATE sy-vline
WA_PP0J_STR-SEL_1029 sy-vline
WA_PP0J_STR-CHO_KGRP sy-vline
WA_PP0J_STR-KUGRP sy-vline
WA_PP0J_STR-ALL_TEIL sy-vline
WA_PP0J_STR-SORT sy-vline
WA_PP0J_STR-SPLIT sy-vline
WA_PP0J_STR-CHO_KTYP sy-vline
WA_PP0J_STR-COURSES sy-vline
WA_PP0J_STR-APPLK sy-vline
WA_PP0J_STR-KINFO sy-vline
WA_PP0J_STR-KUNDE sy-vline
WA_PP0J_STR-PERNR sy-vline
WA_PP0J_STR-FIRMA sy-vline
WA_PP0J_STR-TEILN sy-vline
WA_PP0J_STR-PARTN sy-vline
WA_PP0J_STR-ORGEH sy-vline
WA_PP0J_STR-USER sy-vline
WA_PP0J_STR-SPLIT_LANG sy-vline
WA_PP0J_STR-UMS_LISTE sy-vline
WA_PP0J_STR-OFFER_BOX sy-vline
WA_PP0J_STR-PERS_BOX sy-vline
WA_PP0J_STR-ALPHA_BOX sy-vline
WA_PP0J_STR-GESUM sy-vline
WA_PP0J_STR-INTUM sy-vline
WA_PP0J_STR-EXTUM sy-vline
WA_PP0J_STR-GESTEIL sy-vline
WA_PP0J_STR-INTTEIL sy-vline
WA_PP0J_STR-EXTTEIL sy-vline
WA_PP0J_STR-INTPREIS_X sy-vline
WA_PP0J_STR-EXTPREIS_X sy-vline
WA_PP0J_STR-WIPARTEVEN sy-vline
WA_PP0J_STR-OHEMPLBOOK sy-vline
WA_PP0J_STR-MIEMPLBOOK sy-vline
WA_PP0J_STR-OHPREBVORM sy-vline
WA_PP0J_STR-MIPREBVORM sy-vline
WA_PP0J_STR-MIEMPLHIST sy-vline
WA_PP0J_STR-OHEMPLHIST sy-vline
WA_PP0J_STR-MIEMPLSTOR sy-vline
WA_PP0J_STR-OHEMPLSTOR sy-vline
WA_PP0J_STR-OUTPINLV sy-vline
WA_PP0J_STR-OUTPFAKT sy-vline
WA_PP0J_STR-OUTPSTOR sy-vline
WA_PP0J_STR-ORGSORT sy-vline
WA_PP0J_STR-PRICSORT sy-vline
WA_PP0J_STR-STICHTAG sy-vline
WA_PP0J_STR-PRIOSORT sy-vline
WA_PP0J_STR-MODE sy-vline
WA_PP0J_STR-DAYNR sy-vline
WA_PP0J_STR-SORT_UP sy-vline
WA_PP0J_STR-SORT_DOWN sy-vline
WA_PP0J_STR-TC_DISP sy-vline
WA_PP0J_STR-SELECTIT sy-vline
WA_PP0J_STR-NEWPAGE sy-vline
WA_PP0J_STR-TEXT sy-vline
WA_PP0J_STR-EVMAT sy-vline
WA_PP0J_STR-ORGINCL sy-vline
WA_PP0J_STR-QUALI sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.