ABAP Select data from SAP table PA0697 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 PA0697 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 PA0697. 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 PA0697 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_PA0697 TYPE STANDARD TABLE OF PA0697,
      WA_PA0697 TYPE PA0697,
      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: <PA0697> TYPE PA0697.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PA0697
*  INTO TABLE @DATA(IT_PA06972).
*--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_PA0697 INDEX 1 INTO DATA(WA_PA06972).


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

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PA0697-ENDDA, sy-vline,
WA_PA0697-BEGDA, sy-vline,
WA_PA0697-SEQNR, sy-vline,
WA_PA0697-AEDTM, sy-vline,
WA_PA0697-UNAME, sy-vline,
WA_PA0697-HISTO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PA0697 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_PA0697 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_PA0697 INTO WA_PA0697. *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 ALPHA, internal->external for field EADDR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PA0697-EADDR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PA0697-EADDR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field OADDR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PA0697-OADDR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PA0697-OADDR.
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_PA0697_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,
TESTY TYPE STRING,
TESDT TYPE STRING,
TESRN TYPE STRING,
TRESU TYPE STRING,
SANUM TYPE STRING,
TEXEC TYPE STRING,
TOBSE TYPE STRING,
TSITE TYPE STRING,
TMEDA TYPE STRING,
TMEDB TYPE STRING,
STA01 TYPE STRING,
RSA01 TYPE STRING,
ATA01 TYPE STRING,
UTA01 TYPE STRING,
STA02 TYPE STRING,
RSA02 TYPE STRING,
ATA02 TYPE STRING,
UTA02 TYPE STRING,
STA03 TYPE STRING,
RSA03 TYPE STRING,
ATA03 TYPE STRING,
UTA03 TYPE STRING,
STA04 TYPE STRING,
RSA04 TYPE STRING,
ATA04 TYPE STRING,
UTA04 TYPE STRING,
STA05 TYPE STRING,
RSA05 TYPE STRING,
ATA05 TYPE STRING,
UTA05 TYPE STRING,
STA06 TYPE STRING,
RSA06 TYPE STRING,
ATA06 TYPE STRING,
UTA06 TYPE STRING,
STA07 TYPE STRING,
RSA07 TYPE STRING,
ATA07 TYPE STRING,
UTA07 TYPE STRING,
STA08 TYPE STRING,
RSA08 TYPE STRING,
ATA08 TYPE STRING,
UTA08 TYPE STRING,
STA09 TYPE STRING,
RSA09 TYPE STRING,
ATA09 TYPE STRING,
UTA09 TYPE STRING,
STA10 TYPE STRING,
RSA10 TYPE STRING,
ATA10 TYPE STRING,
UTA10 TYPE STRING,
STB01 TYPE STRING,
RSB01 TYPE STRING,
ATB01 TYPE STRING,
UTB01 TYPE STRING,
STB02 TYPE STRING,
RSB02 TYPE STRING,
ATB02 TYPE STRING,
UTB02 TYPE STRING,
STB03 TYPE STRING,
RSB03 TYPE STRING,
ATB03 TYPE STRING,
UTB03 TYPE STRING,
STB04 TYPE STRING,
RSB04 TYPE STRING,
ATB04 TYPE STRING,
UTB04 TYPE STRING,
STB05 TYPE STRING,
RSB05 TYPE STRING,
ATB05 TYPE STRING,
UTB05 TYPE STRING,
STB06 TYPE STRING,
RSB06 TYPE STRING,
ATB06 TYPE STRING,
UTB06 TYPE STRING,
STB07 TYPE STRING,
RSB07 TYPE STRING,
ATB07 TYPE STRING,
UTB07 TYPE STRING,
STB08 TYPE STRING,
RSB08 TYPE STRING,
ATB08 TYPE STRING,
UTB08 TYPE STRING,
STB09 TYPE STRING,
RSB09 TYPE STRING,
ATB09 TYPE STRING,
UTB09 TYPE STRING,
STB10 TYPE STRING,
RSB10 TYPE STRING,
ATB10 TYPE STRING,
UTB10 TYPE STRING,
EADDR TYPE STRING,
OADDR TYPE STRING,END OF T_EKKO_STR. DATA: WA_PA0697_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_PA0697_STR-MANDT sy-vline
WA_PA0697_STR-PERNR sy-vline
WA_PA0697_STR-SUBTY sy-vline
WA_PA0697_STR-OBJPS sy-vline
WA_PA0697_STR-SPRPS sy-vline
WA_PA0697_STR-ENDDA sy-vline
WA_PA0697_STR-BEGDA sy-vline
WA_PA0697_STR-SEQNR sy-vline
WA_PA0697_STR-AEDTM sy-vline
WA_PA0697_STR-UNAME sy-vline
WA_PA0697_STR-HISTO sy-vline
WA_PA0697_STR-ITXEX sy-vline
WA_PA0697_STR-REFEX sy-vline
WA_PA0697_STR-ORDEX sy-vline
WA_PA0697_STR-ITBLD sy-vline
WA_PA0697_STR-PREAS sy-vline
WA_PA0697_STR-FLAG1 sy-vline
WA_PA0697_STR-FLAG2 sy-vline
WA_PA0697_STR-FLAG3 sy-vline
WA_PA0697_STR-FLAG4 sy-vline
WA_PA0697_STR-RESE1 sy-vline
WA_PA0697_STR-RESE2 sy-vline
WA_PA0697_STR-GRPVL sy-vline
WA_PA0697_STR-TESTY sy-vline
WA_PA0697_STR-TESDT sy-vline
WA_PA0697_STR-TESRN sy-vline
WA_PA0697_STR-TRESU sy-vline
WA_PA0697_STR-SANUM sy-vline
WA_PA0697_STR-TEXEC sy-vline
WA_PA0697_STR-TOBSE sy-vline
WA_PA0697_STR-TSITE sy-vline
WA_PA0697_STR-TMEDA sy-vline
WA_PA0697_STR-TMEDB sy-vline
WA_PA0697_STR-STA01 sy-vline
WA_PA0697_STR-RSA01 sy-vline
WA_PA0697_STR-ATA01 sy-vline
WA_PA0697_STR-UTA01 sy-vline
WA_PA0697_STR-STA02 sy-vline
WA_PA0697_STR-RSA02 sy-vline
WA_PA0697_STR-ATA02 sy-vline
WA_PA0697_STR-UTA02 sy-vline
WA_PA0697_STR-STA03 sy-vline
WA_PA0697_STR-RSA03 sy-vline
WA_PA0697_STR-ATA03 sy-vline
WA_PA0697_STR-UTA03 sy-vline
WA_PA0697_STR-STA04 sy-vline
WA_PA0697_STR-RSA04 sy-vline
WA_PA0697_STR-ATA04 sy-vline
WA_PA0697_STR-UTA04 sy-vline
WA_PA0697_STR-STA05 sy-vline
WA_PA0697_STR-RSA05 sy-vline
WA_PA0697_STR-ATA05 sy-vline
WA_PA0697_STR-UTA05 sy-vline
WA_PA0697_STR-STA06 sy-vline
WA_PA0697_STR-RSA06 sy-vline
WA_PA0697_STR-ATA06 sy-vline
WA_PA0697_STR-UTA06 sy-vline
WA_PA0697_STR-STA07 sy-vline
WA_PA0697_STR-RSA07 sy-vline
WA_PA0697_STR-ATA07 sy-vline
WA_PA0697_STR-UTA07 sy-vline
WA_PA0697_STR-STA08 sy-vline
WA_PA0697_STR-RSA08 sy-vline
WA_PA0697_STR-ATA08 sy-vline
WA_PA0697_STR-UTA08 sy-vline
WA_PA0697_STR-STA09 sy-vline
WA_PA0697_STR-RSA09 sy-vline
WA_PA0697_STR-ATA09 sy-vline
WA_PA0697_STR-UTA09 sy-vline
WA_PA0697_STR-STA10 sy-vline
WA_PA0697_STR-RSA10 sy-vline
WA_PA0697_STR-ATA10 sy-vline
WA_PA0697_STR-UTA10 sy-vline
WA_PA0697_STR-STB01 sy-vline
WA_PA0697_STR-RSB01 sy-vline
WA_PA0697_STR-ATB01 sy-vline
WA_PA0697_STR-UTB01 sy-vline
WA_PA0697_STR-STB02 sy-vline
WA_PA0697_STR-RSB02 sy-vline
WA_PA0697_STR-ATB02 sy-vline
WA_PA0697_STR-UTB02 sy-vline
WA_PA0697_STR-STB03 sy-vline
WA_PA0697_STR-RSB03 sy-vline
WA_PA0697_STR-ATB03 sy-vline
WA_PA0697_STR-UTB03 sy-vline
WA_PA0697_STR-STB04 sy-vline
WA_PA0697_STR-RSB04 sy-vline
WA_PA0697_STR-ATB04 sy-vline
WA_PA0697_STR-UTB04 sy-vline
WA_PA0697_STR-STB05 sy-vline
WA_PA0697_STR-RSB05 sy-vline
WA_PA0697_STR-ATB05 sy-vline
WA_PA0697_STR-UTB05 sy-vline
WA_PA0697_STR-STB06 sy-vline
WA_PA0697_STR-RSB06 sy-vline
WA_PA0697_STR-ATB06 sy-vline
WA_PA0697_STR-UTB06 sy-vline
WA_PA0697_STR-STB07 sy-vline
WA_PA0697_STR-RSB07 sy-vline
WA_PA0697_STR-ATB07 sy-vline
WA_PA0697_STR-UTB07 sy-vline
WA_PA0697_STR-STB08 sy-vline
WA_PA0697_STR-RSB08 sy-vline
WA_PA0697_STR-ATB08 sy-vline
WA_PA0697_STR-UTB08 sy-vline
WA_PA0697_STR-STB09 sy-vline
WA_PA0697_STR-RSB09 sy-vline
WA_PA0697_STR-ATB09 sy-vline
WA_PA0697_STR-UTB09 sy-vline
WA_PA0697_STR-STB10 sy-vline
WA_PA0697_STR-RSB10 sy-vline
WA_PA0697_STR-ATB10 sy-vline
WA_PA0697_STR-UTB10 sy-vline
WA_PA0697_STR-EADDR sy-vline
WA_PA0697_STR-OADDR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.