ABAP Select data from SAP table PA3273 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 PA3273 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 PA3273. 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 PA3273 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_PA3273 TYPE STANDARD TABLE OF PA3273,
      WA_PA3273 TYPE PA3273,
      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: <PA3273> TYPE PA3273.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PA3273
*  INTO TABLE @DATA(IT_PA32732).
*--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_PA3273 INDEX 1 INTO DATA(WA_PA32732).


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

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

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

*Conversion exit GJAHR, internal->external for field BASY2 CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_PA3273-BASY2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PA3273-BASY2.
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_PA3273_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,
BASY1 TYPE STRING,
BASY2 TYPE STRING,
NOMER TYPE STRING,
DATBG TYPE STRING,
APPTP TYPE STRING,
DOCDT TYPE STRING,
ADDRD TYPE STRING,
ADDRS TYPE STRING,
ADDRO TYPE STRING,
ADDRN TYPE STRING,
OWNFL TYPE STRING,
PAYTP TYPE STRING,
DT021 TYPE STRING,
SUB21 TYPE STRING,
OBJ21 TYPE STRING,
SEQ21 TYPE STRING,
BNKDT TYPE STRING,
BNKIS TYPE STRING,
BNKIO TYPE STRING,
BNKIN TYPE STRING,
POSTD TYPE STRING,
POSTS TYPE STRING,
POSTO TYPE STRING,
POSTN TYPE STRING,
LNCOD TYPE STRING,
BATFL TYPE STRING,
BATNO TYPE STRING,
PAYTY TYPE STRING,
PAYID TYPE STRING,
BONDT TYPE STRING,
OCRSN TYPE STRING,
TBCRT TYPE STRING,
TCDOC TYPE STRING,
DOCN1 TYPE STRING,
DOCD1 TYPE STRING,
DOCN2 TYPE STRING,
DOCD2 TYPE STRING,
DOCN3 TYPE STRING,
DOCD3 TYPE STRING,
DOCN4 TYPE STRING,
DOCD4 TYPE STRING,
DT298 TYPE STRING,
SU298 TYPE STRING,
OB298 TYPE STRING,
NR298 TYPE STRING,
LFCFL TYPE STRING,
LVCND TYPE STRING,
BD290 TYPE STRING,
SU290 TYPE STRING,
OB290 TYPE STRING,
NR290 TYPE STRING,
RSPDT TYPE STRING,
RFSDT TYPE STRING,
CHLDT TYPE STRING,
CHLSB TYPE STRING,
CHLOB TYPE STRING,
CHLNR TYPE STRING,
RCRSN TYPE STRING,
LGART TYPE STRING,
BETRG TYPE STRING,
WAERS TYPE STRING,
SUB105 TYPE STRING,
OBJ105 TYPE STRING,
SEQ105 TYPE STRING,
BEG105 TYPE STRING,
END105 TYPE STRING,
PCENDDA TYPE STRING,
TREASON TYPE STRING,
TDT298 TYPE STRING,
TSU298 TYPE STRING,
TOB298 TYPE STRING,
TNR298 TYPE STRING,END OF T_EKKO_STR. DATA: WA_PA3273_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_PA3273_STR-MANDT sy-vline
WA_PA3273_STR-PERNR sy-vline
WA_PA3273_STR-SUBTY sy-vline
WA_PA3273_STR-OBJPS sy-vline
WA_PA3273_STR-SPRPS sy-vline
WA_PA3273_STR-ENDDA sy-vline
WA_PA3273_STR-BEGDA sy-vline
WA_PA3273_STR-SEQNR sy-vline
WA_PA3273_STR-AEDTM sy-vline
WA_PA3273_STR-UNAME sy-vline
WA_PA3273_STR-HISTO sy-vline
WA_PA3273_STR-ITXEX sy-vline
WA_PA3273_STR-REFEX sy-vline
WA_PA3273_STR-ORDEX sy-vline
WA_PA3273_STR-ITBLD sy-vline
WA_PA3273_STR-PREAS sy-vline
WA_PA3273_STR-FLAG1 sy-vline
WA_PA3273_STR-FLAG2 sy-vline
WA_PA3273_STR-FLAG3 sy-vline
WA_PA3273_STR-FLAG4 sy-vline
WA_PA3273_STR-RESE1 sy-vline
WA_PA3273_STR-RESE2 sy-vline
WA_PA3273_STR-GRPVL sy-vline
WA_PA3273_STR-BASY1 sy-vline
WA_PA3273_STR-BASY2 sy-vline
WA_PA3273_STR-NOMER sy-vline
WA_PA3273_STR-DATBG sy-vline
WA_PA3273_STR-APPTP sy-vline
WA_PA3273_STR-DOCDT sy-vline
WA_PA3273_STR-ADDRD sy-vline
WA_PA3273_STR-ADDRS sy-vline
WA_PA3273_STR-ADDRO sy-vline
WA_PA3273_STR-ADDRN sy-vline
WA_PA3273_STR-OWNFL sy-vline
WA_PA3273_STR-PAYTP sy-vline
WA_PA3273_STR-DT021 sy-vline
WA_PA3273_STR-SUB21 sy-vline
WA_PA3273_STR-OBJ21 sy-vline
WA_PA3273_STR-SEQ21 sy-vline
WA_PA3273_STR-BNKDT sy-vline
WA_PA3273_STR-BNKIS sy-vline
WA_PA3273_STR-BNKIO sy-vline
WA_PA3273_STR-BNKIN sy-vline
WA_PA3273_STR-POSTD sy-vline
WA_PA3273_STR-POSTS sy-vline
WA_PA3273_STR-POSTO sy-vline
WA_PA3273_STR-POSTN sy-vline
WA_PA3273_STR-LNCOD sy-vline
WA_PA3273_STR-BATFL sy-vline
WA_PA3273_STR-BATNO sy-vline
WA_PA3273_STR-PAYTY sy-vline
WA_PA3273_STR-PAYID sy-vline
WA_PA3273_STR-BONDT sy-vline
WA_PA3273_STR-OCRSN sy-vline
WA_PA3273_STR-TBCRT sy-vline
WA_PA3273_STR-TCDOC sy-vline
WA_PA3273_STR-DOCN1 sy-vline
WA_PA3273_STR-DOCD1 sy-vline
WA_PA3273_STR-DOCN2 sy-vline
WA_PA3273_STR-DOCD2 sy-vline
WA_PA3273_STR-DOCN3 sy-vline
WA_PA3273_STR-DOCD3 sy-vline
WA_PA3273_STR-DOCN4 sy-vline
WA_PA3273_STR-DOCD4 sy-vline
WA_PA3273_STR-DT298 sy-vline
WA_PA3273_STR-SU298 sy-vline
WA_PA3273_STR-OB298 sy-vline
WA_PA3273_STR-NR298 sy-vline
WA_PA3273_STR-LFCFL sy-vline
WA_PA3273_STR-LVCND sy-vline
WA_PA3273_STR-BD290 sy-vline
WA_PA3273_STR-SU290 sy-vline
WA_PA3273_STR-OB290 sy-vline
WA_PA3273_STR-NR290 sy-vline
WA_PA3273_STR-RSPDT sy-vline
WA_PA3273_STR-RFSDT sy-vline
WA_PA3273_STR-CHLDT sy-vline
WA_PA3273_STR-CHLSB sy-vline
WA_PA3273_STR-CHLOB sy-vline
WA_PA3273_STR-CHLNR sy-vline
WA_PA3273_STR-RCRSN sy-vline
WA_PA3273_STR-LGART sy-vline
WA_PA3273_STR-BETRG sy-vline
WA_PA3273_STR-WAERS sy-vline
WA_PA3273_STR-SUB105 sy-vline
WA_PA3273_STR-OBJ105 sy-vline
WA_PA3273_STR-SEQ105 sy-vline
WA_PA3273_STR-BEG105 sy-vline
WA_PA3273_STR-END105 sy-vline
WA_PA3273_STR-PCENDDA sy-vline
WA_PA3273_STR-TREASON sy-vline
WA_PA3273_STR-TDT298 sy-vline
WA_PA3273_STR-TSU298 sy-vline
WA_PA3273_STR-TOB298 sy-vline
WA_PA3273_STR-TNR298 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.