ABAP Select data from SAP table PCH_WINDATA 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 PCH_WINDATA 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 PCH_WINDATA. 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 PCH_WINDATA 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_PCH_WINDATA TYPE STANDARD TABLE OF PCH_WINDATA,
      WA_PCH_WINDATA TYPE PCH_WINDATA,
      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: <PCH_WINDATA> TYPE PCH_WINDATA.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PCH_WINDATA
*  INTO TABLE @DATA(IT_PCH_WINDATA2).
*--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_PCH_WINDATA INDEX 1 INTO DATA(WA_PCH_WINDATA2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PCH_WINDATA ASSIGNING <PCH_WINDATA>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PCH_WINDATA>-REFDA = 1.
<PCH_WINDATA>-PERNR = 1.
<PCH_WINDATA>-ENAME = 1.
<PCH_WINDATA>-AHVNR = 1.
<PCH_WINDATA>-STRAS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PCH_WINDATA-PSTLZ, sy-vline,
WA_PCH_WINDATA-ORT01, sy-vline,
WA_PCH_WINDATA-LAND1, sy-vline,
WA_PCH_WINDATA-FROMCOUNTRY, sy-vline,
WA_PCH_WINDATA-NAME1, sy-vline,
WA_PCH_WINDATA-NAME2, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PCH_WINDATA 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_PCH_WINDATA 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_PCH_WINDATA INTO WA_PCH_WINDATA. *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 ALPHA, internal->external for field KOSTL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PCH_WINDATA-KOSTL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PCH_WINDATA-KOSTL.
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_PCH_WINDATA_STR,
REFDA TYPE STRING,
PERNR TYPE STRING,
ENAME TYPE STRING,
AHVNR TYPE STRING,
STRAS TYPE STRING,
PSTLZ TYPE STRING,
ORT01 TYPE STRING,
LAND1 TYPE STRING,
FROMCOUNTRY TYPE STRING,
NAME1 TYPE STRING,
NAME2 TYPE STRING,
KOSTL TYPE STRING,
KOSTL_TXT TYPE STRING,
BUKRS TYPE STRING,
BUKRS_TXT TYPE STRING,
WERKS TYPE STRING,
WERKS_TXT TYPE STRING,
PERSG TYPE STRING,
PERSG_TXT TYPE STRING,
ABKRS TYPE STRING,
ABRKS_TXT TYPE STRING,
PLANS TYPE STRING,
PLANS_TXT TYPE STRING,
DATUM1 TYPE STRING,
DATUM1_SLL TYPE STRING,
SACHP_SLM TYPE STRING,
BTRTL TYPE STRING,
BTRTL_TXT TYPE STRING,
PERSK TYPE STRING,
PERSK_TXT TYPE STRING,
ANSVH TYPE STRING,
ANSVH_TXT TYPE STRING,
STELL TYPE STRING,
STELL_TXT TYPE STRING,
SACHP TYPE STRING,
SACHP_TXT TYPE STRING,
ENTRYDATE TYPE STRING,
LEAVEDATE TYPE STRING,
PERNR_0032 TYPE STRING,
GEBNR TYPE STRING,
ZIMNR TYPE STRING,
TEL01 TYPE STRING,
TEL02 TYPE STRING,
EMPCT TYPE STRING,
WOSTD TYPE STRING,
TEILK TYPE STRING,
TEILK_TXT TYPE STRING,
SCHKZ TYPE STRING,
ZTERF TYPE STRING,
ZTERF_TXT TYPE STRING,
MONSAL TYPE STRING,
BEGDA TYPE STRING,
EMFTX TYPE STRING,
ZLSCH_SLL TYPE STRING,
ZLSCH TYPE STRING,
BANKL TYPE STRING,
BANAM TYPE STRING,
BAORT TYPE STRING,
BANKN TYPE STRING,
ZWECK TYPE STRING,
WAERS TYPE STRING,
AHVPF TYPE STRING,
AHVPF_TXT TYPE STRING,
INTBT TYPE STRING,
UVGPF TYPE STRING,
UVGPF_TXT TYPE STRING,
NBUPF TYPE STRING,
NBUPF_TXT TYPE STRING,
FAMKA TYPE STRING,
FAMKT_AE_TXT TYPE STRING,
FAMKA_TXT TYPE STRING,
AHV_UI_TXT TYPE STRING,
AHV_UI_VAL1 TYPE STRING,
AHV_UI_VAL2 TYPE STRING,
IA_NIA_TXT TYPE STRING,
IA_NIA_VAL1 TYPE STRING,
IA_NIA_VAL2 TYPE STRING,
SFO TYPE STRING,
SFO_TXT TYPE STRING,
AL TYPE STRING,
AL_TXT TYPE STRING,
FAK TYPE STRING,
FAK_TXT TYPE STRING,
FAK_VAL1 TYPE STRING,
FAK_VAL2 TYPE STRING,
UVG TYPE STRING,
UVG_TXT TYPE STRING,
NBUZ TYPE STRING,
NBUZ_TXT TYPE STRING,
QSTPF TYPE STRING,
QSTPF_TXT TYPE STRING,
ARBOR TYPE STRING,
ARBOR_AE TYPE STRING,
UNENT TYPE STRING,
UNENT_01 TYPE STRING,
UNENT_AE_TXT TYPE STRING,
UNENT_01_TXT TYPE STRING,
KANTI TYPE STRING,
KANTI_01 TYPE STRING,
KANTI_AE_TXT TYPE STRING,
KANTI_01_TXT TYPE STRING,
LUNCH TYPE STRING,
LUNCH_01 TYPE STRING,
LUNCH_AE_TXT TYPE STRING,
LUNCH_01_TXT TYPE STRING,
BETEI TYPE STRING,
BETEI_01 TYPE STRING,
BETEI_AE_TXT TYPE STRING,
BETEI_01_TXT TYPE STRING,
LAW TYPE STRING,
LAW_TXT TYPE STRING,
QST TYPE STRING,
QST_TXT TYPE STRING,
BERKA TYPE STRING,
BERKA_TXT TYPE STRING,
ASM TYPE STRING,
ASM_TXT TYPE STRING,
PERNR_0022 TYPE STRING,
SLART_TXT TYPE STRING,
SLABS_TXT TYPE STRING,
KAST_TXT TYPE STRING,
EINDT TYPE STRING,
GESCH_TXT TYPE STRING,
NATIO_TXT TYPE STRING,
GBPAS TYPE STRING,
GBORT TYPE STRING,
AGE_YR TYPE STRING,
FAMST_TXT TYPE STRING,
VORPL_01 TYPE STRING,
VORPL_SLS TYPE STRING,
VORPL_01_TXT TYPE STRING,
FANAM TYPE STRING,
FAVOR TYPE STRING,
FGBDT_SLL TYPE STRING,
FGBDT TYPE STRING,
PERNR_0021_0001 TYPE STRING,
PERNR_0021_0002 TYPE STRING,
PERNR_0039 TYPE STRING,
PK_SLM TYPE STRING,
PK_TXT TYPE STRING,
PERNR_0278 TYPE STRING,
NAME_FAM TYPE STRING,
NAME_KIND TYPE STRING,
NAME_SOCASS TYPE STRING,
NAME_UVG TYPE STRING,
USR_NAME1 TYPE STRING,
USR_NAME2 TYPE STRING,
LT_ADDRESS_LINES TYPE STRING,
LT_WINDATA_KIND TYPE STRING,
TITLE TYPE STRING,
PK_TXT1 TYPE STRING,
PK_SLM1 TYPE STRING,
NAHVN TYPE STRING,
VNOU2 TYPE STRING,
IBAN TYPE STRING,
SWIFT TYPE STRING,END OF T_EKKO_STR. DATA: WA_PCH_WINDATA_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_PCH_WINDATA_STR-REFDA sy-vline
WA_PCH_WINDATA_STR-PERNR sy-vline
WA_PCH_WINDATA_STR-ENAME sy-vline
WA_PCH_WINDATA_STR-AHVNR sy-vline
WA_PCH_WINDATA_STR-STRAS sy-vline
WA_PCH_WINDATA_STR-PSTLZ sy-vline
WA_PCH_WINDATA_STR-ORT01 sy-vline
WA_PCH_WINDATA_STR-LAND1 sy-vline
WA_PCH_WINDATA_STR-FROMCOUNTRY sy-vline
WA_PCH_WINDATA_STR-NAME1 sy-vline
WA_PCH_WINDATA_STR-NAME2 sy-vline
WA_PCH_WINDATA_STR-KOSTL sy-vline
WA_PCH_WINDATA_STR-KOSTL_TXT sy-vline
WA_PCH_WINDATA_STR-BUKRS sy-vline
WA_PCH_WINDATA_STR-BUKRS_TXT sy-vline
WA_PCH_WINDATA_STR-WERKS sy-vline
WA_PCH_WINDATA_STR-WERKS_TXT sy-vline
WA_PCH_WINDATA_STR-PERSG sy-vline
WA_PCH_WINDATA_STR-PERSG_TXT sy-vline
WA_PCH_WINDATA_STR-ABKRS sy-vline
WA_PCH_WINDATA_STR-ABRKS_TXT sy-vline
WA_PCH_WINDATA_STR-PLANS sy-vline
WA_PCH_WINDATA_STR-PLANS_TXT sy-vline
WA_PCH_WINDATA_STR-DATUM1 sy-vline
WA_PCH_WINDATA_STR-DATUM1_SLL sy-vline
WA_PCH_WINDATA_STR-SACHP_SLM sy-vline
WA_PCH_WINDATA_STR-BTRTL sy-vline
WA_PCH_WINDATA_STR-BTRTL_TXT sy-vline
WA_PCH_WINDATA_STR-PERSK sy-vline
WA_PCH_WINDATA_STR-PERSK_TXT sy-vline
WA_PCH_WINDATA_STR-ANSVH sy-vline
WA_PCH_WINDATA_STR-ANSVH_TXT sy-vline
WA_PCH_WINDATA_STR-STELL sy-vline
WA_PCH_WINDATA_STR-STELL_TXT sy-vline
WA_PCH_WINDATA_STR-SACHP sy-vline
WA_PCH_WINDATA_STR-SACHP_TXT sy-vline
WA_PCH_WINDATA_STR-ENTRYDATE sy-vline
WA_PCH_WINDATA_STR-LEAVEDATE sy-vline
WA_PCH_WINDATA_STR-PERNR_0032 sy-vline
WA_PCH_WINDATA_STR-GEBNR sy-vline
WA_PCH_WINDATA_STR-ZIMNR sy-vline
WA_PCH_WINDATA_STR-TEL01 sy-vline
WA_PCH_WINDATA_STR-TEL02 sy-vline
WA_PCH_WINDATA_STR-EMPCT sy-vline
WA_PCH_WINDATA_STR-WOSTD sy-vline
WA_PCH_WINDATA_STR-TEILK sy-vline
WA_PCH_WINDATA_STR-TEILK_TXT sy-vline
WA_PCH_WINDATA_STR-SCHKZ sy-vline
WA_PCH_WINDATA_STR-ZTERF sy-vline
WA_PCH_WINDATA_STR-ZTERF_TXT sy-vline
WA_PCH_WINDATA_STR-MONSAL sy-vline
WA_PCH_WINDATA_STR-BEGDA sy-vline
WA_PCH_WINDATA_STR-EMFTX sy-vline
WA_PCH_WINDATA_STR-ZLSCH_SLL sy-vline
WA_PCH_WINDATA_STR-ZLSCH sy-vline
WA_PCH_WINDATA_STR-BANKL sy-vline
WA_PCH_WINDATA_STR-BANAM sy-vline
WA_PCH_WINDATA_STR-BAORT sy-vline
WA_PCH_WINDATA_STR-BANKN sy-vline
WA_PCH_WINDATA_STR-ZWECK sy-vline
WA_PCH_WINDATA_STR-WAERS sy-vline
WA_PCH_WINDATA_STR-AHVPF sy-vline
WA_PCH_WINDATA_STR-AHVPF_TXT sy-vline
WA_PCH_WINDATA_STR-INTBT sy-vline
WA_PCH_WINDATA_STR-UVGPF sy-vline
WA_PCH_WINDATA_STR-UVGPF_TXT sy-vline
WA_PCH_WINDATA_STR-NBUPF sy-vline
WA_PCH_WINDATA_STR-NBUPF_TXT sy-vline
WA_PCH_WINDATA_STR-FAMKA sy-vline
WA_PCH_WINDATA_STR-FAMKT_AE_TXT sy-vline
WA_PCH_WINDATA_STR-FAMKA_TXT sy-vline
WA_PCH_WINDATA_STR-AHV_UI_TXT sy-vline
WA_PCH_WINDATA_STR-AHV_UI_VAL1 sy-vline
WA_PCH_WINDATA_STR-AHV_UI_VAL2 sy-vline
WA_PCH_WINDATA_STR-IA_NIA_TXT sy-vline
WA_PCH_WINDATA_STR-IA_NIA_VAL1 sy-vline
WA_PCH_WINDATA_STR-IA_NIA_VAL2 sy-vline
WA_PCH_WINDATA_STR-SFO sy-vline
WA_PCH_WINDATA_STR-SFO_TXT sy-vline
WA_PCH_WINDATA_STR-AL sy-vline
WA_PCH_WINDATA_STR-AL_TXT sy-vline
WA_PCH_WINDATA_STR-FAK sy-vline
WA_PCH_WINDATA_STR-FAK_TXT sy-vline
WA_PCH_WINDATA_STR-FAK_VAL1 sy-vline
WA_PCH_WINDATA_STR-FAK_VAL2 sy-vline
WA_PCH_WINDATA_STR-UVG sy-vline
WA_PCH_WINDATA_STR-UVG_TXT sy-vline
WA_PCH_WINDATA_STR-NBUZ sy-vline
WA_PCH_WINDATA_STR-NBUZ_TXT sy-vline
WA_PCH_WINDATA_STR-QSTPF sy-vline
WA_PCH_WINDATA_STR-QSTPF_TXT sy-vline
WA_PCH_WINDATA_STR-ARBOR sy-vline
WA_PCH_WINDATA_STR-ARBOR_AE sy-vline
WA_PCH_WINDATA_STR-UNENT sy-vline
WA_PCH_WINDATA_STR-UNENT_01 sy-vline
WA_PCH_WINDATA_STR-UNENT_AE_TXT sy-vline
WA_PCH_WINDATA_STR-UNENT_01_TXT sy-vline
WA_PCH_WINDATA_STR-KANTI sy-vline
WA_PCH_WINDATA_STR-KANTI_01 sy-vline
WA_PCH_WINDATA_STR-KANTI_AE_TXT sy-vline
WA_PCH_WINDATA_STR-KANTI_01_TXT sy-vline
WA_PCH_WINDATA_STR-LUNCH sy-vline
WA_PCH_WINDATA_STR-LUNCH_01 sy-vline
WA_PCH_WINDATA_STR-LUNCH_AE_TXT sy-vline
WA_PCH_WINDATA_STR-LUNCH_01_TXT sy-vline
WA_PCH_WINDATA_STR-BETEI sy-vline
WA_PCH_WINDATA_STR-BETEI_01 sy-vline
WA_PCH_WINDATA_STR-BETEI_AE_TXT sy-vline
WA_PCH_WINDATA_STR-BETEI_01_TXT sy-vline
WA_PCH_WINDATA_STR-LAW sy-vline
WA_PCH_WINDATA_STR-LAW_TXT sy-vline
WA_PCH_WINDATA_STR-QST sy-vline
WA_PCH_WINDATA_STR-QST_TXT sy-vline
WA_PCH_WINDATA_STR-BERKA sy-vline
WA_PCH_WINDATA_STR-BERKA_TXT sy-vline
WA_PCH_WINDATA_STR-ASM sy-vline
WA_PCH_WINDATA_STR-ASM_TXT sy-vline
WA_PCH_WINDATA_STR-PERNR_0022 sy-vline
WA_PCH_WINDATA_STR-SLART_TXT sy-vline
WA_PCH_WINDATA_STR-SLABS_TXT sy-vline
WA_PCH_WINDATA_STR-KAST_TXT sy-vline
WA_PCH_WINDATA_STR-EINDT sy-vline
WA_PCH_WINDATA_STR-GESCH_TXT sy-vline
WA_PCH_WINDATA_STR-NATIO_TXT sy-vline
WA_PCH_WINDATA_STR-GBPAS sy-vline
WA_PCH_WINDATA_STR-GBORT sy-vline
WA_PCH_WINDATA_STR-AGE_YR sy-vline
WA_PCH_WINDATA_STR-FAMST_TXT sy-vline
WA_PCH_WINDATA_STR-VORPL_01 sy-vline
WA_PCH_WINDATA_STR-VORPL_SLS sy-vline
WA_PCH_WINDATA_STR-VORPL_01_TXT sy-vline
WA_PCH_WINDATA_STR-FANAM sy-vline
WA_PCH_WINDATA_STR-FAVOR sy-vline
WA_PCH_WINDATA_STR-FGBDT_SLL sy-vline
WA_PCH_WINDATA_STR-FGBDT sy-vline
WA_PCH_WINDATA_STR-PERNR_0021_0001 sy-vline
WA_PCH_WINDATA_STR-PERNR_0021_0002 sy-vline
WA_PCH_WINDATA_STR-PERNR_0039 sy-vline
WA_PCH_WINDATA_STR-PK_SLM sy-vline
WA_PCH_WINDATA_STR-PK_TXT sy-vline
WA_PCH_WINDATA_STR-PERNR_0278 sy-vline
WA_PCH_WINDATA_STR-NAME_FAM sy-vline
WA_PCH_WINDATA_STR-NAME_KIND sy-vline
WA_PCH_WINDATA_STR-NAME_SOCASS sy-vline
WA_PCH_WINDATA_STR-NAME_UVG sy-vline
WA_PCH_WINDATA_STR-USR_NAME1 sy-vline
WA_PCH_WINDATA_STR-USR_NAME2 sy-vline
WA_PCH_WINDATA_STR-LT_ADDRESS_LINES sy-vline
WA_PCH_WINDATA_STR-LT_WINDATA_KIND sy-vline
WA_PCH_WINDATA_STR-TITLE sy-vline
WA_PCH_WINDATA_STR-PK_TXT1 sy-vline
WA_PCH_WINDATA_STR-PK_SLM1 sy-vline
WA_PCH_WINDATA_STR-NAHVN sy-vline
WA_PCH_WINDATA_STR-VNOU2 sy-vline
WA_PCH_WINDATA_STR-IBAN sy-vline
WA_PCH_WINDATA_STR-SWIFT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.