ABAP Select data from SAP table P41_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 P41_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 P41_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 P41_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_P41_P0881 TYPE STANDARD TABLE OF P41_P0881,
      WA_P41_P0881 TYPE P41_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: <P41_P0881> TYPE P41_P0881.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM P41_P0881
*  INTO TABLE @DATA(IT_P41_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_P41_P0881 INDEX 1 INTO DATA(WA_P41_P08812).


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

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_P41_P0881-ENDDA, sy-vline,
WA_P41_P0881-BEGDA, sy-vline,
WA_P41_P0881-SEQNR, sy-vline,
WA_P41_P0881-AEDTM, sy-vline,
WA_P41_P0881-UNAME, sy-vline,
WA_P41_P0881-HISTO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P41_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_P41_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_P41_P0881 INTO WA_P41_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 REGNO, internal->external for field LDREG CALL FUNCTION 'CONVERSION_EXIT_REGNO_OUTPUT' EXPORTING input = WA_P41_P0881-LDREG IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_P41_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_P41_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,
EXPENSETY TYPE STRING,
SUBTYPE01 TYPE STRING,
OBJECTID01 TYPE STRING,
EXPAMTNTS01 TYPE STRING,
EXPAMTOTHER01 TYPE STRING,
EXPCURKEY01 TYPE STRING,
SUBTYPE02 TYPE STRING,
OBJECTID02 TYPE STRING,
EXPAMTNTS02 TYPE STRING,
EXPAMTOTHER02 TYPE STRING,
EXPCURKEY02 TYPE STRING,
SUBTYPE03 TYPE STRING,
OBJECTID03 TYPE STRING,
EXPAMTNTS03 TYPE STRING,
EXPAMTOTHER03 TYPE STRING,
EXPCURKEY03 TYPE STRING,
SUBTYPE04 TYPE STRING,
OBJECTID04 TYPE STRING,
EXPAMTNTS04 TYPE STRING,
EXPAMTOTHER04 TYPE STRING,
EXPCURKEY04 TYPE STRING,
SUBTYPE05 TYPE STRING,
OBJECTID05 TYPE STRING,
EXPAMTNTS05 TYPE STRING,
EXPAMTOTHER05 TYPE STRING,
EXPCURKEY05 TYPE STRING,
SUBTYPE06 TYPE STRING,
OBJECTID06 TYPE STRING,
EXPAMTNTS06 TYPE STRING,
EXPAMTOTHER06 TYPE STRING,
EXPCURKEY06 TYPE STRING,
SUBTYPE07 TYPE STRING,
OBJECTID07 TYPE STRING,
EXPAMTNTS07 TYPE STRING,
EXPAMTOTHER07 TYPE STRING,
EXPCURKEY07 TYPE STRING,
SUBTYPE08 TYPE STRING,
OBJECTID08 TYPE STRING,
EXPAMTNTS08 TYPE STRING,
EXPAMTOTHER08 TYPE STRING,
EXPCURKEY08 TYPE STRING,
SUBTYPE09 TYPE STRING,
OBJECTID09 TYPE STRING,
EXPAMTNTS09 TYPE STRING,
EXPAMTOTHER09 TYPE STRING,
EXPCURKEY09 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,
NODEF TYPE STRING,
FIXRT TYPE STRING,
LNPRD TYPE STRING,END OF T_EKKO_STR. DATA: WA_P41_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_P41_P0881_STR-PERNR sy-vline
WA_P41_P0881_STR-INFTY sy-vline
WA_P41_P0881_STR-SUBTY sy-vline
WA_P41_P0881_STR-OBJPS sy-vline
WA_P41_P0881_STR-SPRPS sy-vline
WA_P41_P0881_STR-ENDDA sy-vline
WA_P41_P0881_STR-BEGDA sy-vline
WA_P41_P0881_STR-SEQNR sy-vline
WA_P41_P0881_STR-AEDTM sy-vline
WA_P41_P0881_STR-UNAME sy-vline
WA_P41_P0881_STR-HISTO sy-vline
WA_P41_P0881_STR-ITXEX sy-vline
WA_P41_P0881_STR-REFEX sy-vline
WA_P41_P0881_STR-ORDEX sy-vline
WA_P41_P0881_STR-ITBLD sy-vline
WA_P41_P0881_STR-PREAS sy-vline
WA_P41_P0881_STR-FLAG1 sy-vline
WA_P41_P0881_STR-FLAG2 sy-vline
WA_P41_P0881_STR-FLAG3 sy-vline
WA_P41_P0881_STR-FLAG4 sy-vline
WA_P41_P0881_STR-RESE1 sy-vline
WA_P41_P0881_STR-RESE2 sy-vline
WA_P41_P0881_STR-GRPVL sy-vline
WA_P41_P0881_STR-EXPENSETY sy-vline
WA_P41_P0881_STR-SUBTYPE01 sy-vline
WA_P41_P0881_STR-OBJECTID01 sy-vline
WA_P41_P0881_STR-EXPAMTNTS01 sy-vline
WA_P41_P0881_STR-EXPAMTOTHER01 sy-vline
WA_P41_P0881_STR-EXPCURKEY01 sy-vline
WA_P41_P0881_STR-SUBTYPE02 sy-vline
WA_P41_P0881_STR-OBJECTID02 sy-vline
WA_P41_P0881_STR-EXPAMTNTS02 sy-vline
WA_P41_P0881_STR-EXPAMTOTHER02 sy-vline
WA_P41_P0881_STR-EXPCURKEY02 sy-vline
WA_P41_P0881_STR-SUBTYPE03 sy-vline
WA_P41_P0881_STR-OBJECTID03 sy-vline
WA_P41_P0881_STR-EXPAMTNTS03 sy-vline
WA_P41_P0881_STR-EXPAMTOTHER03 sy-vline
WA_P41_P0881_STR-EXPCURKEY03 sy-vline
WA_P41_P0881_STR-SUBTYPE04 sy-vline
WA_P41_P0881_STR-OBJECTID04 sy-vline
WA_P41_P0881_STR-EXPAMTNTS04 sy-vline
WA_P41_P0881_STR-EXPAMTOTHER04 sy-vline
WA_P41_P0881_STR-EXPCURKEY04 sy-vline
WA_P41_P0881_STR-SUBTYPE05 sy-vline
WA_P41_P0881_STR-OBJECTID05 sy-vline
WA_P41_P0881_STR-EXPAMTNTS05 sy-vline
WA_P41_P0881_STR-EXPAMTOTHER05 sy-vline
WA_P41_P0881_STR-EXPCURKEY05 sy-vline
WA_P41_P0881_STR-SUBTYPE06 sy-vline
WA_P41_P0881_STR-OBJECTID06 sy-vline
WA_P41_P0881_STR-EXPAMTNTS06 sy-vline
WA_P41_P0881_STR-EXPAMTOTHER06 sy-vline
WA_P41_P0881_STR-EXPCURKEY06 sy-vline
WA_P41_P0881_STR-SUBTYPE07 sy-vline
WA_P41_P0881_STR-OBJECTID07 sy-vline
WA_P41_P0881_STR-EXPAMTNTS07 sy-vline
WA_P41_P0881_STR-EXPAMTOTHER07 sy-vline
WA_P41_P0881_STR-EXPCURKEY07 sy-vline
WA_P41_P0881_STR-SUBTYPE08 sy-vline
WA_P41_P0881_STR-OBJECTID08 sy-vline
WA_P41_P0881_STR-EXPAMTNTS08 sy-vline
WA_P41_P0881_STR-EXPAMTOTHER08 sy-vline
WA_P41_P0881_STR-EXPCURKEY08 sy-vline
WA_P41_P0881_STR-SUBTYPE09 sy-vline
WA_P41_P0881_STR-OBJECTID09 sy-vline
WA_P41_P0881_STR-EXPAMTNTS09 sy-vline
WA_P41_P0881_STR-EXPAMTOTHER09 sy-vline
WA_P41_P0881_STR-EXPCURKEY09 sy-vline
WA_P41_P0881_STR-HAN01 sy-vline
WA_P41_P0881_STR-ELV01 sy-vline
WA_P41_P0881_STR-HAN02 sy-vline
WA_P41_P0881_STR-ELV02 sy-vline
WA_P41_P0881_STR-HAN03 sy-vline
WA_P41_P0881_STR-ELV03 sy-vline
WA_P41_P0881_STR-HAN04 sy-vline
WA_P41_P0881_STR-ELV04 sy-vline
WA_P41_P0881_STR-HAN05 sy-vline
WA_P41_P0881_STR-ELV05 sy-vline
WA_P41_P0881_STR-HAN06 sy-vline
WA_P41_P0881_STR-ELV06 sy-vline
WA_P41_P0881_STR-HAN07 sy-vline
WA_P41_P0881_STR-ELV07 sy-vline
WA_P41_P0881_STR-HAN08 sy-vline
WA_P41_P0881_STR-ELV08 sy-vline
WA_P41_P0881_STR-HAN09 sy-vline
WA_P41_P0881_STR-ELV09 sy-vline
WA_P41_P0881_STR-HAE01 sy-vline
WA_P41_P0881_STR-HAE02 sy-vline
WA_P41_P0881_STR-HAE03 sy-vline
WA_P41_P0881_STR-HAE04 sy-vline
WA_P41_P0881_STR-HAE05 sy-vline
WA_P41_P0881_STR-HAE06 sy-vline
WA_P41_P0881_STR-HAE07 sy-vline
WA_P41_P0881_STR-HAE08 sy-vline
WA_P41_P0881_STR-HAE09 sy-vline
WA_P41_P0881_STR-CDM01 sy-vline
WA_P41_P0881_STR-CDM02 sy-vline
WA_P41_P0881_STR-CDM03 sy-vline
WA_P41_P0881_STR-CDM04 sy-vline
WA_P41_P0881_STR-CDM05 sy-vline
WA_P41_P0881_STR-CDM06 sy-vline
WA_P41_P0881_STR-CDM07 sy-vline
WA_P41_P0881_STR-CDM08 sy-vline
WA_P41_P0881_STR-CDM09 sy-vline
WA_P41_P0881_STR-PNSTY sy-vline
WA_P41_P0881_STR-INSNM sy-vline
WA_P41_P0881_STR-ACCNO sy-vline
WA_P41_P0881_STR-PREIN sy-vline
WA_P41_P0881_STR-PREBN sy-vline
WA_P41_P0881_STR-FINCO sy-vline
WA_P41_P0881_STR-RCBEG sy-vline
WA_P41_P0881_STR-RCEND sy-vline
WA_P41_P0881_STR-STY01 sy-vline
WA_P41_P0881_STR-STY02 sy-vline
WA_P41_P0881_STR-STY03 sy-vline
WA_P41_P0881_STR-STY04 sy-vline
WA_P41_P0881_STR-STY05 sy-vline
WA_P41_P0881_STR-STY06 sy-vline
WA_P41_P0881_STR-STY07 sy-vline
WA_P41_P0881_STR-STY08 sy-vline
WA_P41_P0881_STR-STY09 sy-vline
WA_P41_P0881_STR-LDNAM sy-vline
WA_P41_P0881_STR-LDREG sy-vline
WA_P41_P0881_STR-INRAT sy-vline
WA_P41_P0881_STR-ADDRE sy-vline
WA_P41_P0881_STR-HOUTY sy-vline
WA_P41_P0881_STR-FLRAR sy-vline
WA_P41_P0881_STR-PRD01 sy-vline
WA_P41_P0881_STR-PRD02 sy-vline
WA_P41_P0881_STR-PRD03 sy-vline
WA_P41_P0881_STR-PRD04 sy-vline
WA_P41_P0881_STR-PRD05 sy-vline
WA_P41_P0881_STR-PRD06 sy-vline
WA_P41_P0881_STR-PRD07 sy-vline
WA_P41_P0881_STR-PRD08 sy-vline
WA_P41_P0881_STR-PRD09 sy-vline
WA_P41_P0881_STR-NODEF sy-vline
WA_P41_P0881_STR-FIXRT sy-vline
WA_P41_P0881_STR-LNPRD sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.