ABAP Select data from SAP table PKREXPENSE 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 PKREXPENSE 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 PKREXPENSE. 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 PKREXPENSE 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_PKREXPENSE TYPE STANDARD TABLE OF PKREXPENSE,
      WA_PKREXPENSE TYPE PKREXPENSE,
      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: <PKREXPENSE> TYPE PKREXPENSE.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PKREXPENSE
*  INTO TABLE @DATA(IT_PKREXPENSE2).
*--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_PKREXPENSE INDEX 1 INTO DATA(WA_PKREXPENSE2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PKREXPENSE ASSIGNING <PKREXPENSE>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PKREXPENSE>-FOTIS = 1.
<PKREXPENSE>-FOHIS = 1.
<PKREXPENSE>-FMDOH = 1.
<PKREXPENSE>-FMDED = 1.
<PKREXPENSE>-FLGDO = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PKREXPENSE-POLDN, sy-vline,
WA_PKREXPENSE-SPCDO, sy-vline,
WA_PKREXPENSE-DON30, sy-vline,
WA_PKREXPENSE-FDSDO, sy-vline,
WA_PKREXPENSE-CRDCD, sy-vline,
WA_PKREXPENSE-CASHE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PKREXPENSE 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_PKREXPENSE 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_PKREXPENSE INTO WA_PKREXPENSE. *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_PKREXPENSE_STR,
FOTIS TYPE STRING,
FOHIS TYPE STRING,
FMDOH TYPE STRING,
FMDED TYPE STRING,
FLGDO TYPE STRING,
POLDN TYPE STRING,
SPCDO TYPE STRING,
DON30 TYPE STRING,
FDSDO TYPE STRING,
CRDCD TYPE STRING,
CASHE TYPE STRING,
GIROE TYPE STRING,
FCEEE TYPE STRING,
FCEHD TYPE STRING,
FCDEP TYPE STRING,
DEEBF TYPE STRING,
CDEBF TYPE STRING,
NDEBF TYPE STRING,
DEEEM TYPE STRING,
CDEEM TYPE STRING,
NDEEM TYPE STRING,
DEEUN TYPE STRING,
CDEUN TYPE STRING,
NDEUN TYPE STRING,
NDEHD TYPE STRING,
CRMED TYPE STRING,
DESDO TYPE STRING,
RELDO TYPE STRING,
PTCDO TYPE STRING,
OTSDO TYPE STRING,
CRBIZ TYPE STRING,
CAADO TYPE STRING,
DBTCD TYPE STRING,
CMDOH TYPE STRING,
CMDED TYPE STRING,
TRDMK TYPE STRING,
FMHND TYPE STRING,
CMHND TYPE STRING,
PUBTR TYPE STRING,
CRDEE TYPE STRING,
DBTHF TYPE STRING,
CDPRE TYPE STRING,
DBPRE TYPE STRING,
DBTH1 TYPE STRING,
CDPPR TYPE STRING,
DBPPR TYPE STRING,
INTFN TYPE STRING,
INTOT TYPE STRING,
INFN1 TYPE STRING,
INFN2 TYPE STRING,
INFN3 TYPE STRING,
INFN4 TYPE STRING,
FPRDO TYPE STRING,
INTTL TYPE STRING,
INSLN TYPE STRING,
FMSFT TYPE STRING,
DEEHD TYPE STRING,
BKSPF TYPE STRING,
CASHG TYPE STRING,
DBTCG TYPE STRING,
FPHND TYPE STRING,
CPHND TYPE STRING,
FPDOH TYPE STRING,
CPDOH TYPE STRING,
FPDED TYPE STRING,
CPDED TYPE STRING,
EROPY TYPE STRING,
EOPYG TYPE STRING,
FMHOI TYPE STRING,
FMDPI TYPE STRING,END OF T_EKKO_STR. DATA: WA_PKREXPENSE_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_PKREXPENSE_STR-FOTIS sy-vline
WA_PKREXPENSE_STR-FOHIS sy-vline
WA_PKREXPENSE_STR-FMDOH sy-vline
WA_PKREXPENSE_STR-FMDED sy-vline
WA_PKREXPENSE_STR-FLGDO sy-vline
WA_PKREXPENSE_STR-POLDN sy-vline
WA_PKREXPENSE_STR-SPCDO sy-vline
WA_PKREXPENSE_STR-DON30 sy-vline
WA_PKREXPENSE_STR-FDSDO sy-vline
WA_PKREXPENSE_STR-CRDCD sy-vline
WA_PKREXPENSE_STR-CASHE sy-vline
WA_PKREXPENSE_STR-GIROE sy-vline
WA_PKREXPENSE_STR-FCEEE sy-vline
WA_PKREXPENSE_STR-FCEHD sy-vline
WA_PKREXPENSE_STR-FCDEP sy-vline
WA_PKREXPENSE_STR-DEEBF sy-vline
WA_PKREXPENSE_STR-CDEBF sy-vline
WA_PKREXPENSE_STR-NDEBF sy-vline
WA_PKREXPENSE_STR-DEEEM sy-vline
WA_PKREXPENSE_STR-CDEEM sy-vline
WA_PKREXPENSE_STR-NDEEM sy-vline
WA_PKREXPENSE_STR-DEEUN sy-vline
WA_PKREXPENSE_STR-CDEUN sy-vline
WA_PKREXPENSE_STR-NDEUN sy-vline
WA_PKREXPENSE_STR-NDEHD sy-vline
WA_PKREXPENSE_STR-CRMED sy-vline
WA_PKREXPENSE_STR-DESDO sy-vline
WA_PKREXPENSE_STR-RELDO sy-vline
WA_PKREXPENSE_STR-PTCDO sy-vline
WA_PKREXPENSE_STR-OTSDO sy-vline
WA_PKREXPENSE_STR-CRBIZ sy-vline
WA_PKREXPENSE_STR-CAADO sy-vline
WA_PKREXPENSE_STR-DBTCD sy-vline
WA_PKREXPENSE_STR-CMDOH sy-vline
WA_PKREXPENSE_STR-CMDED sy-vline
WA_PKREXPENSE_STR-TRDMK sy-vline
WA_PKREXPENSE_STR-FMHND sy-vline
WA_PKREXPENSE_STR-CMHND sy-vline
WA_PKREXPENSE_STR-PUBTR sy-vline
WA_PKREXPENSE_STR-CRDEE sy-vline
WA_PKREXPENSE_STR-DBTHF sy-vline
WA_PKREXPENSE_STR-CDPRE sy-vline
WA_PKREXPENSE_STR-DBPRE sy-vline
WA_PKREXPENSE_STR-DBTH1 sy-vline
WA_PKREXPENSE_STR-CDPPR sy-vline
WA_PKREXPENSE_STR-DBPPR sy-vline
WA_PKREXPENSE_STR-INTFN sy-vline
WA_PKREXPENSE_STR-INTOT sy-vline
WA_PKREXPENSE_STR-INFN1 sy-vline
WA_PKREXPENSE_STR-INFN2 sy-vline
WA_PKREXPENSE_STR-INFN3 sy-vline
WA_PKREXPENSE_STR-INFN4 sy-vline
WA_PKREXPENSE_STR-FPRDO sy-vline
WA_PKREXPENSE_STR-INTTL sy-vline
WA_PKREXPENSE_STR-INSLN sy-vline
WA_PKREXPENSE_STR-FMSFT sy-vline
WA_PKREXPENSE_STR-DEEHD sy-vline
WA_PKREXPENSE_STR-BKSPF sy-vline
WA_PKREXPENSE_STR-CASHG sy-vline
WA_PKREXPENSE_STR-DBTCG sy-vline
WA_PKREXPENSE_STR-FPHND sy-vline
WA_PKREXPENSE_STR-CPHND sy-vline
WA_PKREXPENSE_STR-FPDOH sy-vline
WA_PKREXPENSE_STR-CPDOH sy-vline
WA_PKREXPENSE_STR-FPDED sy-vline
WA_PKREXPENSE_STR-CPDED sy-vline
WA_PKREXPENSE_STR-EROPY sy-vline
WA_PKREXPENSE_STR-EOPYG sy-vline
WA_PKREXPENSE_STR-FMHOI sy-vline
WA_PKREXPENSE_STR-FMDPI sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.