ABAP Select data from SAP table PA0831 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 PA0831 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 PA0831. 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 PA0831 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_PA0831 TYPE STANDARD TABLE OF PA0831,
      WA_PA0831 TYPE PA0831,
      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: <PA0831> TYPE PA0831.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PA0831
*  INTO TABLE @DATA(IT_PA08312).
*--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_PA0831 INDEX 1 INTO DATA(WA_PA08312).


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

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PA0831-ENDDA, sy-vline,
WA_PA0831-BEGDA, sy-vline,
WA_PA0831-SEQNR, sy-vline,
WA_PA0831-AEDTM, sy-vline,
WA_PA0831-UNAME, sy-vline,
WA_PA0831-HISTO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PA0831 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_PA0831 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_PA0831 INTO WA_PA0831. *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 ENTIT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PA0831-ENTIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PA0831-ENTIT.
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_PA0831_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,
ENTIT TYPE STRING,
BRANC TYPE STRING,
DATAF TYPE STRING,
GJTAA TYPE STRING,
GJTDA TYPE STRING,
MOTAA TYPE STRING,
MOTDA TYPE STRING,
ACCAF TYPE STRING,
CONSE TYPE STRING,
PEEMP TYPE STRING,
PECOM TYPE STRING,
BTEMP TYPE STRING,
EMPCU TYPE STRING,
BTCOM TYPE STRING,
COMCU TYPE STRING,
BTUPC TYPE STRING,
UPCCU TYPE STRING,
CENTR TYPE STRING,
MODEL TYPE STRING,
FAM01 TYPE STRING,
FAM02 TYPE STRING,
FAM03 TYPE STRING,
FAM04 TYPE STRING,
FAM05 TYPE STRING,
FAM06 TYPE STRING,
FAM07 TYPE STRING,
FAM08 TYPE STRING,
FAM09 TYPE STRING,
FAM10 TYPE STRING,
FAM11 TYPE STRING,
FAM12 TYPE STRING,
FAI01 TYPE STRING,
FAI02 TYPE STRING,
FAI03 TYPE STRING,
FAI04 TYPE STRING,
FAI05 TYPE STRING,
FAI06 TYPE STRING,
FAI07 TYPE STRING,
FAI08 TYPE STRING,
FAI09 TYPE STRING,
FAI10 TYPE STRING,
FAI11 TYPE STRING,
FAI12 TYPE STRING,
DAF01 TYPE STRING,
DAF02 TYPE STRING,
DAF03 TYPE STRING,
DAF04 TYPE STRING,
DAF05 TYPE STRING,
DAF06 TYPE STRING,
DAF07 TYPE STRING,
DAF08 TYPE STRING,
DAF09 TYPE STRING,
DAF10 TYPE STRING,
DAF11 TYPE STRING,
DAF12 TYPE STRING,
CHE01 TYPE STRING,
CHE02 TYPE STRING,
CHE03 TYPE STRING,
CHE04 TYPE STRING,
CHE05 TYPE STRING,
CHE06 TYPE STRING,
CHE07 TYPE STRING,
CHE08 TYPE STRING,
CHE09 TYPE STRING,
CHE10 TYPE STRING,
CHE11 TYPE STRING,
CHE12 TYPE STRING,
PAYIN TYPE STRING,
PAYTY TYPE STRING,
PAYID TYPE STRING,
BONDT TYPE STRING,
OCRSN TYPE STRING,
TYPCO TYPE STRING,
SUBCO TYPE STRING,
ENOAC TYPE STRING,
COREX TYPE STRING,
TCO01 TYPE STRING,
TCO02 TYPE STRING,
TCO03 TYPE STRING,
TCO04 TYPE STRING,
TCO05 TYPE STRING,
TCO06 TYPE STRING,
TCO07 TYPE STRING,
TCO08 TYPE STRING,
TCO09 TYPE STRING,
TCO10 TYPE STRING,
TCO11 TYPE STRING,
TCO12 TYPE STRING,
IDT01 TYPE STRING,
IDT02 TYPE STRING,
IDT03 TYPE STRING,
IDT04 TYPE STRING,
IDT05 TYPE STRING,
IDT06 TYPE STRING,
IDT07 TYPE STRING,
IDT08 TYPE STRING,
IDT09 TYPE STRING,
IDT10 TYPE STRING,
IDT11 TYPE STRING,
IDT12 TYPE STRING,
IDN01 TYPE STRING,
IDN02 TYPE STRING,
IDN03 TYPE STRING,
IDN04 TYPE STRING,
IDN05 TYPE STRING,
IDN06 TYPE STRING,
IDN07 TYPE STRING,
IDN08 TYPE STRING,
IDN09 TYPE STRING,
IDN10 TYPE STRING,
IDN11 TYPE STRING,
IDN12 TYPE STRING,
UPC01 TYPE STRING,
UPC02 TYPE STRING,
UPC03 TYPE STRING,
UPC04 TYPE STRING,
UPC05 TYPE STRING,
UPC06 TYPE STRING,
UPC07 TYPE STRING,
UPC08 TYPE STRING,
UPC09 TYPE STRING,
UPC10 TYPE STRING,
UPC11 TYPE STRING,
UPC12 TYPE STRING,
REAFP TYPE STRING,
AFILIA_NUMBER TYPE STRING,END OF T_EKKO_STR. DATA: WA_PA0831_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_PA0831_STR-MANDT sy-vline
WA_PA0831_STR-PERNR sy-vline
WA_PA0831_STR-SUBTY sy-vline
WA_PA0831_STR-OBJPS sy-vline
WA_PA0831_STR-SPRPS sy-vline
WA_PA0831_STR-ENDDA sy-vline
WA_PA0831_STR-BEGDA sy-vline
WA_PA0831_STR-SEQNR sy-vline
WA_PA0831_STR-AEDTM sy-vline
WA_PA0831_STR-UNAME sy-vline
WA_PA0831_STR-HISTO sy-vline
WA_PA0831_STR-ITXEX sy-vline
WA_PA0831_STR-REFEX sy-vline
WA_PA0831_STR-ORDEX sy-vline
WA_PA0831_STR-ITBLD sy-vline
WA_PA0831_STR-PREAS sy-vline
WA_PA0831_STR-FLAG1 sy-vline
WA_PA0831_STR-FLAG2 sy-vline
WA_PA0831_STR-FLAG3 sy-vline
WA_PA0831_STR-FLAG4 sy-vline
WA_PA0831_STR-RESE1 sy-vline
WA_PA0831_STR-RESE2 sy-vline
WA_PA0831_STR-GRPVL sy-vline
WA_PA0831_STR-ENTIT sy-vline
WA_PA0831_STR-BRANC sy-vline
WA_PA0831_STR-DATAF sy-vline
WA_PA0831_STR-GJTAA sy-vline
WA_PA0831_STR-GJTDA sy-vline
WA_PA0831_STR-MOTAA sy-vline
WA_PA0831_STR-MOTDA sy-vline
WA_PA0831_STR-ACCAF sy-vline
WA_PA0831_STR-CONSE sy-vline
WA_PA0831_STR-PEEMP sy-vline
WA_PA0831_STR-PECOM sy-vline
WA_PA0831_STR-BTEMP sy-vline
WA_PA0831_STR-EMPCU sy-vline
WA_PA0831_STR-BTCOM sy-vline
WA_PA0831_STR-COMCU sy-vline
WA_PA0831_STR-BTUPC sy-vline
WA_PA0831_STR-UPCCU sy-vline
WA_PA0831_STR-CENTR sy-vline
WA_PA0831_STR-MODEL sy-vline
WA_PA0831_STR-FAM01 sy-vline
WA_PA0831_STR-FAM02 sy-vline
WA_PA0831_STR-FAM03 sy-vline
WA_PA0831_STR-FAM04 sy-vline
WA_PA0831_STR-FAM05 sy-vline
WA_PA0831_STR-FAM06 sy-vline
WA_PA0831_STR-FAM07 sy-vline
WA_PA0831_STR-FAM08 sy-vline
WA_PA0831_STR-FAM09 sy-vline
WA_PA0831_STR-FAM10 sy-vline
WA_PA0831_STR-FAM11 sy-vline
WA_PA0831_STR-FAM12 sy-vline
WA_PA0831_STR-FAI01 sy-vline
WA_PA0831_STR-FAI02 sy-vline
WA_PA0831_STR-FAI03 sy-vline
WA_PA0831_STR-FAI04 sy-vline
WA_PA0831_STR-FAI05 sy-vline
WA_PA0831_STR-FAI06 sy-vline
WA_PA0831_STR-FAI07 sy-vline
WA_PA0831_STR-FAI08 sy-vline
WA_PA0831_STR-FAI09 sy-vline
WA_PA0831_STR-FAI10 sy-vline
WA_PA0831_STR-FAI11 sy-vline
WA_PA0831_STR-FAI12 sy-vline
WA_PA0831_STR-DAF01 sy-vline
WA_PA0831_STR-DAF02 sy-vline
WA_PA0831_STR-DAF03 sy-vline
WA_PA0831_STR-DAF04 sy-vline
WA_PA0831_STR-DAF05 sy-vline
WA_PA0831_STR-DAF06 sy-vline
WA_PA0831_STR-DAF07 sy-vline
WA_PA0831_STR-DAF08 sy-vline
WA_PA0831_STR-DAF09 sy-vline
WA_PA0831_STR-DAF10 sy-vline
WA_PA0831_STR-DAF11 sy-vline
WA_PA0831_STR-DAF12 sy-vline
WA_PA0831_STR-CHE01 sy-vline
WA_PA0831_STR-CHE02 sy-vline
WA_PA0831_STR-CHE03 sy-vline
WA_PA0831_STR-CHE04 sy-vline
WA_PA0831_STR-CHE05 sy-vline
WA_PA0831_STR-CHE06 sy-vline
WA_PA0831_STR-CHE07 sy-vline
WA_PA0831_STR-CHE08 sy-vline
WA_PA0831_STR-CHE09 sy-vline
WA_PA0831_STR-CHE10 sy-vline
WA_PA0831_STR-CHE11 sy-vline
WA_PA0831_STR-CHE12 sy-vline
WA_PA0831_STR-PAYIN sy-vline
WA_PA0831_STR-PAYTY sy-vline
WA_PA0831_STR-PAYID sy-vline
WA_PA0831_STR-BONDT sy-vline
WA_PA0831_STR-OCRSN sy-vline
WA_PA0831_STR-TYPCO sy-vline
WA_PA0831_STR-SUBCO sy-vline
WA_PA0831_STR-ENOAC sy-vline
WA_PA0831_STR-COREX sy-vline
WA_PA0831_STR-TCO01 sy-vline
WA_PA0831_STR-TCO02 sy-vline
WA_PA0831_STR-TCO03 sy-vline
WA_PA0831_STR-TCO04 sy-vline
WA_PA0831_STR-TCO05 sy-vline
WA_PA0831_STR-TCO06 sy-vline
WA_PA0831_STR-TCO07 sy-vline
WA_PA0831_STR-TCO08 sy-vline
WA_PA0831_STR-TCO09 sy-vline
WA_PA0831_STR-TCO10 sy-vline
WA_PA0831_STR-TCO11 sy-vline
WA_PA0831_STR-TCO12 sy-vline
WA_PA0831_STR-IDT01 sy-vline
WA_PA0831_STR-IDT02 sy-vline
WA_PA0831_STR-IDT03 sy-vline
WA_PA0831_STR-IDT04 sy-vline
WA_PA0831_STR-IDT05 sy-vline
WA_PA0831_STR-IDT06 sy-vline
WA_PA0831_STR-IDT07 sy-vline
WA_PA0831_STR-IDT08 sy-vline
WA_PA0831_STR-IDT09 sy-vline
WA_PA0831_STR-IDT10 sy-vline
WA_PA0831_STR-IDT11 sy-vline
WA_PA0831_STR-IDT12 sy-vline
WA_PA0831_STR-IDN01 sy-vline
WA_PA0831_STR-IDN02 sy-vline
WA_PA0831_STR-IDN03 sy-vline
WA_PA0831_STR-IDN04 sy-vline
WA_PA0831_STR-IDN05 sy-vline
WA_PA0831_STR-IDN06 sy-vline
WA_PA0831_STR-IDN07 sy-vline
WA_PA0831_STR-IDN08 sy-vline
WA_PA0831_STR-IDN09 sy-vline
WA_PA0831_STR-IDN10 sy-vline
WA_PA0831_STR-IDN11 sy-vline
WA_PA0831_STR-IDN12 sy-vline
WA_PA0831_STR-UPC01 sy-vline
WA_PA0831_STR-UPC02 sy-vline
WA_PA0831_STR-UPC03 sy-vline
WA_PA0831_STR-UPC04 sy-vline
WA_PA0831_STR-UPC05 sy-vline
WA_PA0831_STR-UPC06 sy-vline
WA_PA0831_STR-UPC07 sy-vline
WA_PA0831_STR-UPC08 sy-vline
WA_PA0831_STR-UPC09 sy-vline
WA_PA0831_STR-UPC10 sy-vline
WA_PA0831_STR-UPC11 sy-vline
WA_PA0831_STR-UPC12 sy-vline
WA_PA0831_STR-REAFP sy-vline
WA_PA0831_STR-AFILIA_NUMBER sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.