ABAP Select data from SAP table P0881 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 P0881 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 P0881. 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 P0881 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_P0881 TYPE STANDARD TABLE OF P0881,
      WA_P0881 TYPE P0881,
      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: <P0881> TYPE P0881.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM P0881
*  INTO TABLE @DATA(IT_P08812).
*--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_P0881 INDEX 1 INTO DATA(WA_P08812).


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

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_P0881-ENDDA, sy-vline,
WA_P0881-BEGDA, sy-vline,
WA_P0881-SEQNR, sy-vline,
WA_P0881-AEDTM, sy-vline,
WA_P0881-UNAME, sy-vline,
WA_P0881-HISTO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P0881 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_P0881 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_P0881 INTO WA_P0881. *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 RGBZN, internal->external for field LDREG CALL FUNCTION 'CONVERSION_EXIT_RGBZN_OUTPUT' EXPORTING input = WA_P0881-LDREG IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_P0881-LDREG.
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_P0881_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,
EXPTY TYPE STRING,
DPT01 TYPE STRING,
OBJ01 TYPE STRING,
NAM01 TYPE STRING,
OAM01 TYPE STRING,
CUR01 TYPE STRING,
DPT02 TYPE STRING,
OBJ02 TYPE STRING,
NAM02 TYPE STRING,
OAM02 TYPE STRING,
CUR02 TYPE STRING,
DPT03 TYPE STRING,
OBJ03 TYPE STRING,
NAM03 TYPE STRING,
OAM03 TYPE STRING,
CUR03 TYPE STRING,
DPT04 TYPE STRING,
OBJ04 TYPE STRING,
NAM04 TYPE STRING,
OAM04 TYPE STRING,
CUR04 TYPE STRING,
DPT05 TYPE STRING,
OBJ05 TYPE STRING,
NAM05 TYPE STRING,
OAM05 TYPE STRING,
CUR05 TYPE STRING,
DPT06 TYPE STRING,
OBJ06 TYPE STRING,
NAM06 TYPE STRING,
OAM06 TYPE STRING,
CUR06 TYPE STRING,
DPT07 TYPE STRING,
OBJ07 TYPE STRING,
NAM07 TYPE STRING,
OAM07 TYPE STRING,
CUR07 TYPE STRING,
DPT08 TYPE STRING,
OBJ08 TYPE STRING,
NAM08 TYPE STRING,
OAM08 TYPE STRING,
CUR08 TYPE STRING,
DPT09 TYPE STRING,
OBJ09 TYPE STRING,
NAM09 TYPE STRING,
OAM09 TYPE STRING,
CUR09 TYPE STRING,
HAN01 TYPE STRING,
ELV01 TYPE STRING,
HAN02 TYPE STRING,
ELV02 TYPE STRING,
HAN03 TYPE STRING,
ELV03 TYPE STRING,
HAN04 TYPE STRING,
ELV04 TYPE STRING,
HAN05 TYPE STRING,
ELV05 TYPE STRING,
HAN06 TYPE STRING,
ELV06 TYPE STRING,
HAN07 TYPE STRING,
ELV07 TYPE STRING,
HAN08 TYPE STRING,
ELV08 TYPE STRING,
HAN09 TYPE STRING,
ELV09 TYPE STRING,
HAE01 TYPE STRING,
HAE02 TYPE STRING,
HAE03 TYPE STRING,
HAE04 TYPE STRING,
HAE05 TYPE STRING,
HAE06 TYPE STRING,
HAE07 TYPE STRING,
HAE08 TYPE STRING,
HAE09 TYPE STRING,
CDM01 TYPE STRING,
CDM02 TYPE STRING,
CDM03 TYPE STRING,
CDM04 TYPE STRING,
CDM05 TYPE STRING,
CDM06 TYPE STRING,
CDM07 TYPE STRING,
CDM08 TYPE STRING,
CDM09 TYPE STRING,
PNSTY TYPE STRING,
INSNM TYPE STRING,
ACCNO TYPE STRING,
PREIN TYPE STRING,
PREBN TYPE STRING,
FINCO TYPE STRING,
RCBEG TYPE STRING,
RCEND TYPE STRING,
STY01 TYPE STRING,
STY02 TYPE STRING,
STY03 TYPE STRING,
STY04 TYPE STRING,
STY05 TYPE STRING,
STY06 TYPE STRING,
STY07 TYPE STRING,
STY08 TYPE STRING,
STY09 TYPE STRING,
LDNAM TYPE STRING,
LDREG TYPE STRING,
INRAT TYPE STRING,
ADDRE TYPE STRING,
HOUTY TYPE STRING,
FLRAR TYPE STRING,
PRD01 TYPE STRING,
PRD02 TYPE STRING,
PRD03 TYPE STRING,
PRD04 TYPE STRING,
PRD05 TYPE STRING,
PRD06 TYPE STRING,
PRD07 TYPE STRING,
PRD08 TYPE STRING,
PRD09 TYPE STRING,
FIXRT TYPE STRING,
NODEF TYPE STRING,
LNPRD TYPE STRING,
FLNTS TYPE STRING,
PNTTY TYPE STRING,END OF T_EKKO_STR. DATA: WA_P0881_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_P0881_STR-PERNR sy-vline
WA_P0881_STR-INFTY sy-vline
WA_P0881_STR-SUBTY sy-vline
WA_P0881_STR-OBJPS sy-vline
WA_P0881_STR-SPRPS sy-vline
WA_P0881_STR-ENDDA sy-vline
WA_P0881_STR-BEGDA sy-vline
WA_P0881_STR-SEQNR sy-vline
WA_P0881_STR-AEDTM sy-vline
WA_P0881_STR-UNAME sy-vline
WA_P0881_STR-HISTO sy-vline
WA_P0881_STR-ITXEX sy-vline
WA_P0881_STR-REFEX sy-vline
WA_P0881_STR-ORDEX sy-vline
WA_P0881_STR-ITBLD sy-vline
WA_P0881_STR-PREAS sy-vline
WA_P0881_STR-FLAG1 sy-vline
WA_P0881_STR-FLAG2 sy-vline
WA_P0881_STR-FLAG3 sy-vline
WA_P0881_STR-FLAG4 sy-vline
WA_P0881_STR-RESE1 sy-vline
WA_P0881_STR-RESE2 sy-vline
WA_P0881_STR-GRPVL sy-vline
WA_P0881_STR-EXPTY sy-vline
WA_P0881_STR-DPT01 sy-vline
WA_P0881_STR-OBJ01 sy-vline
WA_P0881_STR-NAM01 sy-vline
WA_P0881_STR-OAM01 sy-vline
WA_P0881_STR-CUR01 sy-vline
WA_P0881_STR-DPT02 sy-vline
WA_P0881_STR-OBJ02 sy-vline
WA_P0881_STR-NAM02 sy-vline
WA_P0881_STR-OAM02 sy-vline
WA_P0881_STR-CUR02 sy-vline
WA_P0881_STR-DPT03 sy-vline
WA_P0881_STR-OBJ03 sy-vline
WA_P0881_STR-NAM03 sy-vline
WA_P0881_STR-OAM03 sy-vline
WA_P0881_STR-CUR03 sy-vline
WA_P0881_STR-DPT04 sy-vline
WA_P0881_STR-OBJ04 sy-vline
WA_P0881_STR-NAM04 sy-vline
WA_P0881_STR-OAM04 sy-vline
WA_P0881_STR-CUR04 sy-vline
WA_P0881_STR-DPT05 sy-vline
WA_P0881_STR-OBJ05 sy-vline
WA_P0881_STR-NAM05 sy-vline
WA_P0881_STR-OAM05 sy-vline
WA_P0881_STR-CUR05 sy-vline
WA_P0881_STR-DPT06 sy-vline
WA_P0881_STR-OBJ06 sy-vline
WA_P0881_STR-NAM06 sy-vline
WA_P0881_STR-OAM06 sy-vline
WA_P0881_STR-CUR06 sy-vline
WA_P0881_STR-DPT07 sy-vline
WA_P0881_STR-OBJ07 sy-vline
WA_P0881_STR-NAM07 sy-vline
WA_P0881_STR-OAM07 sy-vline
WA_P0881_STR-CUR07 sy-vline
WA_P0881_STR-DPT08 sy-vline
WA_P0881_STR-OBJ08 sy-vline
WA_P0881_STR-NAM08 sy-vline
WA_P0881_STR-OAM08 sy-vline
WA_P0881_STR-CUR08 sy-vline
WA_P0881_STR-DPT09 sy-vline
WA_P0881_STR-OBJ09 sy-vline
WA_P0881_STR-NAM09 sy-vline
WA_P0881_STR-OAM09 sy-vline
WA_P0881_STR-CUR09 sy-vline
WA_P0881_STR-HAN01 sy-vline
WA_P0881_STR-ELV01 sy-vline
WA_P0881_STR-HAN02 sy-vline
WA_P0881_STR-ELV02 sy-vline
WA_P0881_STR-HAN03 sy-vline
WA_P0881_STR-ELV03 sy-vline
WA_P0881_STR-HAN04 sy-vline
WA_P0881_STR-ELV04 sy-vline
WA_P0881_STR-HAN05 sy-vline
WA_P0881_STR-ELV05 sy-vline
WA_P0881_STR-HAN06 sy-vline
WA_P0881_STR-ELV06 sy-vline
WA_P0881_STR-HAN07 sy-vline
WA_P0881_STR-ELV07 sy-vline
WA_P0881_STR-HAN08 sy-vline
WA_P0881_STR-ELV08 sy-vline
WA_P0881_STR-HAN09 sy-vline
WA_P0881_STR-ELV09 sy-vline
WA_P0881_STR-HAE01 sy-vline
WA_P0881_STR-HAE02 sy-vline
WA_P0881_STR-HAE03 sy-vline
WA_P0881_STR-HAE04 sy-vline
WA_P0881_STR-HAE05 sy-vline
WA_P0881_STR-HAE06 sy-vline
WA_P0881_STR-HAE07 sy-vline
WA_P0881_STR-HAE08 sy-vline
WA_P0881_STR-HAE09 sy-vline
WA_P0881_STR-CDM01 sy-vline
WA_P0881_STR-CDM02 sy-vline
WA_P0881_STR-CDM03 sy-vline
WA_P0881_STR-CDM04 sy-vline
WA_P0881_STR-CDM05 sy-vline
WA_P0881_STR-CDM06 sy-vline
WA_P0881_STR-CDM07 sy-vline
WA_P0881_STR-CDM08 sy-vline
WA_P0881_STR-CDM09 sy-vline
WA_P0881_STR-PNSTY sy-vline
WA_P0881_STR-INSNM sy-vline
WA_P0881_STR-ACCNO sy-vline
WA_P0881_STR-PREIN sy-vline
WA_P0881_STR-PREBN sy-vline
WA_P0881_STR-FINCO sy-vline
WA_P0881_STR-RCBEG sy-vline
WA_P0881_STR-RCEND sy-vline
WA_P0881_STR-STY01 sy-vline
WA_P0881_STR-STY02 sy-vline
WA_P0881_STR-STY03 sy-vline
WA_P0881_STR-STY04 sy-vline
WA_P0881_STR-STY05 sy-vline
WA_P0881_STR-STY06 sy-vline
WA_P0881_STR-STY07 sy-vline
WA_P0881_STR-STY08 sy-vline
WA_P0881_STR-STY09 sy-vline
WA_P0881_STR-LDNAM sy-vline
WA_P0881_STR-LDREG sy-vline
WA_P0881_STR-INRAT sy-vline
WA_P0881_STR-ADDRE sy-vline
WA_P0881_STR-HOUTY sy-vline
WA_P0881_STR-FLRAR sy-vline
WA_P0881_STR-PRD01 sy-vline
WA_P0881_STR-PRD02 sy-vline
WA_P0881_STR-PRD03 sy-vline
WA_P0881_STR-PRD04 sy-vline
WA_P0881_STR-PRD05 sy-vline
WA_P0881_STR-PRD06 sy-vline
WA_P0881_STR-PRD07 sy-vline
WA_P0881_STR-PRD08 sy-vline
WA_P0881_STR-PRD09 sy-vline
WA_P0881_STR-FIXRT sy-vline
WA_P0881_STR-NODEF sy-vline
WA_P0881_STR-LNPRD sy-vline
WA_P0881_STR-FLNTS sy-vline
WA_P0881_STR-PNTTY sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.