ABAP Select data from SAP table HEAD_PERIO 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 HEAD_PERIO 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 HEAD_PERIO. 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 HEAD_PERIO 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_HEAD_PERIO TYPE STANDARD TABLE OF HEAD_PERIO,
      WA_HEAD_PERIO TYPE HEAD_PERIO,
      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: <HEAD_PERIO> TYPE HEAD_PERIO.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM HEAD_PERIO
*  INTO TABLE @DATA(IT_HEAD_PERIO2).
*--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_HEAD_PERIO INDEX 1 INTO DATA(WA_HEAD_PERIO2).


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

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

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

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

*Conversion exit ALPHA, internal->external for field ADRNRADR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_HEAD_PERIO-ADRNRADR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HEAD_PERIO-ADRNRADR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field CITY_CODEADR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_HEAD_PERIO-CITY_CODEADR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_HEAD_PERIO-CITY_CODEADR.
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_HEAD_PERIO_STR,
MANDT TYPE STRING,
PERNR TYPE STRING,
REINR TYPE STRING,
PERIO TYPE STRING,
PDVRS 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,
HDVRS 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,
MAX_NIGHTS TYPE STRING,
ACT_NIGHTS TYPE STRING,
KMGES TYPE STRING,
KZPMF TYPE STRING,
PKWKL TYPE STRING,
DATFH TYPE STRING,
UHRFH TYPE STRING,
DATFZ TYPE STRING,
UHRFZ TYPE STRING,
ADRNRADR TYPE STRING,
CITYADR TYPE STRING,
CITY_DISTRICTADR TYPE STRING,
POST_CODEADR TYPE STRING,
CITY_CODEADR TYPE STRING,
STREETADR TYPE STRING,
HOUSE_NUMADR TYPE STRING,
COUNTRYADR TYPE STRING,
REGIONADR TYPE STRING,
PLAN_ACTIVITY_TYPE TYPE STRING,
ESTIMATED_COST TYPE STRING,
ESTIMATED_COST_CURR TYPE STRING,
CARRY_OTH TYPE STRING,
CARRIED_BY_OTH TYPE STRING,
SEP_ALLO_ANTR_RUECK TYPE STRING,
TRIP_TOTAL TYPE STRING,
DIFF_EXP_PLAN TYPE STRING,
DIFF_EXP_REQ TYPE STRING,END OF T_EKKO_STR. DATA: WA_HEAD_PERIO_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_HEAD_PERIO_STR-MANDT sy-vline
WA_HEAD_PERIO_STR-PERNR sy-vline
WA_HEAD_PERIO_STR-REINR sy-vline
WA_HEAD_PERIO_STR-PERIO sy-vline
WA_HEAD_PERIO_STR-PDVRS sy-vline
WA_HEAD_PERIO_STR-MOLGA sy-vline
WA_HEAD_PERIO_STR-MOREI sy-vline
WA_HEAD_PERIO_STR-SCHEM sy-vline
WA_HEAD_PERIO_STR-KZREA sy-vline
WA_HEAD_PERIO_STR-BEREI sy-vline
WA_HEAD_PERIO_STR-KZTKT sy-vline
WA_HEAD_PERIO_STR-ZORT1 sy-vline
WA_HEAD_PERIO_STR-ZLAND sy-vline
WA_HEAD_PERIO_STR-HRGIO sy-vline
WA_HEAD_PERIO_STR-NDNST sy-vline
WA_HEAD_PERIO_STR-KUNDE sy-vline
WA_HEAD_PERIO_STR-DATV1 sy-vline
WA_HEAD_PERIO_STR-UHRV1 sy-vline
WA_HEAD_PERIO_STR-DATB1 sy-vline
WA_HEAD_PERIO_STR-UHRB1 sy-vline
WA_HEAD_PERIO_STR-DATH1 sy-vline
WA_HEAD_PERIO_STR-UHRH1 sy-vline
WA_HEAD_PERIO_STR-DATR1 sy-vline
WA_HEAD_PERIO_STR-UHRR1 sy-vline
WA_HEAD_PERIO_STR-AGRZ1 sy-vline
WA_HEAD_PERIO_STR-GRGIO sy-vline
WA_HEAD_PERIO_STR-GRBER sy-vline
WA_HEAD_PERIO_STR-UZKVG sy-vline
WA_HEAD_PERIO_STR-ZUSAG sy-vline
WA_HEAD_PERIO_STR-ENDRG sy-vline
WA_HEAD_PERIO_STR-DEPAR sy-vline
WA_HEAD_PERIO_STR-ARRVL sy-vline
WA_HEAD_PERIO_STR-RETRN sy-vline
WA_HEAD_PERIO_STR-DATES sy-vline
WA_HEAD_PERIO_STR-TIMES sy-vline
WA_HEAD_PERIO_STR-UNAME sy-vline
WA_HEAD_PERIO_STR-REPID sy-vline
WA_HEAD_PERIO_STR-DANTN sy-vline
WA_HEAD_PERIO_STR-FINTN sy-vline
WA_HEAD_PERIO_STR-REQUEST sy-vline
WA_HEAD_PERIO_STR-TRAVEL_PLAN sy-vline
WA_HEAD_PERIO_STR-EXPENSES sy-vline
WA_HEAD_PERIO_STR-ST_TRGTG sy-vline
WA_HEAD_PERIO_STR-ST_TRGALL sy-vline
WA_HEAD_PERIO_STR-PERIODENART sy-vline
WA_HEAD_PERIO_STR-DAT_REDUC1 sy-vline
WA_HEAD_PERIO_STR-DAT_REDUC2 sy-vline
WA_HEAD_PERIO_STR-DATV1_DIENST sy-vline
WA_HEAD_PERIO_STR-UHRV1_DIENST sy-vline
WA_HEAD_PERIO_STR-DATB1_DIENST sy-vline
WA_HEAD_PERIO_STR-UHRB1_DIENST sy-vline
WA_HEAD_PERIO_STR-ABORDNUNG sy-vline
WA_HEAD_PERIO_STR-ST_TRG_TYP sy-vline
WA_HEAD_PERIO_STR-ST_WOHN_TYP sy-vline
WA_HEAD_PERIO_STR-KEIN_REISEGELD sy-vline
WA_HEAD_PERIO_STR-TAX_PER_DIEM sy-vline
WA_HEAD_PERIO_STR-TAX_PD_MAN sy-vline
WA_HEAD_PERIO_STR-TAX_OV_MAN sy-vline
WA_HEAD_PERIO_STR-EXCHANGE_DATE sy-vline
WA_HEAD_PERIO_STR-ROUNDING sy-vline
WA_HEAD_PERIO_STR-DZ_LIMIT_180 sy-vline
WA_HEAD_PERIO_STR-CALID sy-vline
WA_HEAD_PERIO_STR-DURATION_TRIP_BREAKS sy-vline
WA_HEAD_PERIO_STR-ADDR_DEPAR sy-vline
WA_HEAD_PERIO_STR-ADDR_ARRVL sy-vline
WA_HEAD_PERIO_STR-HDVRS sy-vline
WA_HEAD_PERIO_STR-PDATV sy-vline
WA_HEAD_PERIO_STR-PUHRV sy-vline
WA_HEAD_PERIO_STR-PDATB sy-vline
WA_HEAD_PERIO_STR-PUHRB sy-vline
WA_HEAD_PERIO_STR-DRUCK sy-vline
WA_HEAD_PERIO_STR-ANTRG sy-vline
WA_HEAD_PERIO_STR-ABREC sy-vline
WA_HEAD_PERIO_STR-UEBLG sy-vline
WA_HEAD_PERIO_STR-UEBRF sy-vline
WA_HEAD_PERIO_STR-UEBDT sy-vline
WA_HEAD_PERIO_STR-TLOCK sy-vline
WA_HEAD_PERIO_STR-WAERS sy-vline
WA_HEAD_PERIO_STR-ABRJ1 sy-vline
WA_HEAD_PERIO_STR-ABRP1 sy-vline
WA_HEAD_PERIO_STR-PERM1 sy-vline
WA_HEAD_PERIO_STR-ABKR1 sy-vline
WA_HEAD_PERIO_STR-BEGP1 sy-vline
WA_HEAD_PERIO_STR-ENDP1 sy-vline
WA_HEAD_PERIO_STR-ABRJ2 sy-vline
WA_HEAD_PERIO_STR-ABRP2 sy-vline
WA_HEAD_PERIO_STR-PERM2 sy-vline
WA_HEAD_PERIO_STR-ABKR2 sy-vline
WA_HEAD_PERIO_STR-BEGP2 sy-vline
WA_HEAD_PERIO_STR-ENDP2 sy-vline
WA_HEAD_PERIO_STR-ACCDT sy-vline
WA_HEAD_PERIO_STR-ACCTM sy-vline
WA_HEAD_PERIO_STR-RUNID sy-vline
WA_HEAD_PERIO_STR-VERPA sy-vline
WA_HEAD_PERIO_STR-UEBKZ sy-vline
WA_HEAD_PERIO_STR-ANUEP sy-vline
WA_HEAD_PERIO_STR-NO_MILES sy-vline
WA_HEAD_PERIO_STR-LSTAY sy-vline
WA_HEAD_PERIO_STR-KATRE_STATUS sy-vline
WA_HEAD_PERIO_STR-KATRE_ID sy-vline
WA_HEAD_PERIO_STR-KATRE_DELID sy-vline
WA_HEAD_PERIO_STR-KATRE_SAPDELID sy-vline
WA_HEAD_PERIO_STR-TR_DOPP_ANZAHL sy-vline
WA_HEAD_PERIO_STR-TR_EINF_ANZAHL sy-vline
WA_HEAD_PERIO_STR-TR_ENTFERNUNG sy-vline
WA_HEAD_PERIO_STR-VU_EA_DOPP_ANZ sy-vline
WA_HEAD_PERIO_STR-VU_EA_EINF_ANZ sy-vline
WA_HEAD_PERIO_STR-VU_EA_ENTFERN sy-vline
WA_HEAD_PERIO_STR-VU_EA_KM_SATZ sy-vline
WA_HEAD_PERIO_STR-NU_EA_DOPP_ANZ sy-vline
WA_HEAD_PERIO_STR-NU_EA_EINF_ANZ sy-vline
WA_HEAD_PERIO_STR-NU_EA_ENTFERN sy-vline
WA_HEAD_PERIO_STR-NU_EA_KM_SATZ sy-vline
WA_HEAD_PERIO_STR-V_UNENTGELTLICH sy-vline
WA_HEAD_PERIO_STR-U_UNENTGELTLICH sy-vline
WA_HEAD_PERIO_STR-REDUC_ERGRU sy-vline
WA_HEAD_PERIO_STR-NOT_PAID sy-vline
WA_HEAD_PERIO_STR-WEG_ERH_MAX sy-vline
WA_HEAD_PERIO_STR-ERH_DIENST_INT sy-vline
WA_HEAD_PERIO_STR-ENTF_WO_DO sy-vline
WA_HEAD_PERIO_STR-DRITTMITTEL sy-vline
WA_HEAD_PERIO_STR-ANTRAG_GWE sy-vline
WA_HEAD_PERIO_STR-POLICY_VIOLATION sy-vline
WA_HEAD_PERIO_STR-EXCEPTION_FLAG sy-vline
WA_HEAD_PERIO_STR-NR_RECEIPTS sy-vline
WA_HEAD_PERIO_STR-PERM_TRIP_APPR sy-vline
WA_HEAD_PERIO_STR-TR_NR_FROM_HOME sy-vline
WA_HEAD_PERIO_STR-VAT_STATUS sy-vline
WA_HEAD_PERIO_STR-EST_COST_PLAN sy-vline
WA_HEAD_PERIO_STR-EST_COST_REQ sy-vline
WA_HEAD_PERIO_STR-REASON sy-vline
WA_HEAD_PERIO_STR-LSTAY_ACC sy-vline
WA_HEAD_PERIO_STR-EXCL_PERIOD_EXC sy-vline
WA_HEAD_PERIO_STR-TAX_TRIP sy-vline
WA_HEAD_PERIO_STR-MAX_NIGHTS sy-vline
WA_HEAD_PERIO_STR-ACT_NIGHTS sy-vline
WA_HEAD_PERIO_STR-KMGES sy-vline
WA_HEAD_PERIO_STR-KZPMF sy-vline
WA_HEAD_PERIO_STR-PKWKL sy-vline
WA_HEAD_PERIO_STR-DATFH sy-vline
WA_HEAD_PERIO_STR-UHRFH sy-vline
WA_HEAD_PERIO_STR-DATFZ sy-vline
WA_HEAD_PERIO_STR-UHRFZ sy-vline
WA_HEAD_PERIO_STR-ADRNRADR sy-vline
WA_HEAD_PERIO_STR-CITYADR sy-vline
WA_HEAD_PERIO_STR-CITY_DISTRICTADR sy-vline
WA_HEAD_PERIO_STR-POST_CODEADR sy-vline
WA_HEAD_PERIO_STR-CITY_CODEADR sy-vline
WA_HEAD_PERIO_STR-STREETADR sy-vline
WA_HEAD_PERIO_STR-HOUSE_NUMADR sy-vline
WA_HEAD_PERIO_STR-COUNTRYADR sy-vline
WA_HEAD_PERIO_STR-REGIONADR sy-vline
WA_HEAD_PERIO_STR-PLAN_ACTIVITY_TYPE sy-vline
WA_HEAD_PERIO_STR-ESTIMATED_COST sy-vline
WA_HEAD_PERIO_STR-ESTIMATED_COST_CURR sy-vline
WA_HEAD_PERIO_STR-CARRY_OTH sy-vline
WA_HEAD_PERIO_STR-CARRIED_BY_OTH sy-vline
WA_HEAD_PERIO_STR-SEP_ALLO_ANTR_RUECK sy-vline
WA_HEAD_PERIO_STR-TRIP_TOTAL sy-vline
WA_HEAD_PERIO_STR-DIFF_EXP_PLAN sy-vline
WA_HEAD_PERIO_STR-DIFF_EXP_REQ sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.