ABAP Select data from SAP table PA0849 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 PA0849 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 PA0849. 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 PA0849 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_PA0849 TYPE STANDARD TABLE OF PA0849,
      WA_PA0849 TYPE PA0849,
      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: <PA0849> TYPE PA0849.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PA0849
*  INTO TABLE @DATA(IT_PA08492).
*--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_PA0849 INDEX 1 INTO DATA(WA_PA08492).


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

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PA0849-ENDDA, sy-vline,
WA_PA0849-BEGDA, sy-vline,
WA_PA0849-SEQNR, sy-vline,
WA_PA0849-AEDTM, sy-vline,
WA_PA0849-UNAME, sy-vline,
WA_PA0849-HISTO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PA0849 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_PA0849 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_PA0849 INTO WA_PA0849. *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_PA0849_STR,
MANDT TYPE STRING,
PERNR 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,
PYBDT TYPE STRING,
PYEDT TYPE STRING,
PYTIM TYPE STRING,
PYDAT TYPE STRING,
PYATO TYPE STRING,
PYATM TYPE STRING,
PYADT TYPE STRING,
PYWIT TYPE STRING,
PYMAN TYPE STRING,
PYSEQ TYPE STRING,
PYTAX TYPE STRING,
PYGRO TYPE STRING,
PYLSA TYPE STRING,
PYLSB TYPE STRING,
PYLSD TYPE STRING,
PYLSE TYPE STRING,
PYTAL TYPE STRING,
PYFBT TYPE STRING,
PYCDP TYPE STRING,
PYOTI TYPE STRING,
PYTUF TYPE STRING,
PYABN TYPE STRING,
PYABR TYPE STRING,
PYUFW TYPE STRING,
PYTNA TYPE STRING,
PYWPG TYPE STRING,
PYUNI TYPE STRING,
PYTWG TYPE STRING,
PYLDT TYPE STRING,
PYLTM TYPE STRING,
PYNUM TYPE STRING,
WAERS TYPE STRING,
PYW01 TYPE STRING,
PYA01 TYPE STRING,
PYW02 TYPE STRING,
PYA02 TYPE STRING,
PYW03 TYPE STRING,
PYA03 TYPE STRING,
PYW04 TYPE STRING,
PYA04 TYPE STRING,
PYW05 TYPE STRING,
PYA05 TYPE STRING,
PYW06 TYPE STRING,
PYA06 TYPE STRING,
PYW07 TYPE STRING,
PYA07 TYPE STRING,
PYW08 TYPE STRING,
PYA08 TYPE STRING,
PYW09 TYPE STRING,
PYA09 TYPE STRING,
PYW10 TYPE STRING,
PYA10 TYPE STRING,
PYW11 TYPE STRING,
PYA11 TYPE STRING,
PYW12 TYPE STRING,
PYA12 TYPE STRING,
PYW13 TYPE STRING,
PYA13 TYPE STRING,
PYW14 TYPE STRING,
PYA14 TYPE STRING,
PYW15 TYPE STRING,
PYA15 TYPE STRING,
PYW16 TYPE STRING,
PYA16 TYPE STRING,
PYW17 TYPE STRING,
PYA17 TYPE STRING,
PYW18 TYPE STRING,
PYA18 TYPE STRING,
PYW19 TYPE STRING,
PYA19 TYPE STRING,
PUW01 TYPE STRING,
PUA01 TYPE STRING,
PUW02 TYPE STRING,
PUA02 TYPE STRING,
PUW03 TYPE STRING,
PUA03 TYPE STRING,
PUW04 TYPE STRING,
PUA04 TYPE STRING,
PUW05 TYPE STRING,
PUA05 TYPE STRING,
PUW06 TYPE STRING,
PUA06 TYPE STRING,
PUW07 TYPE STRING,
PUA07 TYPE STRING,
PUW08 TYPE STRING,
PUA08 TYPE STRING,
PUW09 TYPE STRING,
PUA09 TYPE STRING,
PUW10 TYPE STRING,
PUA10 TYPE STRING,
PUW11 TYPE STRING,
PUA11 TYPE STRING,
PUW12 TYPE STRING,
PUA12 TYPE STRING,
PUW13 TYPE STRING,
PUA13 TYPE STRING,
PUW14 TYPE STRING,
PUA14 TYPE STRING,
PUW15 TYPE STRING,
PUA15 TYPE STRING,
PUW16 TYPE STRING,
PUA16 TYPE STRING,
PUW17 TYPE STRING,
PUA17 TYPE STRING,
PUW18 TYPE STRING,
PUA18 TYPE STRING,
PUW19 TYPE STRING,
PUA19 TYPE STRING,
PYAMD TYPE STRING,
PYSUP TYPE STRING,
PYFET TYPE STRING,
PYLAT TYPE STRING,
PYDPA TYPE STRING,
PYFBE TYPE STRING,
PYINT TYPE STRING,END OF T_EKKO_STR. DATA: WA_PA0849_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_PA0849_STR-MANDT sy-vline
WA_PA0849_STR-PERNR sy-vline
WA_PA0849_STR-SUBTY sy-vline
WA_PA0849_STR-OBJPS sy-vline
WA_PA0849_STR-SPRPS sy-vline
WA_PA0849_STR-ENDDA sy-vline
WA_PA0849_STR-BEGDA sy-vline
WA_PA0849_STR-SEQNR sy-vline
WA_PA0849_STR-AEDTM sy-vline
WA_PA0849_STR-UNAME sy-vline
WA_PA0849_STR-HISTO sy-vline
WA_PA0849_STR-ITXEX sy-vline
WA_PA0849_STR-REFEX sy-vline
WA_PA0849_STR-ORDEX sy-vline
WA_PA0849_STR-ITBLD sy-vline
WA_PA0849_STR-PREAS sy-vline
WA_PA0849_STR-FLAG1 sy-vline
WA_PA0849_STR-FLAG2 sy-vline
WA_PA0849_STR-FLAG3 sy-vline
WA_PA0849_STR-FLAG4 sy-vline
WA_PA0849_STR-RESE1 sy-vline
WA_PA0849_STR-RESE2 sy-vline
WA_PA0849_STR-GRPVL sy-vline
WA_PA0849_STR-PYBDT sy-vline
WA_PA0849_STR-PYEDT sy-vline
WA_PA0849_STR-PYTIM sy-vline
WA_PA0849_STR-PYDAT sy-vline
WA_PA0849_STR-PYATO sy-vline
WA_PA0849_STR-PYATM sy-vline
WA_PA0849_STR-PYADT sy-vline
WA_PA0849_STR-PYWIT sy-vline
WA_PA0849_STR-PYMAN sy-vline
WA_PA0849_STR-PYSEQ sy-vline
WA_PA0849_STR-PYTAX sy-vline
WA_PA0849_STR-PYGRO sy-vline
WA_PA0849_STR-PYLSA sy-vline
WA_PA0849_STR-PYLSB sy-vline
WA_PA0849_STR-PYLSD sy-vline
WA_PA0849_STR-PYLSE sy-vline
WA_PA0849_STR-PYTAL sy-vline
WA_PA0849_STR-PYFBT sy-vline
WA_PA0849_STR-PYCDP sy-vline
WA_PA0849_STR-PYOTI sy-vline
WA_PA0849_STR-PYTUF sy-vline
WA_PA0849_STR-PYABN sy-vline
WA_PA0849_STR-PYABR sy-vline
WA_PA0849_STR-PYUFW sy-vline
WA_PA0849_STR-PYTNA sy-vline
WA_PA0849_STR-PYWPG sy-vline
WA_PA0849_STR-PYUNI sy-vline
WA_PA0849_STR-PYTWG sy-vline
WA_PA0849_STR-PYLDT sy-vline
WA_PA0849_STR-PYLTM sy-vline
WA_PA0849_STR-PYNUM sy-vline
WA_PA0849_STR-WAERS sy-vline
WA_PA0849_STR-PYW01 sy-vline
WA_PA0849_STR-PYA01 sy-vline
WA_PA0849_STR-PYW02 sy-vline
WA_PA0849_STR-PYA02 sy-vline
WA_PA0849_STR-PYW03 sy-vline
WA_PA0849_STR-PYA03 sy-vline
WA_PA0849_STR-PYW04 sy-vline
WA_PA0849_STR-PYA04 sy-vline
WA_PA0849_STR-PYW05 sy-vline
WA_PA0849_STR-PYA05 sy-vline
WA_PA0849_STR-PYW06 sy-vline
WA_PA0849_STR-PYA06 sy-vline
WA_PA0849_STR-PYW07 sy-vline
WA_PA0849_STR-PYA07 sy-vline
WA_PA0849_STR-PYW08 sy-vline
WA_PA0849_STR-PYA08 sy-vline
WA_PA0849_STR-PYW09 sy-vline
WA_PA0849_STR-PYA09 sy-vline
WA_PA0849_STR-PYW10 sy-vline
WA_PA0849_STR-PYA10 sy-vline
WA_PA0849_STR-PYW11 sy-vline
WA_PA0849_STR-PYA11 sy-vline
WA_PA0849_STR-PYW12 sy-vline
WA_PA0849_STR-PYA12 sy-vline
WA_PA0849_STR-PYW13 sy-vline
WA_PA0849_STR-PYA13 sy-vline
WA_PA0849_STR-PYW14 sy-vline
WA_PA0849_STR-PYA14 sy-vline
WA_PA0849_STR-PYW15 sy-vline
WA_PA0849_STR-PYA15 sy-vline
WA_PA0849_STR-PYW16 sy-vline
WA_PA0849_STR-PYA16 sy-vline
WA_PA0849_STR-PYW17 sy-vline
WA_PA0849_STR-PYA17 sy-vline
WA_PA0849_STR-PYW18 sy-vline
WA_PA0849_STR-PYA18 sy-vline
WA_PA0849_STR-PYW19 sy-vline
WA_PA0849_STR-PYA19 sy-vline
WA_PA0849_STR-PUW01 sy-vline
WA_PA0849_STR-PUA01 sy-vline
WA_PA0849_STR-PUW02 sy-vline
WA_PA0849_STR-PUA02 sy-vline
WA_PA0849_STR-PUW03 sy-vline
WA_PA0849_STR-PUA03 sy-vline
WA_PA0849_STR-PUW04 sy-vline
WA_PA0849_STR-PUA04 sy-vline
WA_PA0849_STR-PUW05 sy-vline
WA_PA0849_STR-PUA05 sy-vline
WA_PA0849_STR-PUW06 sy-vline
WA_PA0849_STR-PUA06 sy-vline
WA_PA0849_STR-PUW07 sy-vline
WA_PA0849_STR-PUA07 sy-vline
WA_PA0849_STR-PUW08 sy-vline
WA_PA0849_STR-PUA08 sy-vline
WA_PA0849_STR-PUW09 sy-vline
WA_PA0849_STR-PUA09 sy-vline
WA_PA0849_STR-PUW10 sy-vline
WA_PA0849_STR-PUA10 sy-vline
WA_PA0849_STR-PUW11 sy-vline
WA_PA0849_STR-PUA11 sy-vline
WA_PA0849_STR-PUW12 sy-vline
WA_PA0849_STR-PUA12 sy-vline
WA_PA0849_STR-PUW13 sy-vline
WA_PA0849_STR-PUA13 sy-vline
WA_PA0849_STR-PUW14 sy-vline
WA_PA0849_STR-PUA14 sy-vline
WA_PA0849_STR-PUW15 sy-vline
WA_PA0849_STR-PUA15 sy-vline
WA_PA0849_STR-PUW16 sy-vline
WA_PA0849_STR-PUA16 sy-vline
WA_PA0849_STR-PUW17 sy-vline
WA_PA0849_STR-PUA17 sy-vline
WA_PA0849_STR-PUW18 sy-vline
WA_PA0849_STR-PUA18 sy-vline
WA_PA0849_STR-PUW19 sy-vline
WA_PA0849_STR-PUA19 sy-vline
WA_PA0849_STR-PYAMD sy-vline
WA_PA0849_STR-PYSUP sy-vline
WA_PA0849_STR-PYFET sy-vline
WA_PA0849_STR-PYLAT sy-vline
WA_PA0849_STR-PYDPA sy-vline
WA_PA0849_STR-PYFBE sy-vline
WA_PA0849_STR-PYINT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.