ABAP Select data from SAP table HRPAYCH_S_SV_DISTRIB 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 HRPAYCH_S_SV_DISTRIB 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 HRPAYCH_S_SV_DISTRIB. 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 HRPAYCH_S_SV_DISTRIB 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_HRPAYCH_S_SV_DISTRIB TYPE STANDARD TABLE OF HRPAYCH_S_SV_DISTRIB, WA_HRPAYCH_S_SV_DISTRIB TYPE HRPAYCH_S_SV_DISTRIB, 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: <HRPAYCH_S_SV_DISTRIB> TYPE HRPAYCH_S_SV_DISTRIB. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_HRPAYCH_S_SV_DISTRIB. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM HRPAYCH_S_SV_DISTRIB INTO TABLE IT_HRPAYCH_S_SV_DISTRIB. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM HRPAYCH_S_SV_DISTRIB * INTO TABLE @DATA(IT_HRPAYCH_S_SV_DISTRIB2). *--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_HRPAYCH_S_SV_DISTRIB INDEX 1 INTO DATA(WA_HRPAYCH_S_SV_DISTRIB2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_HRPAYCH_S_SV_DISTRIB ASSIGNING <HRPAYCH_S_SV_DISTRIB>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<HRPAYCH_S_SV_DISTRIB>-GPRSN = 1.
<HRPAYCH_S_SV_DISTRIB>-DIST_CONTEXT = 1.
<HRPAYCH_S_SV_DISTRIB>-ORIG_LOHN_PER = 1.
<HRPAYCH_S_SV_DISTRIB>-ORIG_LOHN_JAHR = 1.
<HRPAYCH_S_SV_DISTRIB>-CALC_PERS_LUFT = 1.
ENDLOOP. LOOP AT IT_HRPAYCH_S_SV_DISTRIB INTO WA_HRPAYCH_S_SV_DISTRIB. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_HRPAYCH_S_SV_DISTRIB-DIST_REST_LUFT, sy-vline,
WA_HRPAYCH_S_SV_DISTRIB-CALC_PERS_LOHN, sy-vline,
WA_HRPAYCH_S_SV_DISTRIB-DIST_REST_LOHN, sy-vline,
WA_HRPAYCH_S_SV_DISTRIB-ORIG_LUFT, sy-vline,
WA_HRPAYCH_S_SV_DISTRIB-REF_LOHN, sy-vline,
WA_HRPAYCH_S_SV_DISTRIB-REF_BASIS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_HRPAYCH_S_SV_DISTRIB 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_HRPAYCH_S_SV_DISTRIB 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_HRPAYCH_S_SV_DISTRIB INTO WA_HRPAYCH_S_SV_DISTRIB. *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_HRPAYCH_S_SV_DISTRIB_STR,
GPRSN TYPE STRING,
DIST_CONTEXT TYPE STRING,
ORIG_LOHN_PER TYPE STRING,
ORIG_LOHN_JAHR TYPE STRING,
CALC_PERS_LUFT TYPE STRING,
DIST_REST_LUFT TYPE STRING,
CALC_PERS_LOHN TYPE STRING,
DIST_REST_LOHN TYPE STRING,
ORIG_LUFT TYPE STRING,
REF_LOHN TYPE STRING,
REF_BASIS TYPE STRING,
REF_LUFT TYPE STRING,
REST_LUFT TYPE STRING,
DIST_INSTANCE TYPE STRING,
GROUP_TAB TYPE STRING,
MANDT TYPE STRING,
ANWSCHLCH TYPE STRING,
ANWSCHL TYPE STRING,
MOSV TYPE STRING,
ENDDA TYPE STRING,
BEGDA TYPE STRING,
ROUT1 TYPE STRING,
ROUT2 TYPE STRING,
ROUT3 TYPE STRING,
PGMNA TYPE STRING,
BASIS TYPE STRING,
GES_JAHR TYPE STRING,
GES_CRT TYPE STRING,
PFL_PER TYPE STRING,
PFL_JAHR TYPE STRING,
BAS_JAHR TYPE STRING,
FREI_PER TYPE STRING,
HLOHN_JAHR TYPE STRING,
HLOHN_PER TYPE STRING,
HLOHN_U_JH TYPE STRING,
HLOHN_U_PE TYPE STRING,
PR_AN TYPE STRING,
PR_AG TYPE STRING,
FR_AHV_NE TYPE STRING,
FR_RENT TYPE STRING,
R_FB_EFF_P TYPE STRING,
R_FB_EFF_J TYPE STRING,
SVTG TYPE STRING,
HLOHN_LUFT TYPE STRING,
AHV_VERW TYPE STRING,
BEITR_AN TYPE STRING,
BEITR_AG TYPE STRING,
PR_AN_KUM TYPE STRING,
PR_AG_KUM TYPE STRING,
ZUAB_BAS TYPE STRING,
ZUAB_ZU TYPE STRING,
ZUAB_AB TYPE STRING,
AUFR_KUM TYPE STRING,
BRUTTO TYPE STRING,
AHVFREI TYPE STRING,
NETTO_RESET TYPE STRING,
GES_JAHR2 TYPE STRING,
PFL_PER2 TYPE STRING,
PFL_JAHR2 TYPE STRING,
BAS_JAHR2 TYPE STRING,
HLOHN_JAHR2 TYPE STRING,
HLOHN_LUFT2 TYPE STRING,
PR_AN2 TYPE STRING,
PR_AG2 TYPE STRING,
FR_RENT_MA TYPE STRING,END OF T_EKKO_STR. DATA: WA_HRPAYCH_S_SV_DISTRIB_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_HRPAYCH_S_SV_DISTRIB_STR-GPRSN sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-DIST_CONTEXT sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-ORIG_LOHN_PER sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-ORIG_LOHN_JAHR sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-CALC_PERS_LUFT sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-DIST_REST_LUFT sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-CALC_PERS_LOHN sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-DIST_REST_LOHN sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-ORIG_LUFT sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-REF_LOHN sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-REF_BASIS sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-REF_LUFT sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-REST_LUFT sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-DIST_INSTANCE sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-GROUP_TAB sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-MANDT sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-ANWSCHLCH sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-ANWSCHL sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-MOSV sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-ENDDA sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-BEGDA sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-ROUT1 sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-ROUT2 sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-ROUT3 sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-PGMNA sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-BASIS sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-GES_JAHR sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-GES_CRT sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-PFL_PER sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-PFL_JAHR sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-BAS_JAHR sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-FREI_PER sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-HLOHN_JAHR sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-HLOHN_PER sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-HLOHN_U_JH sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-HLOHN_U_PE sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-PR_AN sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-PR_AG sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-FR_AHV_NE sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-FR_RENT sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-R_FB_EFF_P sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-R_FB_EFF_J sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-SVTG sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-HLOHN_LUFT sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-AHV_VERW sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-BEITR_AN sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-BEITR_AG sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-PR_AN_KUM sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-PR_AG_KUM sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-ZUAB_BAS sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-ZUAB_ZU sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-ZUAB_AB sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-AUFR_KUM sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-BRUTTO sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-AHVFREI sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-NETTO_RESET sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-GES_JAHR2 sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-PFL_PER2 sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-PFL_JAHR2 sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-BAS_JAHR2 sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-HLOHN_JAHR2 sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-HLOHN_LUFT2 sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-PR_AN2 sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-PR_AG2 sy-vline
WA_HRPAYCH_S_SV_DISTRIB_STR-FR_RENT_MA sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.