ABAP Select data from SAP table HRPAYSK_S_SI_DETAIL 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 HRPAYSK_S_SI_DETAIL 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 HRPAYSK_S_SI_DETAIL. 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 HRPAYSK_S_SI_DETAIL 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_HRPAYSK_S_SI_DETAIL TYPE STANDARD TABLE OF HRPAYSK_S_SI_DETAIL,
      WA_HRPAYSK_S_SI_DETAIL TYPE HRPAYSK_S_SI_DETAIL,
      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: <HRPAYSK_S_SI_DETAIL> TYPE HRPAYSK_S_SI_DETAIL.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM HRPAYSK_S_SI_DETAIL
*  INTO TABLE @DATA(IT_HRPAYSK_S_SI_DETAIL2).
*--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_HRPAYSK_S_SI_DETAIL INDEX 1 INTO DATA(WA_HRPAYSK_S_SI_DETAIL2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_HRPAYSK_S_SI_DETAIL ASSIGNING <HRPAYSK_S_SI_DETAIL>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<HRPAYSK_S_SI_DETAIL>-PERNR = 1.
<HRPAYSK_S_SI_DETAIL>-REGIR = 1.
<HRPAYSK_S_SI_DETAIL>-DISTI = 1.
<HRPAYSK_S_SI_DETAIL>-AURTR = 1.
<HRPAYSK_S_SI_DETAIL>-RBGDA = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_HRPAYSK_S_SI_DETAIL-AGRMT, sy-vline,
WA_HRPAYSK_S_SI_DETAIL-INTST, sy-vline,
WA_HRPAYSK_S_SI_DETAIL-HIRED, sy-vline,
WA_HRPAYSK_S_SI_DETAIL-HIDAT, sy-vline,
WA_HRPAYSK_S_SI_DETAIL-FIRED, sy-vline,
WA_HRPAYSK_S_SI_DETAIL-FIRNP, sy-vline.
ENDLOOP. *Add any further fields from structure WA_HRPAYSK_S_SI_DETAIL 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_HRPAYSK_S_SI_DETAIL 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_HRPAYSK_S_SI_DETAIL INTO WA_HRPAYSK_S_SI_DETAIL. *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 PABRJ CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_HRPAYSK_S_SI_DETAIL-PABRJ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HRPAYSK_S_SI_DETAIL-PABRJ.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field PABRJ CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_HRPAYSK_S_SI_DETAIL-PABRJ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HRPAYSK_S_SI_DETAIL-PABRJ.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field PABRJ CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_HRPAYSK_S_SI_DETAIL-PABRJ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HRPAYSK_S_SI_DETAIL-PABRJ.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field PABRJ CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_HRPAYSK_S_SI_DETAIL-PABRJ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HRPAYSK_S_SI_DETAIL-PABRJ.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field PABRJ CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_HRPAYSK_S_SI_DETAIL-PABRJ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HRPAYSK_S_SI_DETAIL-PABRJ.
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_HRPAYSK_S_SI_DETAIL_STR,
PERNR TYPE STRING,
REGIR TYPE STRING,
DISTI TYPE STRING,
AURTR TYPE STRING,
RBGDA TYPE STRING,
AGRMT TYPE STRING,
INTST TYPE STRING,
HIRED TYPE STRING,
HIDAT TYPE STRING,
FIRED TYPE STRING,
FIRNP TYPE STRING,
ABSTR TYPE STRING,
LDAYS TYPE STRING,
LECLM TYPE STRING,
LECAN TYPE STRING,
CLDAY TYPE STRING,
ACDAY TYPE STRING,
SPDAY TYPE STRING,
INDAY TYPE STRING,
PIDAY TYPE STRING,
LEDAY TYPE STRING,
LESTB TYPE STRING,
LEMXB TYPE STRING,
LEMNB TYPE STRING,
LEGRT TYPE STRING,
LESTA TYPE STRING,
LEMXA TYPE STRING,
LEMNA TYPE STRING,
BASES TYPE STRING,
BASFD TYPE STRING,
BSCRT TYPE STRING,
BASPD TYPE STRING,
BASET TYPE STRING,
CACER TYPE STRING,
CACEE TYPE STRING,
CEEDF TYPE STRING,
CERDF TYPE STRING,
STDBV TYPE STRING,
INTBV TYPE STRING,
DIVID TYPE STRING,
PROPB TYPE STRING,
STDNT TYPE STRING,
INTAG TYPE STRING,
TYZEC TYPE STRING,
AGEST TYPE STRING,
EXCBS TYPE STRING,
BEGSP TYPE STRING,
ENDSP TYPE STRING,
WAERS TYPE STRING,
VPBEG TYPE STRING,
PABRJ TYPE STRING,
PABRP TYPE STRING,
VPEND TYPE STRING,
PABRJ TYPE STRING,
PABRP TYPE STRING,
MSSGS TYPE STRING,
LEAFT TYPE STRING,
LEAMI TYPE STRING,
LECFT TYPE STRING,
LECFP TYPE STRING,
PABRJ TYPE STRING,
PABRP TYPE STRING,
PRVEX TYPE STRING,
TRLEV TYPE STRING,
TRCEA TYPE STRING,
TRCEN TYPE STRING,
TRCEY TYPE STRING,
TRCEV TYPE STRING,
TRCEE TYPE STRING,
TRCER TYPE STRING,
PRSIT TYPE STRING,
INSDI TYPE STRING,
DEPER TYPE STRING,
PABRJ TYPE STRING,
PABRP TYPE STRING,
DEPCS TYPE STRING,
PABRJ TYPE STRING,
PABRP TYPE STRING,
FICEE TYPE STRING,END OF T_EKKO_STR. DATA: WA_HRPAYSK_S_SI_DETAIL_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_HRPAYSK_S_SI_DETAIL_STR-PERNR sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-REGIR sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-DISTI sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-AURTR sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-RBGDA sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-AGRMT sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-INTST sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-HIRED sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-HIDAT sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-FIRED sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-FIRNP sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-ABSTR sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LDAYS sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LECLM sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LECAN sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-CLDAY sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-ACDAY sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-SPDAY sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-INDAY sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PIDAY sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LEDAY sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LESTB sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LEMXB sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LEMNB sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LEGRT sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LESTA sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LEMXA sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LEMNA sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-BASES sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-BASFD sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-BSCRT sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-BASPD sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-BASET sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-CACER sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-CACEE sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-CEEDF sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-CERDF sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-STDBV sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-INTBV sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-DIVID sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PROPB sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-STDNT sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-INTAG sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-TYZEC sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-AGEST sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-EXCBS sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-BEGSP sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-ENDSP sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-WAERS sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-VPBEG sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PABRJ sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PABRP sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-VPEND sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PABRJ sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PABRP sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-MSSGS sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LEAFT sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LEAMI sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LECFT sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-LECFP sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PABRJ sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PABRP sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PRVEX sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-TRLEV sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-TRCEA sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-TRCEN sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-TRCEY sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-TRCEV sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-TRCEE sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-TRCER sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PRSIT sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-INSDI sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-DEPER sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PABRJ sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PABRP sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-DEPCS sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PABRJ sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-PABRP sy-vline
WA_HRPAYSK_S_SI_DETAIL_STR-FICEE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.