ABAP Select data from SAP table HRCUSCL_T11_TAX 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 HRCUSCL_T11_TAX 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 HRCUSCL_T11_TAX. 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 HRCUSCL_T11_TAX 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_HRCUSCL_T11_TAX TYPE STANDARD TABLE OF HRCUSCL_T11_TAX,
      WA_HRCUSCL_T11_TAX TYPE HRCUSCL_T11_TAX,
      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: <HRCUSCL_T11_TAX> TYPE HRCUSCL_T11_TAX.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM HRCUSCL_T11_TAX
*  INTO TABLE @DATA(IT_HRCUSCL_T11_TAX2).
*--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_HRCUSCL_T11_TAX INDEX 1 INTO DATA(WA_HRCUSCL_T11_TAX2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_HRCUSCL_T11_TAX ASSIGNING <HRCUSCL_T11_TAX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<HRCUSCL_T11_TAX>-CONTROLLER = 1.
<HRCUSCL_T11_TAX>-ACTUAL_YTD_WAGES = 1.
<HRCUSCL_T11_TAX>-ADDITIONAL_AMOUNT = 1.
<HRCUSCL_T11_TAX>-ADDITIONAL_EXEMPTION_AMOUNT = 1.
<HRCUSCL_T11_TAX>-ADDITIONAL_EXEMPTIONS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_HRCUSCL_T11_TAX-ADDITIONAL_NON_WAGE_INCOME, sy-vline,
WA_HRCUSCL_T11_TAX-ADDITIONAL_TAX_CODE, sy-vline,
WA_HRCUSCL_T11_TAX-ADDITIONAL_TAX_RATE, sy-vline,
WA_HRCUSCL_T11_TAX-ADDL_EXEMPT_IND, sy-vline,
WA_HRCUSCL_T11_TAX-AGGREGATION_INDICATOR, sy-vline,
WA_HRCUSCL_T11_TAX-ALTERNATE_AGGREGATION_LIMIT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_HRCUSCL_T11_TAX 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_HRCUSCL_T11_TAX 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_HRCUSCL_T11_TAX INTO WA_HRCUSCL_T11_TAX. *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_HRCUSCL_T11_TAX_STR,
CONTROLLER TYPE STRING,
ACTUAL_YTD_WAGES TYPE STRING,
ADDITIONAL_AMOUNT TYPE STRING,
ADDITIONAL_EXEMPTION_AMOUNT TYPE STRING,
ADDITIONAL_EXEMPTIONS TYPE STRING,
ADDITIONAL_NON_WAGE_INCOME TYPE STRING,
ADDITIONAL_TAX_CODE TYPE STRING,
ADDITIONAL_TAX_RATE TYPE STRING,
ADDL_EXEMPT_IND TYPE STRING,
AGGREGATION_INDICATOR TYPE STRING,
ALTERNATE_AGGREGATION_LIMIT TYPE STRING,
AUTHORITY_CODE TYPE STRING,
BASE_WAGES TYPE STRING,
CRSVD0 TYPE STRING,
CRSVD1 TYPE STRING,
CALCED_ADDITIONAL_TAX TYPE STRING,
CALCULATED_TAX TYPE STRING,
CALCULATION_STATUS TYPE STRING,
CERTIFICATE_CODE TYPE STRING,
CURRENT_TAX_LEFT TYPE STRING,
DRSVD0 TYPE STRING,
DRSVD1 TYPE STRING,
DRSVD2 TYPE STRING,
DRSVD3 TYPE STRING,
DRSVD4 TYPE STRING,
DRSVD5 TYPE STRING,
DRSVD6 TYPE STRING,
DRSVD7 TYPE STRING,
DRSVD8 TYPE STRING,
DRSVD9 TYPE STRING,
DEPENDENT_EXEMPTIONS TYPE STRING,
EICSTATUS_INDICATOR TYPE STRING,
ELECTED_STATE_IND TYPE STRING,
EST_QUARTERLY_GROSS TYPE STRING,
EXEMPT_WAGES TYPE STRING,
EXPERIENCE_RATE TYPE STRING,
FORMULA_NUMBER TYPE STRING,
GROSS_ANNUAL_PAYROLL TYPE STRING,
HRSVD0 TYPE STRING,
HRSVD1 TYPE STRING,
HOURS_WORKED TYPE STRING,
INPUT_PAY_PERIOD_WAGES TYPE STRING,
INPUT_TOTAL_NON_TAXABLE_EMPLOY TYPE STRING,
INPUT_TOTAL_TAXABLE_EARNINGS TYPE STRING,
INPUT_TOTAL_TAXABLE_EMPLOYER_C TYPE STRING,
MTDNONRES_DAYS_WORKED TYPE STRING,
MARITAL_STATUS_INDICATOR TYPE STRING,
MAXIMUM_WAGE_OVERRIDE TYPE STRING,
MTD_TAX TYPE STRING,
MTD_WAGES TYPE STRING,
NXINDICATOR TYPE STRING,
NON_TAXABLE_WAGES TYPE STRING,
NUMBER_OF_PAYMENT_ENTRIES TYPE STRING,
OUTPUT_PAY_PERIOD_WAGES TYPE STRING,
OUTPUT_TOTAL_NON_TAXABLE_EMPLO TYPE STRING,
OUTPUT_TOTAL_TAXABLE_EARNINGS TYPE STRING,
OUTPUT_TOTAL_TAXABLE_EMPLOYER TYPE STRING,
PPTDNONRES_DAYS_WORKED TYPE STRING,
PAY_PERIOD_TAX TYPE STRING,
PERCENT_WORKED TYPE STRING,
PERSONAL_EXEMPTIONS TYPE STRING,
PPTD_WAGES TYPE STRING,
PRIOR_COMMISSIONS TYPE STRING,
QTDNONRES_DAYS_WORKED TYPE STRING,
QTD_TAX TYPE STRING,
QTD_WAGES TYPE STRING,
RRSVD0 TYPE STRING,
RRSVD1 TYPE STRING,
RRSVD2 TYPE STRING,
RRSVD3 TYPE STRING,
RRSVD4 TYPE STRING,
RRSVD5 TYPE STRING,
RRSVD6 TYPE STRING,
RRSVD7 TYPE STRING,
RRSVD8 TYPE STRING,
RRSVD9 TYPE STRING,
RECIP_FORMULA TYPE STRING,
RECIPROCAL_PARTICIPATION TYPE STRING,
RECIPROCAL_TAX_CREDIT_AMOUNT TYPE STRING,
REGULAR_EXEMPTION_AMOUNT TYPE STRING,
REGULAR_EXEMPTIONS TYPE STRING,
REPORTABLE_TAX TYPE STRING,
REPORTABLE_WAGES TYPE STRING,
RESIDENT_CODE TYPE STRING,
RISK_CLASS TYPE STRING,
ROUNDING_INDICATOR TYPE STRING,
SRSVD0 TYPE STRING,
SRSVD1 TYPE STRING,
SELF_ADJUST_TAX TYPE STRING,
SUBJECT_WAGES TYPE STRING,
SUPPLEMENTAL_CODE TYPE STRING,
TAX_CREDIT_AMOUNT TYPE STRING,
TAX_EFFECTIVE_DATE_YYYYMMDD TYPE STRING,
TAX_EXEMPTION_INDICATOR TYPE STRING,
TAX_LEFT_OVER TYPE STRING,
TAX_RATE TYPE STRING,
TAX_TYPE TYPE STRING,
TAXABLE_HOURS TYPE STRING,
TAXABLE_WAGES TYPE STRING,
TAXABLE_WAGES_LIMIT_STATUS TYPE STRING,
TOTAL_EXEMPTION_VALUE TYPE STRING,
TOTAL_TAXABLE_WAGES TYPE STRING,
USER_TAX_TYPE TYPE STRING,
WAGES TYPE STRING,
YTDNONRES_DAYS_WORKED TYPE STRING,
YTD_EXEMPT_WAGES TYPE STRING,
YTD_OPT_PWS TYPE STRING,
YTD_SUBJECT_WAGES TYPE STRING,
YTD_SUPPL TYPE STRING,
YTD_TAX TYPE STRING,
YTD_TAX_PWS TYPE STRING,
YTD_WAGES TYPE STRING,END OF T_EKKO_STR. DATA: WA_HRCUSCL_T11_TAX_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_HRCUSCL_T11_TAX_STR-CONTROLLER sy-vline
WA_HRCUSCL_T11_TAX_STR-ACTUAL_YTD_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-ADDITIONAL_AMOUNT sy-vline
WA_HRCUSCL_T11_TAX_STR-ADDITIONAL_EXEMPTION_AMOUNT sy-vline
WA_HRCUSCL_T11_TAX_STR-ADDITIONAL_EXEMPTIONS sy-vline
WA_HRCUSCL_T11_TAX_STR-ADDITIONAL_NON_WAGE_INCOME sy-vline
WA_HRCUSCL_T11_TAX_STR-ADDITIONAL_TAX_CODE sy-vline
WA_HRCUSCL_T11_TAX_STR-ADDITIONAL_TAX_RATE sy-vline
WA_HRCUSCL_T11_TAX_STR-ADDL_EXEMPT_IND sy-vline
WA_HRCUSCL_T11_TAX_STR-AGGREGATION_INDICATOR sy-vline
WA_HRCUSCL_T11_TAX_STR-ALTERNATE_AGGREGATION_LIMIT sy-vline
WA_HRCUSCL_T11_TAX_STR-AUTHORITY_CODE sy-vline
WA_HRCUSCL_T11_TAX_STR-BASE_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-CRSVD0 sy-vline
WA_HRCUSCL_T11_TAX_STR-CRSVD1 sy-vline
WA_HRCUSCL_T11_TAX_STR-CALCED_ADDITIONAL_TAX sy-vline
WA_HRCUSCL_T11_TAX_STR-CALCULATED_TAX sy-vline
WA_HRCUSCL_T11_TAX_STR-CALCULATION_STATUS sy-vline
WA_HRCUSCL_T11_TAX_STR-CERTIFICATE_CODE sy-vline
WA_HRCUSCL_T11_TAX_STR-CURRENT_TAX_LEFT sy-vline
WA_HRCUSCL_T11_TAX_STR-DRSVD0 sy-vline
WA_HRCUSCL_T11_TAX_STR-DRSVD1 sy-vline
WA_HRCUSCL_T11_TAX_STR-DRSVD2 sy-vline
WA_HRCUSCL_T11_TAX_STR-DRSVD3 sy-vline
WA_HRCUSCL_T11_TAX_STR-DRSVD4 sy-vline
WA_HRCUSCL_T11_TAX_STR-DRSVD5 sy-vline
WA_HRCUSCL_T11_TAX_STR-DRSVD6 sy-vline
WA_HRCUSCL_T11_TAX_STR-DRSVD7 sy-vline
WA_HRCUSCL_T11_TAX_STR-DRSVD8 sy-vline
WA_HRCUSCL_T11_TAX_STR-DRSVD9 sy-vline
WA_HRCUSCL_T11_TAX_STR-DEPENDENT_EXEMPTIONS sy-vline
WA_HRCUSCL_T11_TAX_STR-EICSTATUS_INDICATOR sy-vline
WA_HRCUSCL_T11_TAX_STR-ELECTED_STATE_IND sy-vline
WA_HRCUSCL_T11_TAX_STR-EST_QUARTERLY_GROSS sy-vline
WA_HRCUSCL_T11_TAX_STR-EXEMPT_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-EXPERIENCE_RATE sy-vline
WA_HRCUSCL_T11_TAX_STR-FORMULA_NUMBER sy-vline
WA_HRCUSCL_T11_TAX_STR-GROSS_ANNUAL_PAYROLL sy-vline
WA_HRCUSCL_T11_TAX_STR-HRSVD0 sy-vline
WA_HRCUSCL_T11_TAX_STR-HRSVD1 sy-vline
WA_HRCUSCL_T11_TAX_STR-HOURS_WORKED sy-vline
WA_HRCUSCL_T11_TAX_STR-INPUT_PAY_PERIOD_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-INPUT_TOTAL_NON_TAXABLE_EMPLOY sy-vline
WA_HRCUSCL_T11_TAX_STR-INPUT_TOTAL_TAXABLE_EARNINGS sy-vline
WA_HRCUSCL_T11_TAX_STR-INPUT_TOTAL_TAXABLE_EMPLOYER_C sy-vline
WA_HRCUSCL_T11_TAX_STR-MTDNONRES_DAYS_WORKED sy-vline
WA_HRCUSCL_T11_TAX_STR-MARITAL_STATUS_INDICATOR sy-vline
WA_HRCUSCL_T11_TAX_STR-MAXIMUM_WAGE_OVERRIDE sy-vline
WA_HRCUSCL_T11_TAX_STR-MTD_TAX sy-vline
WA_HRCUSCL_T11_TAX_STR-MTD_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-NXINDICATOR sy-vline
WA_HRCUSCL_T11_TAX_STR-NON_TAXABLE_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-NUMBER_OF_PAYMENT_ENTRIES sy-vline
WA_HRCUSCL_T11_TAX_STR-OUTPUT_PAY_PERIOD_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-OUTPUT_TOTAL_NON_TAXABLE_EMPLO sy-vline
WA_HRCUSCL_T11_TAX_STR-OUTPUT_TOTAL_TAXABLE_EARNINGS sy-vline
WA_HRCUSCL_T11_TAX_STR-OUTPUT_TOTAL_TAXABLE_EMPLOYER sy-vline
WA_HRCUSCL_T11_TAX_STR-PPTDNONRES_DAYS_WORKED sy-vline
WA_HRCUSCL_T11_TAX_STR-PAY_PERIOD_TAX sy-vline
WA_HRCUSCL_T11_TAX_STR-PERCENT_WORKED sy-vline
WA_HRCUSCL_T11_TAX_STR-PERSONAL_EXEMPTIONS sy-vline
WA_HRCUSCL_T11_TAX_STR-PPTD_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-PRIOR_COMMISSIONS sy-vline
WA_HRCUSCL_T11_TAX_STR-QTDNONRES_DAYS_WORKED sy-vline
WA_HRCUSCL_T11_TAX_STR-QTD_TAX sy-vline
WA_HRCUSCL_T11_TAX_STR-QTD_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-RRSVD0 sy-vline
WA_HRCUSCL_T11_TAX_STR-RRSVD1 sy-vline
WA_HRCUSCL_T11_TAX_STR-RRSVD2 sy-vline
WA_HRCUSCL_T11_TAX_STR-RRSVD3 sy-vline
WA_HRCUSCL_T11_TAX_STR-RRSVD4 sy-vline
WA_HRCUSCL_T11_TAX_STR-RRSVD5 sy-vline
WA_HRCUSCL_T11_TAX_STR-RRSVD6 sy-vline
WA_HRCUSCL_T11_TAX_STR-RRSVD7 sy-vline
WA_HRCUSCL_T11_TAX_STR-RRSVD8 sy-vline
WA_HRCUSCL_T11_TAX_STR-RRSVD9 sy-vline
WA_HRCUSCL_T11_TAX_STR-RECIP_FORMULA sy-vline
WA_HRCUSCL_T11_TAX_STR-RECIPROCAL_PARTICIPATION sy-vline
WA_HRCUSCL_T11_TAX_STR-RECIPROCAL_TAX_CREDIT_AMOUNT sy-vline
WA_HRCUSCL_T11_TAX_STR-REGULAR_EXEMPTION_AMOUNT sy-vline
WA_HRCUSCL_T11_TAX_STR-REGULAR_EXEMPTIONS sy-vline
WA_HRCUSCL_T11_TAX_STR-REPORTABLE_TAX sy-vline
WA_HRCUSCL_T11_TAX_STR-REPORTABLE_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-RESIDENT_CODE sy-vline
WA_HRCUSCL_T11_TAX_STR-RISK_CLASS sy-vline
WA_HRCUSCL_T11_TAX_STR-ROUNDING_INDICATOR sy-vline
WA_HRCUSCL_T11_TAX_STR-SRSVD0 sy-vline
WA_HRCUSCL_T11_TAX_STR-SRSVD1 sy-vline
WA_HRCUSCL_T11_TAX_STR-SELF_ADJUST_TAX sy-vline
WA_HRCUSCL_T11_TAX_STR-SUBJECT_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-SUPPLEMENTAL_CODE sy-vline
WA_HRCUSCL_T11_TAX_STR-TAX_CREDIT_AMOUNT sy-vline
WA_HRCUSCL_T11_TAX_STR-TAX_EFFECTIVE_DATE_YYYYMMDD sy-vline
WA_HRCUSCL_T11_TAX_STR-TAX_EXEMPTION_INDICATOR sy-vline
WA_HRCUSCL_T11_TAX_STR-TAX_LEFT_OVER sy-vline
WA_HRCUSCL_T11_TAX_STR-TAX_RATE sy-vline
WA_HRCUSCL_T11_TAX_STR-TAX_TYPE sy-vline
WA_HRCUSCL_T11_TAX_STR-TAXABLE_HOURS sy-vline
WA_HRCUSCL_T11_TAX_STR-TAXABLE_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-TAXABLE_WAGES_LIMIT_STATUS sy-vline
WA_HRCUSCL_T11_TAX_STR-TOTAL_EXEMPTION_VALUE sy-vline
WA_HRCUSCL_T11_TAX_STR-TOTAL_TAXABLE_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-USER_TAX_TYPE sy-vline
WA_HRCUSCL_T11_TAX_STR-WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-YTDNONRES_DAYS_WORKED sy-vline
WA_HRCUSCL_T11_TAX_STR-YTD_EXEMPT_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-YTD_OPT_PWS sy-vline
WA_HRCUSCL_T11_TAX_STR-YTD_SUBJECT_WAGES sy-vline
WA_HRCUSCL_T11_TAX_STR-YTD_SUPPL sy-vline
WA_HRCUSCL_T11_TAX_STR-YTD_TAX sy-vline
WA_HRCUSCL_T11_TAX_STR-YTD_TAX_PWS sy-vline
WA_HRCUSCL_T11_TAX_STR-YTD_WAGES sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.