ABAP Select data from SAP table HCMT_BSP_PA_CH_R0600 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 HCMT_BSP_PA_CH_R0600 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 HCMT_BSP_PA_CH_R0600. 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 HCMT_BSP_PA_CH_R0600 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_HCMT_BSP_PA_CH_R0600 TYPE STANDARD TABLE OF HCMT_BSP_PA_CH_R0600,
      WA_HCMT_BSP_PA_CH_R0600 TYPE HCMT_BSP_PA_CH_R0600,
      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: <HCMT_BSP_PA_CH_R0600> TYPE HCMT_BSP_PA_CH_R0600.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM HCMT_BSP_PA_CH_R0600
*  INTO TABLE @DATA(IT_HCMT_BSP_PA_CH_R06002).
*--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_HCMT_BSP_PA_CH_R0600 INDEX 1 INTO DATA(WA_HCMT_BSP_PA_CH_R06002).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_HCMT_BSP_PA_CH_R0600 ASSIGNING <HCMT_BSP_PA_CH_R0600>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<HCMT_BSP_PA_CH_R0600>-OBJECT_KEY = 1.
<HCMT_BSP_PA_CH_R0600>-PERNR = 1.
<HCMT_BSP_PA_CH_R0600>-AEDTM = 1.
<HCMT_BSP_PA_CH_R0600>-UNAME = 1.
<HCMT_BSP_PA_CH_R0600>-SPRPS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_HCMT_BSP_PA_CH_R0600-SPRTX, sy-vline,
WA_HCMT_BSP_PA_CH_R0600-ITBLD, sy-vline,
WA_HCMT_BSP_PA_CH_R0600-ITXEX, sy-vline,
WA_HCMT_BSP_PA_CH_R0600-BEGDA, sy-vline,
WA_HCMT_BSP_PA_CH_R0600-ENDDA, sy-vline,
WA_HCMT_BSP_PA_CH_R0600-CONTRACT_TYPE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_HCMT_BSP_PA_CH_R0600 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_HCMT_BSP_PA_CH_R0600 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_HCMT_BSP_PA_CH_R0600 INTO WA_HCMT_BSP_PA_CH_R0600. *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_HCMT_BSP_PA_CH_R0600_STR,
OBJECT_KEY TYPE STRING,
PERNR TYPE STRING,
AEDTM TYPE STRING,
UNAME TYPE STRING,
SPRPS TYPE STRING,
SPRTX TYPE STRING,
ITBLD TYPE STRING,
ITXEX TYPE STRING,
BEGDA TYPE STRING,
ENDDA 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_PER_EE_TXT TYPE STRING,
NOTICE_PERIOD_ER TYPE STRING,
NOTICE_PER_ER_TXT TYPE STRING,
PREVENTION TYPE STRING,
PREVENTED_FROM TYPE STRING,
PREVENTED_TO TYPE STRING,
LAST_WORKED_DAY TYPE STRING,
PAID_UNTIL TYPE STRING,
MONTHLY_SALARY TYPE STRING,
CURRENCY01 TYPE STRING,
DATE_LAST_13SAL TYPE STRING,
LAST_13SAL TYPE STRING,
CURRENCY02 TYPE STRING,
DATE_LAST_BONUS TYPE STRING,
LAST_BONUS TYPE STRING,
CURRENCY03 TYPE STRING,
HOURLY_SAL_BASIS TYPE STRING,
CURRENCY04 TYPE STRING,
VACATION TYPE STRING,
PUBLIC_HOLIDAY TYPE STRING,
BONUS TYPE STRING,
HOURLY_SAL_TOTAL TYPE STRING,
CURRENCY05 TYPE STRING,
PENSION TYPE STRING,
CURRENCY06 TYPE STRING,
ADDITIONAL_PAYMT TYPE STRING,
CURRENCY07 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,
PERCENT_UNIT TYPE STRING,
HOUR_UNIT TYPE STRING,
LANGUAGE TYPE STRING,END OF T_EKKO_STR. DATA: WA_HCMT_BSP_PA_CH_R0600_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_HCMT_BSP_PA_CH_R0600_STR-OBJECT_KEY sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-PERNR sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-AEDTM sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-UNAME sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-SPRPS sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-SPRTX sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-ITBLD sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-ITXEX sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-BEGDA sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-ENDDA sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-CONTRACT_TYPE sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-FULLTIME sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-PARTTIME sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-HOMEOFFICE sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-HELPWORKER sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-SEASONAL sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-APPRENTICE sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-WORKONCALL sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-SHORTRUN sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-HIRE_DATE sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-FIRE_DATE sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-FUNUM sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-FUTXT sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-INVESTMENT sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-WOSTD sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-WRITTEN_CONTRACT sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-TERMINAT_BY sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-TERMINAT_WHEN sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-TERMINAT_ON sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-WRITTEN_TERMINAT sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-NOTICE_PERIOD_EE sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-NOTICE_PER_EE_TXT sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-NOTICE_PERIOD_ER sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-NOTICE_PER_ER_TXT sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-PREVENTION sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-PREVENTED_FROM sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-PREVENTED_TO sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-LAST_WORKED_DAY sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-PAID_UNTIL sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-MONTHLY_SALARY sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-CURRENCY01 sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-DATE_LAST_13SAL sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-LAST_13SAL sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-CURRENCY02 sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-DATE_LAST_BONUS sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-LAST_BONUS sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-CURRENCY03 sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-HOURLY_SAL_BASIS sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-CURRENCY04 sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-VACATION sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-PUBLIC_HOLIDAY sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-BONUS sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-HOURLY_SAL_TOTAL sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-CURRENCY05 sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-PENSION sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-CURRENCY06 sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-ADDITIONAL_PAYMT sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-CURRENCY07 sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-CHILD_ALLWNC sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-EDUCATION_ALLWNC sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-ALLWNC_PAID_BY sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-COPY_TERMINATION sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-COPY_PAYSLIP sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-COPY_PENSION sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-CURRENCY sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-NO_PENSION_FUND sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-PENSION_FUND sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-PERCENT_UNIT sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-HOUR_UNIT sy-vline
WA_HCMT_BSP_PA_CH_R0600_STR-LANGUAGE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.