ABAP Select data from SAP table P05_PENSIOEN 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 P05_PENSIOEN 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 P05_PENSIOEN. 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 P05_PENSIOEN 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_P05_PENSIOEN TYPE STANDARD TABLE OF P05_PENSIOEN,
      WA_P05_PENSIOEN TYPE P05_PENSIOEN,
      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: <P05_PENSIOEN> TYPE P05_PENSIOEN.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM P05_PENSIOEN
*  INTO TABLE @DATA(IT_P05_PENSIOEN2).
*--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_P05_PENSIOEN INDEX 1 INTO DATA(WA_P05_PENSIOEN2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_P05_PENSIOEN ASSIGNING <P05_PENSIOEN>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<P05_PENSIOEN>-PERNR = 1.
<P05_PENSIOEN>-PENSK = 1.
<P05_PENSIOEN>-ENDDA = 1.
<P05_PENSIOEN>-BEGDA = 1.
<P05_PENSIOEN>-PENRG = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_P05_PENSIOEN-LCGSL, sy-vline,
WA_P05_PENSIOEN-LCHPG, sy-vline,
WA_P05_PENSIOEN-LCVRG, sy-vline,
WA_P05_PENSIOEN-LCVSG, sy-vline,
WA_P05_PENSIOEN-LCGBB, sy-vline,
WA_P05_PENSIOEN-LCPGS_WG, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P05_PENSIOEN 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_P05_PENSIOEN 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_P05_PENSIOEN INTO WA_P05_PENSIOEN. *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_P05_PENSIOEN-PABRJ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_P05_PENSIOEN-PABRJ.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field NABRJ CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_P05_PENSIOEN-NABRJ IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_P05_PENSIOEN-NABRJ.
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_P05_PENSIOEN_STR,
PERNR TYPE STRING,
PENSK TYPE STRING,
ENDDA TYPE STRING,
BEGDA TYPE STRING,
PENRG TYPE STRING,
LCGSL TYPE STRING,
LCHPG TYPE STRING,
LCVRG TYPE STRING,
LCVSG TYPE STRING,
LCGBB TYPE STRING,
LCPGS_WG TYPE STRING,
LCPGS_WN TYPE STRING,
LCPWG TYPE STRING,
LCPWN TYPE STRING,
LCPWN_BB TYPE STRING,
LCPTP TYPE STRING,
PP_WG TYPE STRING,
PP_WN TYPE STRING,
OPWG1 TYPE STRING,
OPWG2 TYPE STRING,
OPWN1 TYPE STRING,
OPWN2 TYPE STRING,
OWGMN TYPE STRING,
OWGMX TYPE STRING,
OWNMN TYPE STRING,
OWNMX TYPE STRING,
MXGWG TYPE STRING,
MXGWN TYPE STRING,
MNGWG TYPE STRING,
MNGWN TYPE STRING,
MXPWG TYPE STRING,
MXPWN TYPE STRING,
MNPWG TYPE STRING,
MNPWN TYPE STRING,
FRCWG TYPE STRING,
FRCWN TYPE STRING,
VPAWG TYPE STRING,
VPAWN TYPE STRING,
AWGWN TYPE STRING,
APSJB TYPE STRING,
MNLFT TYPE STRING,
LFTBM TYPE STRING,
STLFT TYPE STRING,
STPCT TYPE STRING,
STPRD TYPE STRING,
PTBER TYPE STRING,
RKHER TYPE STRING,
RCODE TYPE STRING,
CUMHB TYPE STRING,
NRATO TYPE STRING,
AFRPG TYPE STRING,
AFRWG TYPE STRING,
AFRWN TYPE STRING,
CLCPS TYPE STRING,
PARM1 TYPE STRING,
TIJDV TYPE STRING,
PERMO TYPE STRING,
PABRJ TYPE STRING,
PABRP TYPE STRING,
LABRP TYPE STRING,
PERIODES TYPE STRING,
TEILK TYPE STRING,
HIRE TYPE STRING,
FIRE TYPE STRING,
EINTRITT TYPE STRING,
AUSTRITT TYPE STRING,
HIRE_DATE TYPE STRING,
FIRE_DATE TYPE STRING,
CALCULATE TYPE STRING,
SVDAY TYPE STRING,
SVWNB TYPE STRING,
SVWRB TYPE STRING,
SVWPP TYPE STRING,
SVDPP TYPE STRING,
SVWDV TYPE STRING,
SVWDK TYPE STRING,
SVB1J TYPE STRING,
SVBPP TYPE STRING,
WKWDY TYPE STRING,
LEEFTIJD TYPE STRING,
PTP TYPE STRING,
OPTP TYPE STRING,
PWG TYPE STRING,
PWN TYPE STRING,
PWN_BB TYPE STRING,
PGSL_OLD TYPE STRING,
HPGS_OLD TYPE STRING,
PGSL_NEW TYPE STRING,
HPGS_NEW TYPE STRING,
PGBB_NEW TYPE STRING,
VRGSL TYPE STRING,
VSGSL TYPE STRING,
CUM_PR_WG TYPE STRING,
CUM_PR_WN TYPE STRING,
CUM_PTP TYPE STRING,
PGSWG TYPE STRING,
PGSWN TYPE STRING,
CUMHB_IP TYPE STRING,
NABRJ TYPE STRING,
NABRP TYPE STRING,
CUM_KAL TYPE STRING,
CUM_WDG TYPE STRING,
CUM_360 TYPE STRING,
WDG TYPE STRING,
KAL TYPE STRING,
D360 TYPE STRING,
CUM_PGSL TYPE STRING,
CUM_PGBB TYPE STRING,
CUM_VRGSL TYPE STRING,
CUM_VSGSL TYPE STRING,
CUM_PER TYPE STRING,
PER TYPE STRING,
CUM_PERIODE TYPE STRING,
CUM_FACT TYPE STRING,
CUM_FACT_2 TYPE STRING,
BETDA TYPE STRING,
LEEFTIJD_VP TYPE STRING,
1ST_PART TYPE STRING,
LCJGS TYPE STRING,
JRGSL TYPE STRING,
CUM_PTP_OLD TYPE STRING,
CUM_PGSL_200 TYPE STRING,
CUM_PGBB_200 TYPE STRING,
ECCPB TYPE STRING,
LCPGS_WG_2 TYPE STRING,
LCPGS_WN_2 TYPE STRING,
CLCPS_2 TYPE STRING,
AFRPG_2 TYPE STRING,
JAARLOON_WG_AFG_2 TYPE STRING,
JAARLOON_WN_AFG_2 TYPE STRING,
CUM_FR_WG TYPE STRING,
CUM_FR_WN TYPE STRING,
CUM_MAX_WG TYPE STRING,
CUM_MAX_WN TYPE STRING,
ARATO TYPE STRING,END OF T_EKKO_STR. DATA: WA_P05_PENSIOEN_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_P05_PENSIOEN_STR-PERNR sy-vline
WA_P05_PENSIOEN_STR-PENSK sy-vline
WA_P05_PENSIOEN_STR-ENDDA sy-vline
WA_P05_PENSIOEN_STR-BEGDA sy-vline
WA_P05_PENSIOEN_STR-PENRG sy-vline
WA_P05_PENSIOEN_STR-LCGSL sy-vline
WA_P05_PENSIOEN_STR-LCHPG sy-vline
WA_P05_PENSIOEN_STR-LCVRG sy-vline
WA_P05_PENSIOEN_STR-LCVSG sy-vline
WA_P05_PENSIOEN_STR-LCGBB sy-vline
WA_P05_PENSIOEN_STR-LCPGS_WG sy-vline
WA_P05_PENSIOEN_STR-LCPGS_WN sy-vline
WA_P05_PENSIOEN_STR-LCPWG sy-vline
WA_P05_PENSIOEN_STR-LCPWN sy-vline
WA_P05_PENSIOEN_STR-LCPWN_BB sy-vline
WA_P05_PENSIOEN_STR-LCPTP sy-vline
WA_P05_PENSIOEN_STR-PP_WG sy-vline
WA_P05_PENSIOEN_STR-PP_WN sy-vline
WA_P05_PENSIOEN_STR-OPWG1 sy-vline
WA_P05_PENSIOEN_STR-OPWG2 sy-vline
WA_P05_PENSIOEN_STR-OPWN1 sy-vline
WA_P05_PENSIOEN_STR-OPWN2 sy-vline
WA_P05_PENSIOEN_STR-OWGMN sy-vline
WA_P05_PENSIOEN_STR-OWGMX sy-vline
WA_P05_PENSIOEN_STR-OWNMN sy-vline
WA_P05_PENSIOEN_STR-OWNMX sy-vline
WA_P05_PENSIOEN_STR-MXGWG sy-vline
WA_P05_PENSIOEN_STR-MXGWN sy-vline
WA_P05_PENSIOEN_STR-MNGWG sy-vline
WA_P05_PENSIOEN_STR-MNGWN sy-vline
WA_P05_PENSIOEN_STR-MXPWG sy-vline
WA_P05_PENSIOEN_STR-MXPWN sy-vline
WA_P05_PENSIOEN_STR-MNPWG sy-vline
WA_P05_PENSIOEN_STR-MNPWN sy-vline
WA_P05_PENSIOEN_STR-FRCWG sy-vline
WA_P05_PENSIOEN_STR-FRCWN sy-vline
WA_P05_PENSIOEN_STR-VPAWG sy-vline
WA_P05_PENSIOEN_STR-VPAWN sy-vline
WA_P05_PENSIOEN_STR-AWGWN sy-vline
WA_P05_PENSIOEN_STR-APSJB sy-vline
WA_P05_PENSIOEN_STR-MNLFT sy-vline
WA_P05_PENSIOEN_STR-LFTBM sy-vline
WA_P05_PENSIOEN_STR-STLFT sy-vline
WA_P05_PENSIOEN_STR-STPCT sy-vline
WA_P05_PENSIOEN_STR-STPRD sy-vline
WA_P05_PENSIOEN_STR-PTBER sy-vline
WA_P05_PENSIOEN_STR-RKHER sy-vline
WA_P05_PENSIOEN_STR-RCODE sy-vline
WA_P05_PENSIOEN_STR-CUMHB sy-vline
WA_P05_PENSIOEN_STR-NRATO sy-vline
WA_P05_PENSIOEN_STR-AFRPG sy-vline
WA_P05_PENSIOEN_STR-AFRWG sy-vline
WA_P05_PENSIOEN_STR-AFRWN sy-vline
WA_P05_PENSIOEN_STR-CLCPS sy-vline
WA_P05_PENSIOEN_STR-PARM1 sy-vline
WA_P05_PENSIOEN_STR-TIJDV sy-vline
WA_P05_PENSIOEN_STR-PERMO sy-vline
WA_P05_PENSIOEN_STR-PABRJ sy-vline
WA_P05_PENSIOEN_STR-PABRP sy-vline
WA_P05_PENSIOEN_STR-LABRP sy-vline
WA_P05_PENSIOEN_STR-PERIODES sy-vline
WA_P05_PENSIOEN_STR-TEILK sy-vline
WA_P05_PENSIOEN_STR-HIRE sy-vline
WA_P05_PENSIOEN_STR-FIRE sy-vline
WA_P05_PENSIOEN_STR-EINTRITT sy-vline
WA_P05_PENSIOEN_STR-AUSTRITT sy-vline
WA_P05_PENSIOEN_STR-HIRE_DATE sy-vline
WA_P05_PENSIOEN_STR-FIRE_DATE sy-vline
WA_P05_PENSIOEN_STR-CALCULATE sy-vline
WA_P05_PENSIOEN_STR-SVDAY sy-vline
WA_P05_PENSIOEN_STR-SVWNB sy-vline
WA_P05_PENSIOEN_STR-SVWRB sy-vline
WA_P05_PENSIOEN_STR-SVWPP sy-vline
WA_P05_PENSIOEN_STR-SVDPP sy-vline
WA_P05_PENSIOEN_STR-SVWDV sy-vline
WA_P05_PENSIOEN_STR-SVWDK sy-vline
WA_P05_PENSIOEN_STR-SVB1J sy-vline
WA_P05_PENSIOEN_STR-SVBPP sy-vline
WA_P05_PENSIOEN_STR-WKWDY sy-vline
WA_P05_PENSIOEN_STR-LEEFTIJD sy-vline
WA_P05_PENSIOEN_STR-PTP sy-vline
WA_P05_PENSIOEN_STR-OPTP sy-vline
WA_P05_PENSIOEN_STR-PWG sy-vline
WA_P05_PENSIOEN_STR-PWN sy-vline
WA_P05_PENSIOEN_STR-PWN_BB sy-vline
WA_P05_PENSIOEN_STR-PGSL_OLD sy-vline
WA_P05_PENSIOEN_STR-HPGS_OLD sy-vline
WA_P05_PENSIOEN_STR-PGSL_NEW sy-vline
WA_P05_PENSIOEN_STR-HPGS_NEW sy-vline
WA_P05_PENSIOEN_STR-PGBB_NEW sy-vline
WA_P05_PENSIOEN_STR-VRGSL sy-vline
WA_P05_PENSIOEN_STR-VSGSL sy-vline
WA_P05_PENSIOEN_STR-CUM_PR_WG sy-vline
WA_P05_PENSIOEN_STR-CUM_PR_WN sy-vline
WA_P05_PENSIOEN_STR-CUM_PTP sy-vline
WA_P05_PENSIOEN_STR-PGSWG sy-vline
WA_P05_PENSIOEN_STR-PGSWN sy-vline
WA_P05_PENSIOEN_STR-CUMHB_IP sy-vline
WA_P05_PENSIOEN_STR-NABRJ sy-vline
WA_P05_PENSIOEN_STR-NABRP sy-vline
WA_P05_PENSIOEN_STR-CUM_KAL sy-vline
WA_P05_PENSIOEN_STR-CUM_WDG sy-vline
WA_P05_PENSIOEN_STR-CUM_360 sy-vline
WA_P05_PENSIOEN_STR-WDG sy-vline
WA_P05_PENSIOEN_STR-KAL sy-vline
WA_P05_PENSIOEN_STR-D360 sy-vline
WA_P05_PENSIOEN_STR-CUM_PGSL sy-vline
WA_P05_PENSIOEN_STR-CUM_PGBB sy-vline
WA_P05_PENSIOEN_STR-CUM_VRGSL sy-vline
WA_P05_PENSIOEN_STR-CUM_VSGSL sy-vline
WA_P05_PENSIOEN_STR-CUM_PER sy-vline
WA_P05_PENSIOEN_STR-PER sy-vline
WA_P05_PENSIOEN_STR-CUM_PERIODE sy-vline
WA_P05_PENSIOEN_STR-CUM_FACT sy-vline
WA_P05_PENSIOEN_STR-CUM_FACT_2 sy-vline
WA_P05_PENSIOEN_STR-BETDA sy-vline
WA_P05_PENSIOEN_STR-LEEFTIJD_VP sy-vline
WA_P05_PENSIOEN_STR-1ST_PART sy-vline
WA_P05_PENSIOEN_STR-LCJGS sy-vline
WA_P05_PENSIOEN_STR-JRGSL sy-vline
WA_P05_PENSIOEN_STR-CUM_PTP_OLD sy-vline
WA_P05_PENSIOEN_STR-CUM_PGSL_200 sy-vline
WA_P05_PENSIOEN_STR-CUM_PGBB_200 sy-vline
WA_P05_PENSIOEN_STR-ECCPB sy-vline
WA_P05_PENSIOEN_STR-LCPGS_WG_2 sy-vline
WA_P05_PENSIOEN_STR-LCPGS_WN_2 sy-vline
WA_P05_PENSIOEN_STR-CLCPS_2 sy-vline
WA_P05_PENSIOEN_STR-AFRPG_2 sy-vline
WA_P05_PENSIOEN_STR-JAARLOON_WG_AFG_2 sy-vline
WA_P05_PENSIOEN_STR-JAARLOON_WN_AFG_2 sy-vline
WA_P05_PENSIOEN_STR-CUM_FR_WG sy-vline
WA_P05_PENSIOEN_STR-CUM_FR_WN sy-vline
WA_P05_PENSIOEN_STR-CUM_MAX_WG sy-vline
WA_P05_PENSIOEN_STR-CUM_MAX_WN sy-vline
WA_P05_PENSIOEN_STR-ARATO sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.