ABAP Select data from SAP table P0600 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 P0600 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 P0600. 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 P0600 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_P0600 TYPE STANDARD TABLE OF P0600,
      WA_P0600 TYPE P0600,
      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: <P0600> TYPE P0600.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM P0600
*  INTO TABLE @DATA(IT_P06002).
*--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_P0600 INDEX 1 INTO DATA(WA_P06002).


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

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_P0600-ENDDA, sy-vline,
WA_P0600-BEGDA, sy-vline,
WA_P0600-SEQNR, sy-vline,
WA_P0600-AEDTM, sy-vline,
WA_P0600-UNAME, sy-vline,
WA_P0600-HISTO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P0600 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_P0600 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_P0600 INTO WA_P0600. *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_P0600_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,
CONTRACT_TYPE TYPE STRING,
FULLTIME TYPE STRING,
PARTTIME TYPE STRING,
HOMEOFFICE TYPE STRING,
HELPWORKER TYPE STRING,
SEASONAL TYPE STRING,
APPRENTICE TYPE STRING,
WORKONCALL TYPE STRING,
SHORTRUN TYPE STRING,
HIRE_DATE TYPE STRING,
FIRE_DATE TYPE STRING,
FUNUM TYPE STRING,
FUTXT TYPE STRING,
INVESTMENT TYPE STRING,
WOSTD TYPE STRING,
WRITTEN_CONTRACT TYPE STRING,
TERMINAT_BY TYPE STRING,
TERMINAT_WHEN TYPE STRING,
TERMINAT_ON TYPE STRING,
WRITTEN_TERMINAT TYPE STRING,
NOTICE_PERIOD_EE TYPE STRING,
NOTICE_PERIOD_ER TYPE STRING,
PREVENTION TYPE STRING,
PREVENTED_FROM TYPE STRING,
PREVENTED_TO TYPE STRING,
TERMINAT_REASON1 TYPE STRING,
TERMINAT_REASON2 TYPE STRING,
TERMINAT_REASON3 TYPE STRING,
TERMINAT_REASON4 TYPE STRING,
LAST_WORKED_DAY TYPE STRING,
PAID_UNTIL TYPE STRING,
PERIOD_FROM01 TYPE STRING,
PERIOD_TO01 TYPE STRING,
PERIOD_WAGE01 TYPE STRING,
PERIOD_FROM02 TYPE STRING,
PERIOD_TO02 TYPE STRING,
PERIOD_WAGE02 TYPE STRING,
PERIOD_FROM03 TYPE STRING,
PERIOD_TO03 TYPE STRING,
PERIOD_WAGE03 TYPE STRING,
PERIOD_FROM04 TYPE STRING,
PERIOD_TO04 TYPE STRING,
PERIOD_WAGE04 TYPE STRING,
MONTHLY_SALARY TYPE STRING,
DATE_LAST_13SAL TYPE STRING,
LAST_13SAL TYPE STRING,
DATE_LAST_BONUS TYPE STRING,
LAST_BONUS TYPE STRING,
HOURLY_SAL_BASIS TYPE STRING,
VACATION TYPE STRING,
PUBLIC_HOLIDAY TYPE STRING,
BONUS TYPE STRING,
HOURLY_SAL_TOTAL TYPE STRING,
ABSENCE_FROM_A01 TYPE STRING,
ABSENCE_TO_A01 TYPE STRING,
ABSENCE_FROM_B01 TYPE STRING,
ABSENCE_TO_B01 TYPE STRING,
ABSENCE_FROM_C01 TYPE STRING,
ABSENCE_TO_C01 TYPE STRING,
ABSENCE_FROM_A02 TYPE STRING,
ABSENCE_TO_A02 TYPE STRING,
ABSENCE_FROM_B02 TYPE STRING,
ABSENCE_TO_B02 TYPE STRING,
ABSENCE_FROM_C02 TYPE STRING,
ABSENCE_TO_C02 TYPE STRING,
ABSENCE_FROM_A03 TYPE STRING,
ABSENCE_TO_A03 TYPE STRING,
ABSENCE_FROM_B03 TYPE STRING,
ABSENCE_TO_B03 TYPE STRING,
ABSENCE_FROM_C03 TYPE STRING,
ABSENCE_TO_C03 TYPE STRING,
ABSENCE_FROM_A04 TYPE STRING,
ABSENCE_TO_A04 TYPE STRING,
ABSENCE_FROM_B04 TYPE STRING,
ABSENCE_TO_B04 TYPE STRING,
ABSENCE_FROM_C04 TYPE STRING,
ABSENCE_TO_C04 TYPE STRING,
ABSENCE_FROM_A05 TYPE STRING,
ABSENCE_TO_A05 TYPE STRING,
ABSENCE_FROM_B05 TYPE STRING,
ABSENCE_TO_B05 TYPE STRING,
ABSENCE_FROM_C05 TYPE STRING,
ABSENCE_TO_C05 TYPE STRING,
PENSION TYPE STRING,
ADDITIONAL_PAYMT TYPE STRING,
CHILD_ALLWNC TYPE STRING,
EDUCATION_ALLWNC TYPE STRING,
ALLWNC_PAID_BY TYPE STRING,
COPY_TERMINATION TYPE STRING,
COPY_PAYSLIP TYPE STRING,
COPY_PENSION TYPE STRING,
CURRENCY TYPE STRING,
NO_PENSION_FUND TYPE STRING,
PENSION_FUND TYPE STRING,
LANGUAGE TYPE STRING,
STATUS TYPE STRING,END OF T_EKKO_STR. DATA: WA_P0600_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_P0600_STR-PERNR sy-vline
WA_P0600_STR-INFTY sy-vline
WA_P0600_STR-SUBTY sy-vline
WA_P0600_STR-OBJPS sy-vline
WA_P0600_STR-SPRPS sy-vline
WA_P0600_STR-ENDDA sy-vline
WA_P0600_STR-BEGDA sy-vline
WA_P0600_STR-SEQNR sy-vline
WA_P0600_STR-AEDTM sy-vline
WA_P0600_STR-UNAME sy-vline
WA_P0600_STR-HISTO sy-vline
WA_P0600_STR-ITXEX sy-vline
WA_P0600_STR-REFEX sy-vline
WA_P0600_STR-ORDEX sy-vline
WA_P0600_STR-ITBLD sy-vline
WA_P0600_STR-PREAS sy-vline
WA_P0600_STR-FLAG1 sy-vline
WA_P0600_STR-FLAG2 sy-vline
WA_P0600_STR-FLAG3 sy-vline
WA_P0600_STR-FLAG4 sy-vline
WA_P0600_STR-RESE1 sy-vline
WA_P0600_STR-RESE2 sy-vline
WA_P0600_STR-GRPVL sy-vline
WA_P0600_STR-CONTRACT_TYPE sy-vline
WA_P0600_STR-FULLTIME sy-vline
WA_P0600_STR-PARTTIME sy-vline
WA_P0600_STR-HOMEOFFICE sy-vline
WA_P0600_STR-HELPWORKER sy-vline
WA_P0600_STR-SEASONAL sy-vline
WA_P0600_STR-APPRENTICE sy-vline
WA_P0600_STR-WORKONCALL sy-vline
WA_P0600_STR-SHORTRUN sy-vline
WA_P0600_STR-HIRE_DATE sy-vline
WA_P0600_STR-FIRE_DATE sy-vline
WA_P0600_STR-FUNUM sy-vline
WA_P0600_STR-FUTXT sy-vline
WA_P0600_STR-INVESTMENT sy-vline
WA_P0600_STR-WOSTD sy-vline
WA_P0600_STR-WRITTEN_CONTRACT sy-vline
WA_P0600_STR-TERMINAT_BY sy-vline
WA_P0600_STR-TERMINAT_WHEN sy-vline
WA_P0600_STR-TERMINAT_ON sy-vline
WA_P0600_STR-WRITTEN_TERMINAT sy-vline
WA_P0600_STR-NOTICE_PERIOD_EE sy-vline
WA_P0600_STR-NOTICE_PERIOD_ER sy-vline
WA_P0600_STR-PREVENTION sy-vline
WA_P0600_STR-PREVENTED_FROM sy-vline
WA_P0600_STR-PREVENTED_TO sy-vline
WA_P0600_STR-TERMINAT_REASON1 sy-vline
WA_P0600_STR-TERMINAT_REASON2 sy-vline
WA_P0600_STR-TERMINAT_REASON3 sy-vline
WA_P0600_STR-TERMINAT_REASON4 sy-vline
WA_P0600_STR-LAST_WORKED_DAY sy-vline
WA_P0600_STR-PAID_UNTIL sy-vline
WA_P0600_STR-PERIOD_FROM01 sy-vline
WA_P0600_STR-PERIOD_TO01 sy-vline
WA_P0600_STR-PERIOD_WAGE01 sy-vline
WA_P0600_STR-PERIOD_FROM02 sy-vline
WA_P0600_STR-PERIOD_TO02 sy-vline
WA_P0600_STR-PERIOD_WAGE02 sy-vline
WA_P0600_STR-PERIOD_FROM03 sy-vline
WA_P0600_STR-PERIOD_TO03 sy-vline
WA_P0600_STR-PERIOD_WAGE03 sy-vline
WA_P0600_STR-PERIOD_FROM04 sy-vline
WA_P0600_STR-PERIOD_TO04 sy-vline
WA_P0600_STR-PERIOD_WAGE04 sy-vline
WA_P0600_STR-MONTHLY_SALARY sy-vline
WA_P0600_STR-DATE_LAST_13SAL sy-vline
WA_P0600_STR-LAST_13SAL sy-vline
WA_P0600_STR-DATE_LAST_BONUS sy-vline
WA_P0600_STR-LAST_BONUS sy-vline
WA_P0600_STR-HOURLY_SAL_BASIS sy-vline
WA_P0600_STR-VACATION sy-vline
WA_P0600_STR-PUBLIC_HOLIDAY sy-vline
WA_P0600_STR-BONUS sy-vline
WA_P0600_STR-HOURLY_SAL_TOTAL sy-vline
WA_P0600_STR-ABSENCE_FROM_A01 sy-vline
WA_P0600_STR-ABSENCE_TO_A01 sy-vline
WA_P0600_STR-ABSENCE_FROM_B01 sy-vline
WA_P0600_STR-ABSENCE_TO_B01 sy-vline
WA_P0600_STR-ABSENCE_FROM_C01 sy-vline
WA_P0600_STR-ABSENCE_TO_C01 sy-vline
WA_P0600_STR-ABSENCE_FROM_A02 sy-vline
WA_P0600_STR-ABSENCE_TO_A02 sy-vline
WA_P0600_STR-ABSENCE_FROM_B02 sy-vline
WA_P0600_STR-ABSENCE_TO_B02 sy-vline
WA_P0600_STR-ABSENCE_FROM_C02 sy-vline
WA_P0600_STR-ABSENCE_TO_C02 sy-vline
WA_P0600_STR-ABSENCE_FROM_A03 sy-vline
WA_P0600_STR-ABSENCE_TO_A03 sy-vline
WA_P0600_STR-ABSENCE_FROM_B03 sy-vline
WA_P0600_STR-ABSENCE_TO_B03 sy-vline
WA_P0600_STR-ABSENCE_FROM_C03 sy-vline
WA_P0600_STR-ABSENCE_TO_C03 sy-vline
WA_P0600_STR-ABSENCE_FROM_A04 sy-vline
WA_P0600_STR-ABSENCE_TO_A04 sy-vline
WA_P0600_STR-ABSENCE_FROM_B04 sy-vline
WA_P0600_STR-ABSENCE_TO_B04 sy-vline
WA_P0600_STR-ABSENCE_FROM_C04 sy-vline
WA_P0600_STR-ABSENCE_TO_C04 sy-vline
WA_P0600_STR-ABSENCE_FROM_A05 sy-vline
WA_P0600_STR-ABSENCE_TO_A05 sy-vline
WA_P0600_STR-ABSENCE_FROM_B05 sy-vline
WA_P0600_STR-ABSENCE_TO_B05 sy-vline
WA_P0600_STR-ABSENCE_FROM_C05 sy-vline
WA_P0600_STR-ABSENCE_TO_C05 sy-vline
WA_P0600_STR-PENSION sy-vline
WA_P0600_STR-ADDITIONAL_PAYMT sy-vline
WA_P0600_STR-CHILD_ALLWNC sy-vline
WA_P0600_STR-EDUCATION_ALLWNC sy-vline
WA_P0600_STR-ALLWNC_PAID_BY sy-vline
WA_P0600_STR-COPY_TERMINATION sy-vline
WA_P0600_STR-COPY_PAYSLIP sy-vline
WA_P0600_STR-COPY_PENSION sy-vline
WA_P0600_STR-CURRENCY sy-vline
WA_P0600_STR-NO_PENSION_FUND sy-vline
WA_P0600_STR-PENSION_FUND sy-vline
WA_P0600_STR-LANGUAGE sy-vline
WA_P0600_STR-STATUS sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.