ABAP Select data from SAP table V_PTRV_HEAD 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 V_PTRV_HEAD 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 V_PTRV_HEAD. 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 V_PTRV_HEAD 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_V_PTRV_HEAD TYPE STANDARD TABLE OF V_PTRV_HEAD,
      WA_V_PTRV_HEAD TYPE V_PTRV_HEAD,
      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: <V_PTRV_HEAD> TYPE V_PTRV_HEAD.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM V_PTRV_HEAD
*  INTO TABLE @DATA(IT_V_PTRV_HEAD2).
*--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_V_PTRV_HEAD INDEX 1 INTO DATA(WA_V_PTRV_HEAD2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_V_PTRV_HEAD ASSIGNING <V_PTRV_HEAD>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<V_PTRV_HEAD>-MANDT = 1.
<V_PTRV_HEAD>-PERNR = 1.
<V_PTRV_HEAD>-REINR = 1.
<V_PTRV_HEAD>-HDVRS = 1.
<V_PTRV_HEAD>-MOLGA = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_V_PTRV_HEAD-MOREI, sy-vline,
WA_V_PTRV_HEAD-SCHEM, sy-vline,
WA_V_PTRV_HEAD-KZREA, sy-vline,
WA_V_PTRV_HEAD-BEREI, sy-vline,
WA_V_PTRV_HEAD-KZTKT, sy-vline,
WA_V_PTRV_HEAD-ZORT1, sy-vline.
ENDLOOP. *Add any further fields from structure WA_V_PTRV_HEAD 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_V_PTRV_HEAD 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_V_PTRV_HEAD INTO WA_V_PTRV_HEAD. *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 ABRJ1 CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_V_PTRV_HEAD-ABRJ1 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_V_PTRV_HEAD-ABRJ1.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field ABRJ2 CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_V_PTRV_HEAD-ABRJ2 IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_V_PTRV_HEAD-ABRJ2.
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_V_PTRV_HEAD_STR,
MANDT TYPE STRING,
PERNR TYPE STRING,
REINR TYPE STRING,
HDVRS TYPE STRING,
MOLGA TYPE STRING,
MOREI TYPE STRING,
SCHEM TYPE STRING,
KZREA TYPE STRING,
BEREI TYPE STRING,
KZTKT TYPE STRING,
ZORT1 TYPE STRING,
ZLAND TYPE STRING,
HRGIO TYPE STRING,
NDNST TYPE STRING,
KUNDE TYPE STRING,
DATV1 TYPE STRING,
UHRV1 TYPE STRING,
DATB1 TYPE STRING,
UHRB1 TYPE STRING,
DATH1 TYPE STRING,
UHRH1 TYPE STRING,
DATR1 TYPE STRING,
UHRR1 TYPE STRING,
AGRZ1 TYPE STRING,
GRGIO TYPE STRING,
GRBER TYPE STRING,
UZKVG TYPE STRING,
ZUSAG TYPE STRING,
ENDRG TYPE STRING,
DEPAR TYPE STRING,
ARRVL TYPE STRING,
RETRN TYPE STRING,
DATES TYPE STRING,
TIMES TYPE STRING,
UNAME TYPE STRING,
REPID TYPE STRING,
DANTN TYPE STRING,
FINTN TYPE STRING,
REQUEST TYPE STRING,
TRAVEL_PLAN TYPE STRING,
EXPENSES TYPE STRING,
ST_TRGTG TYPE STRING,
ST_TRGALL TYPE STRING,
PERIODENART TYPE STRING,
DAT_REDUC1 TYPE STRING,
DAT_REDUC2 TYPE STRING,
DATV1_DIENST TYPE STRING,
UHRV1_DIENST TYPE STRING,
DATB1_DIENST TYPE STRING,
UHRB1_DIENST TYPE STRING,
ABORDNUNG TYPE STRING,
ST_TRG_TYP TYPE STRING,
ST_WOHN_TYP TYPE STRING,
KEIN_REISEGELD TYPE STRING,
TAX_PER_DIEM TYPE STRING,
TAX_PD_MAN TYPE STRING,
TAX_OV_MAN TYPE STRING,
EXCHANGE_DATE TYPE STRING,
ROUNDING TYPE STRING,
DZ_LIMIT_180 TYPE STRING,
CALID TYPE STRING,
DURATION_TRIP_BREAKS TYPE STRING,
ADDR_DEPAR TYPE STRING,
ADDR_ARRVL TYPE STRING,
PERIO TYPE STRING,
PDVRS TYPE STRING,
PDATV TYPE STRING,
PUHRV TYPE STRING,
PDATB TYPE STRING,
PUHRB TYPE STRING,
DRUCK TYPE STRING,
ANTRG TYPE STRING,
ABREC TYPE STRING,
UEBLG TYPE STRING,
UEBRF TYPE STRING,
UEBDT TYPE STRING,
TLOCK TYPE STRING,
WAERS TYPE STRING,
ABRJ1 TYPE STRING,
ABRP1 TYPE STRING,
PERM1 TYPE STRING,
ABKR1 TYPE STRING,
BEGP1 TYPE STRING,
ENDP1 TYPE STRING,
ABRJ2 TYPE STRING,
ABRP2 TYPE STRING,
PERM2 TYPE STRING,
ABKR2 TYPE STRING,
BEGP2 TYPE STRING,
ENDP2 TYPE STRING,
ACCDT TYPE STRING,
ACCTM TYPE STRING,
RUNID TYPE STRING,
VERPA TYPE STRING,
UEBKZ TYPE STRING,
ANUEP TYPE STRING,
NO_MILES TYPE STRING,
LSTAY TYPE STRING,
KATRE_STATUS TYPE STRING,
KATRE_ID TYPE STRING,
KATRE_DELID TYPE STRING,
KATRE_SAPDELID TYPE STRING,
TR_DOPP_ANZAHL TYPE STRING,
TR_EINF_ANZAHL TYPE STRING,
TR_ENTFERNUNG TYPE STRING,
VU_EA_DOPP_ANZ TYPE STRING,
VU_EA_EINF_ANZ TYPE STRING,
VU_EA_ENTFERN TYPE STRING,
VU_EA_KM_SATZ TYPE STRING,
NU_EA_DOPP_ANZ TYPE STRING,
NU_EA_EINF_ANZ TYPE STRING,
NU_EA_ENTFERN TYPE STRING,
NU_EA_KM_SATZ TYPE STRING,
V_UNENTGELTLICH TYPE STRING,
U_UNENTGELTLICH TYPE STRING,
REDUC_ERGRU TYPE STRING,
NOT_PAID TYPE STRING,
WEG_ERH_MAX TYPE STRING,
ERH_DIENST_INT TYPE STRING,
ENTF_WO_DO TYPE STRING,
DRITTMITTEL TYPE STRING,
ANTRAG_GWE TYPE STRING,
POLICY_VIOLATION TYPE STRING,
EXCEPTION_FLAG TYPE STRING,
NR_RECEIPTS TYPE STRING,
PERM_TRIP_APPR TYPE STRING,
TR_NR_FROM_HOME TYPE STRING,
VAT_STATUS TYPE STRING,
EST_COST_PLAN TYPE STRING,
EST_COST_REQ TYPE STRING,
REASON TYPE STRING,
LSTAY_ACC TYPE STRING,
EXCL_PERIOD_EXC TYPE STRING,
TAX_TRIP TYPE STRING,
SEQNO TYPE STRING,
ADDIT_AMNT TYPE STRING,
SUM_REIMBU TYPE STRING,
SUM_ADVANC TYPE STRING,
SUM_PAYOUT TYPE STRING,
SUM_PAIDCO TYPE STRING,
TRIP_TOTAL TYPE STRING,
PD_FOOD TYPE STRING,
PD_HOUSING TYPE STRING,
PD_MILEAGE TYPE STRING,
CURRENCY TYPE STRING,
M_TOTAL TYPE STRING,
TRIPDUR TYPE STRING,
CHNGDATE TYPE STRING,
CHNGTIME TYPE STRING,
TXF_FOOD TYPE STRING,
PD_POCKET_MON TYPE STRING,
PD_PUB_TRANS TYPE STRING,
PD_LOC_TRANS TYPE STRING,
PTRV_TAX_COMP TYPE STRING,
NUMBER_OF_IMAGES TYPE STRING,END OF T_EKKO_STR. DATA: WA_V_PTRV_HEAD_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_V_PTRV_HEAD_STR-MANDT sy-vline
WA_V_PTRV_HEAD_STR-PERNR sy-vline
WA_V_PTRV_HEAD_STR-REINR sy-vline
WA_V_PTRV_HEAD_STR-HDVRS sy-vline
WA_V_PTRV_HEAD_STR-MOLGA sy-vline
WA_V_PTRV_HEAD_STR-MOREI sy-vline
WA_V_PTRV_HEAD_STR-SCHEM sy-vline
WA_V_PTRV_HEAD_STR-KZREA sy-vline
WA_V_PTRV_HEAD_STR-BEREI sy-vline
WA_V_PTRV_HEAD_STR-KZTKT sy-vline
WA_V_PTRV_HEAD_STR-ZORT1 sy-vline
WA_V_PTRV_HEAD_STR-ZLAND sy-vline
WA_V_PTRV_HEAD_STR-HRGIO sy-vline
WA_V_PTRV_HEAD_STR-NDNST sy-vline
WA_V_PTRV_HEAD_STR-KUNDE sy-vline
WA_V_PTRV_HEAD_STR-DATV1 sy-vline
WA_V_PTRV_HEAD_STR-UHRV1 sy-vline
WA_V_PTRV_HEAD_STR-DATB1 sy-vline
WA_V_PTRV_HEAD_STR-UHRB1 sy-vline
WA_V_PTRV_HEAD_STR-DATH1 sy-vline
WA_V_PTRV_HEAD_STR-UHRH1 sy-vline
WA_V_PTRV_HEAD_STR-DATR1 sy-vline
WA_V_PTRV_HEAD_STR-UHRR1 sy-vline
WA_V_PTRV_HEAD_STR-AGRZ1 sy-vline
WA_V_PTRV_HEAD_STR-GRGIO sy-vline
WA_V_PTRV_HEAD_STR-GRBER sy-vline
WA_V_PTRV_HEAD_STR-UZKVG sy-vline
WA_V_PTRV_HEAD_STR-ZUSAG sy-vline
WA_V_PTRV_HEAD_STR-ENDRG sy-vline
WA_V_PTRV_HEAD_STR-DEPAR sy-vline
WA_V_PTRV_HEAD_STR-ARRVL sy-vline
WA_V_PTRV_HEAD_STR-RETRN sy-vline
WA_V_PTRV_HEAD_STR-DATES sy-vline
WA_V_PTRV_HEAD_STR-TIMES sy-vline
WA_V_PTRV_HEAD_STR-UNAME sy-vline
WA_V_PTRV_HEAD_STR-REPID sy-vline
WA_V_PTRV_HEAD_STR-DANTN sy-vline
WA_V_PTRV_HEAD_STR-FINTN sy-vline
WA_V_PTRV_HEAD_STR-REQUEST sy-vline
WA_V_PTRV_HEAD_STR-TRAVEL_PLAN sy-vline
WA_V_PTRV_HEAD_STR-EXPENSES sy-vline
WA_V_PTRV_HEAD_STR-ST_TRGTG sy-vline
WA_V_PTRV_HEAD_STR-ST_TRGALL sy-vline
WA_V_PTRV_HEAD_STR-PERIODENART sy-vline
WA_V_PTRV_HEAD_STR-DAT_REDUC1 sy-vline
WA_V_PTRV_HEAD_STR-DAT_REDUC2 sy-vline
WA_V_PTRV_HEAD_STR-DATV1_DIENST sy-vline
WA_V_PTRV_HEAD_STR-UHRV1_DIENST sy-vline
WA_V_PTRV_HEAD_STR-DATB1_DIENST sy-vline
WA_V_PTRV_HEAD_STR-UHRB1_DIENST sy-vline
WA_V_PTRV_HEAD_STR-ABORDNUNG sy-vline
WA_V_PTRV_HEAD_STR-ST_TRG_TYP sy-vline
WA_V_PTRV_HEAD_STR-ST_WOHN_TYP sy-vline
WA_V_PTRV_HEAD_STR-KEIN_REISEGELD sy-vline
WA_V_PTRV_HEAD_STR-TAX_PER_DIEM sy-vline
WA_V_PTRV_HEAD_STR-TAX_PD_MAN sy-vline
WA_V_PTRV_HEAD_STR-TAX_OV_MAN sy-vline
WA_V_PTRV_HEAD_STR-EXCHANGE_DATE sy-vline
WA_V_PTRV_HEAD_STR-ROUNDING sy-vline
WA_V_PTRV_HEAD_STR-DZ_LIMIT_180 sy-vline
WA_V_PTRV_HEAD_STR-CALID sy-vline
WA_V_PTRV_HEAD_STR-DURATION_TRIP_BREAKS sy-vline
WA_V_PTRV_HEAD_STR-ADDR_DEPAR sy-vline
WA_V_PTRV_HEAD_STR-ADDR_ARRVL sy-vline
WA_V_PTRV_HEAD_STR-PERIO sy-vline
WA_V_PTRV_HEAD_STR-PDVRS sy-vline
WA_V_PTRV_HEAD_STR-PDATV sy-vline
WA_V_PTRV_HEAD_STR-PUHRV sy-vline
WA_V_PTRV_HEAD_STR-PDATB sy-vline
WA_V_PTRV_HEAD_STR-PUHRB sy-vline
WA_V_PTRV_HEAD_STR-DRUCK sy-vline
WA_V_PTRV_HEAD_STR-ANTRG sy-vline
WA_V_PTRV_HEAD_STR-ABREC sy-vline
WA_V_PTRV_HEAD_STR-UEBLG sy-vline
WA_V_PTRV_HEAD_STR-UEBRF sy-vline
WA_V_PTRV_HEAD_STR-UEBDT sy-vline
WA_V_PTRV_HEAD_STR-TLOCK sy-vline
WA_V_PTRV_HEAD_STR-WAERS sy-vline
WA_V_PTRV_HEAD_STR-ABRJ1 sy-vline
WA_V_PTRV_HEAD_STR-ABRP1 sy-vline
WA_V_PTRV_HEAD_STR-PERM1 sy-vline
WA_V_PTRV_HEAD_STR-ABKR1 sy-vline
WA_V_PTRV_HEAD_STR-BEGP1 sy-vline
WA_V_PTRV_HEAD_STR-ENDP1 sy-vline
WA_V_PTRV_HEAD_STR-ABRJ2 sy-vline
WA_V_PTRV_HEAD_STR-ABRP2 sy-vline
WA_V_PTRV_HEAD_STR-PERM2 sy-vline
WA_V_PTRV_HEAD_STR-ABKR2 sy-vline
WA_V_PTRV_HEAD_STR-BEGP2 sy-vline
WA_V_PTRV_HEAD_STR-ENDP2 sy-vline
WA_V_PTRV_HEAD_STR-ACCDT sy-vline
WA_V_PTRV_HEAD_STR-ACCTM sy-vline
WA_V_PTRV_HEAD_STR-RUNID sy-vline
WA_V_PTRV_HEAD_STR-VERPA sy-vline
WA_V_PTRV_HEAD_STR-UEBKZ sy-vline
WA_V_PTRV_HEAD_STR-ANUEP sy-vline
WA_V_PTRV_HEAD_STR-NO_MILES sy-vline
WA_V_PTRV_HEAD_STR-LSTAY sy-vline
WA_V_PTRV_HEAD_STR-KATRE_STATUS sy-vline
WA_V_PTRV_HEAD_STR-KATRE_ID sy-vline
WA_V_PTRV_HEAD_STR-KATRE_DELID sy-vline
WA_V_PTRV_HEAD_STR-KATRE_SAPDELID sy-vline
WA_V_PTRV_HEAD_STR-TR_DOPP_ANZAHL sy-vline
WA_V_PTRV_HEAD_STR-TR_EINF_ANZAHL sy-vline
WA_V_PTRV_HEAD_STR-TR_ENTFERNUNG sy-vline
WA_V_PTRV_HEAD_STR-VU_EA_DOPP_ANZ sy-vline
WA_V_PTRV_HEAD_STR-VU_EA_EINF_ANZ sy-vline
WA_V_PTRV_HEAD_STR-VU_EA_ENTFERN sy-vline
WA_V_PTRV_HEAD_STR-VU_EA_KM_SATZ sy-vline
WA_V_PTRV_HEAD_STR-NU_EA_DOPP_ANZ sy-vline
WA_V_PTRV_HEAD_STR-NU_EA_EINF_ANZ sy-vline
WA_V_PTRV_HEAD_STR-NU_EA_ENTFERN sy-vline
WA_V_PTRV_HEAD_STR-NU_EA_KM_SATZ sy-vline
WA_V_PTRV_HEAD_STR-V_UNENTGELTLICH sy-vline
WA_V_PTRV_HEAD_STR-U_UNENTGELTLICH sy-vline
WA_V_PTRV_HEAD_STR-REDUC_ERGRU sy-vline
WA_V_PTRV_HEAD_STR-NOT_PAID sy-vline
WA_V_PTRV_HEAD_STR-WEG_ERH_MAX sy-vline
WA_V_PTRV_HEAD_STR-ERH_DIENST_INT sy-vline
WA_V_PTRV_HEAD_STR-ENTF_WO_DO sy-vline
WA_V_PTRV_HEAD_STR-DRITTMITTEL sy-vline
WA_V_PTRV_HEAD_STR-ANTRAG_GWE sy-vline
WA_V_PTRV_HEAD_STR-POLICY_VIOLATION sy-vline
WA_V_PTRV_HEAD_STR-EXCEPTION_FLAG sy-vline
WA_V_PTRV_HEAD_STR-NR_RECEIPTS sy-vline
WA_V_PTRV_HEAD_STR-PERM_TRIP_APPR sy-vline
WA_V_PTRV_HEAD_STR-TR_NR_FROM_HOME sy-vline
WA_V_PTRV_HEAD_STR-VAT_STATUS sy-vline
WA_V_PTRV_HEAD_STR-EST_COST_PLAN sy-vline
WA_V_PTRV_HEAD_STR-EST_COST_REQ sy-vline
WA_V_PTRV_HEAD_STR-REASON sy-vline
WA_V_PTRV_HEAD_STR-LSTAY_ACC sy-vline
WA_V_PTRV_HEAD_STR-EXCL_PERIOD_EXC sy-vline
WA_V_PTRV_HEAD_STR-TAX_TRIP sy-vline
WA_V_PTRV_HEAD_STR-SEQNO sy-vline
WA_V_PTRV_HEAD_STR-ADDIT_AMNT sy-vline
WA_V_PTRV_HEAD_STR-SUM_REIMBU sy-vline
WA_V_PTRV_HEAD_STR-SUM_ADVANC sy-vline
WA_V_PTRV_HEAD_STR-SUM_PAYOUT sy-vline
WA_V_PTRV_HEAD_STR-SUM_PAIDCO sy-vline
WA_V_PTRV_HEAD_STR-TRIP_TOTAL sy-vline
WA_V_PTRV_HEAD_STR-PD_FOOD sy-vline
WA_V_PTRV_HEAD_STR-PD_HOUSING sy-vline
WA_V_PTRV_HEAD_STR-PD_MILEAGE sy-vline
WA_V_PTRV_HEAD_STR-CURRENCY sy-vline
WA_V_PTRV_HEAD_STR-M_TOTAL sy-vline
WA_V_PTRV_HEAD_STR-TRIPDUR sy-vline
WA_V_PTRV_HEAD_STR-CHNGDATE sy-vline
WA_V_PTRV_HEAD_STR-CHNGTIME sy-vline
WA_V_PTRV_HEAD_STR-TXF_FOOD sy-vline
WA_V_PTRV_HEAD_STR-PD_POCKET_MON sy-vline
WA_V_PTRV_HEAD_STR-PD_PUB_TRANS sy-vline
WA_V_PTRV_HEAD_STR-PD_LOC_TRANS sy-vline
WA_V_PTRV_HEAD_STR-PTRV_TAX_COMP sy-vline
WA_V_PTRV_HEAD_STR-NUMBER_OF_IMAGES sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.