ABAP Select data from SAP table PMY_FORM_EA 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 PMY_FORM_EA 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 PMY_FORM_EA. 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 PMY_FORM_EA 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_PMY_FORM_EA TYPE STANDARD TABLE OF PMY_FORM_EA, WA_PMY_FORM_EA TYPE PMY_FORM_EA, 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: <PMY_FORM_EA> TYPE PMY_FORM_EA. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_PMY_FORM_EA. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM PMY_FORM_EA INTO TABLE IT_PMY_FORM_EA. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM PMY_FORM_EA * INTO TABLE @DATA(IT_PMY_FORM_EA2). *--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_PMY_FORM_EA INDEX 1 INTO DATA(WA_PMY_FORM_EA2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_PMY_FORM_EA ASSIGNING <PMY_FORM_EA>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<PMY_FORM_EA>-SERNR = 1.
<PMY_FORM_EA>-TNOER = 1.
<PMY_FORM_EA>-TNOEE = 1.
<PMY_FORM_EA>-YEAR2 = 1.
<PMY_FORM_EA>-EMP_NAME = 1.
ENDLOOP. LOOP AT IT_PMY_FORM_EA INTO WA_PMY_FORM_EA. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_PMY_FORM_EA-DESIGNATION, sy-vline,
WA_PMY_FORM_EA-PERNR, sy-vline,
WA_PMY_FORM_EA-NEW_IC_NUM, sy-vline,
WA_PMY_FORM_EA-OLD_IC_NUM, sy-vline,
WA_PMY_FORM_EA-EPFNO, sy-vline,
WA_PMY_FORM_EA-COMM_DAT, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PMY_FORM_EA 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_PMY_FORM_EA 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_PMY_FORM_EA INTO WA_PMY_FORM_EA. *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_PMY_FORM_EA_STR,
SERNR TYPE STRING,
TNOER TYPE STRING,
TNOEE TYPE STRING,
YEAR2 TYPE STRING,
EMP_NAME TYPE STRING,
DESIGNATION TYPE STRING,
PERNR TYPE STRING,
NEW_IC_NUM TYPE STRING,
OLD_IC_NUM TYPE STRING,
EPFNO TYPE STRING,
COMM_DAT TYPE STRING,
CES_DAT TYPE STRING,
GROSS_SALARY TYPE STRING,
FEES_COMM_BON TYPE STRING,
GROSS_TIPS TYPE STRING,
INCOMETAX TYPE STRING,
MOTORCAR_PETROL TYPE STRING,
DRIVER_VALUE TYPE STRING,
SEMIFURNISHED TYPE STRING,
FULLYFURNISHED TYPE STRING,
FURNITUREFITTINGS TYPE STRING,
KITCHEN_EQUIPMENT TYPE STRING,
ENTERTAINMENT TYPE STRING,
HOUSEHOLD_SERVANT TYPE STRING,
BENEFITOF_LEAVE TYPE STRING,
FOOD_GARMENT TYPE STRING,
LIVING_ACCOMODATION TYPE STRING,
REFUND TYPE STRING,
COMPOF_LOSSOF_EMPLOYMENT TYPE STRING,
PENSIONS TYPE STRING,
ANNUITIES TYPE STRING,
TOTAL TYPE STRING,
STANDARD_AMOUNT TYPE STRING,
CP38_DEDUCTION TYPE STRING,
ZKT_DEDUCTION TYPE STRING,
CRD TYPE STRING,
CNM TYPE STRING,
CYR TYPE STRING,
CMO TYPE STRING,
FND_NAME TYPE STRING,
AMTEE TYPE STRING,
BRANCH TYPE STRING,
YEAR1 TYPE STRING,
TYPEOF_INCOME TYPE STRING,
TOTAL_PAYMENT TYPE STRING,
EPF_AMT TYPE STRING,
TAX_AMT TYPE STRING,
OFFICER_NAME TYPE STRING,
OFFICER_DESG TYPE STRING,
OFFICE_NAME TYPE STRING,
CITY TYPE STRING,
STRAS TYPE STRING,
ORT02 TYPE STRING,
ELECTRICITY TYPE STRING,
TOTAL_TAX_EXEMPT TYPE STRING,
TARIKH TYPE STRING,
SECF_EA_T TYPE STRING,
SOCSO_NUM TYPE STRING,
CHILD_NUM TYPE STRING,
SHARE_AMT TYPE STRING,
GRA_BEG TYPE STRING,
GRA_END TYPE STRING,
GRA_AMT TYPE STRING,
TYP_INCOMEA TYPE STRING,
TYP_INCOMEB TYPE STRING,
ARREARS_AMT TYPE STRING,
BIK_AMT TYPE STRING,
ZAKAT_SALARY TYPE STRING,
RELIEF_AMT TYPE STRING,
ZAKAT_OUTSIDE TYPE STRING,
CHILD_AMT TYPE STRING,
SOCSO_AMT TYPE STRING,
TEL_NUM TYPE STRING,
BIK_TEXT TYPE STRING,
VAL_ADR TYPE STRING,END OF T_EKKO_STR. DATA: WA_PMY_FORM_EA_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_PMY_FORM_EA_STR-SERNR sy-vline
WA_PMY_FORM_EA_STR-TNOER sy-vline
WA_PMY_FORM_EA_STR-TNOEE sy-vline
WA_PMY_FORM_EA_STR-YEAR2 sy-vline
WA_PMY_FORM_EA_STR-EMP_NAME sy-vline
WA_PMY_FORM_EA_STR-DESIGNATION sy-vline
WA_PMY_FORM_EA_STR-PERNR sy-vline
WA_PMY_FORM_EA_STR-NEW_IC_NUM sy-vline
WA_PMY_FORM_EA_STR-OLD_IC_NUM sy-vline
WA_PMY_FORM_EA_STR-EPFNO sy-vline
WA_PMY_FORM_EA_STR-COMM_DAT sy-vline
WA_PMY_FORM_EA_STR-CES_DAT sy-vline
WA_PMY_FORM_EA_STR-GROSS_SALARY sy-vline
WA_PMY_FORM_EA_STR-FEES_COMM_BON sy-vline
WA_PMY_FORM_EA_STR-GROSS_TIPS sy-vline
WA_PMY_FORM_EA_STR-INCOMETAX sy-vline
WA_PMY_FORM_EA_STR-MOTORCAR_PETROL sy-vline
WA_PMY_FORM_EA_STR-DRIVER_VALUE sy-vline
WA_PMY_FORM_EA_STR-SEMIFURNISHED sy-vline
WA_PMY_FORM_EA_STR-FULLYFURNISHED sy-vline
WA_PMY_FORM_EA_STR-FURNITUREFITTINGS sy-vline
WA_PMY_FORM_EA_STR-KITCHEN_EQUIPMENT sy-vline
WA_PMY_FORM_EA_STR-ENTERTAINMENT sy-vline
WA_PMY_FORM_EA_STR-HOUSEHOLD_SERVANT sy-vline
WA_PMY_FORM_EA_STR-BENEFITOF_LEAVE sy-vline
WA_PMY_FORM_EA_STR-FOOD_GARMENT sy-vline
WA_PMY_FORM_EA_STR-LIVING_ACCOMODATION sy-vline
WA_PMY_FORM_EA_STR-REFUND sy-vline
WA_PMY_FORM_EA_STR-COMPOF_LOSSOF_EMPLOYMENT sy-vline
WA_PMY_FORM_EA_STR-PENSIONS sy-vline
WA_PMY_FORM_EA_STR-ANNUITIES sy-vline
WA_PMY_FORM_EA_STR-TOTAL sy-vline
WA_PMY_FORM_EA_STR-STANDARD_AMOUNT sy-vline
WA_PMY_FORM_EA_STR-CP38_DEDUCTION sy-vline
WA_PMY_FORM_EA_STR-ZKT_DEDUCTION sy-vline
WA_PMY_FORM_EA_STR-CRD sy-vline
WA_PMY_FORM_EA_STR-CNM sy-vline
WA_PMY_FORM_EA_STR-CYR sy-vline
WA_PMY_FORM_EA_STR-CMO sy-vline
WA_PMY_FORM_EA_STR-FND_NAME sy-vline
WA_PMY_FORM_EA_STR-AMTEE sy-vline
WA_PMY_FORM_EA_STR-BRANCH sy-vline
WA_PMY_FORM_EA_STR-YEAR1 sy-vline
WA_PMY_FORM_EA_STR-TYPEOF_INCOME sy-vline
WA_PMY_FORM_EA_STR-TOTAL_PAYMENT sy-vline
WA_PMY_FORM_EA_STR-EPF_AMT sy-vline
WA_PMY_FORM_EA_STR-TAX_AMT sy-vline
WA_PMY_FORM_EA_STR-OFFICER_NAME sy-vline
WA_PMY_FORM_EA_STR-OFFICER_DESG sy-vline
WA_PMY_FORM_EA_STR-OFFICE_NAME sy-vline
WA_PMY_FORM_EA_STR-CITY sy-vline
WA_PMY_FORM_EA_STR-STRAS sy-vline
WA_PMY_FORM_EA_STR-ORT02 sy-vline
WA_PMY_FORM_EA_STR-ELECTRICITY sy-vline
WA_PMY_FORM_EA_STR-TOTAL_TAX_EXEMPT sy-vline
WA_PMY_FORM_EA_STR-TARIKH sy-vline
WA_PMY_FORM_EA_STR-SECF_EA_T sy-vline
WA_PMY_FORM_EA_STR-SOCSO_NUM sy-vline
WA_PMY_FORM_EA_STR-CHILD_NUM sy-vline
WA_PMY_FORM_EA_STR-SHARE_AMT sy-vline
WA_PMY_FORM_EA_STR-GRA_BEG sy-vline
WA_PMY_FORM_EA_STR-GRA_END sy-vline
WA_PMY_FORM_EA_STR-GRA_AMT sy-vline
WA_PMY_FORM_EA_STR-TYP_INCOMEA sy-vline
WA_PMY_FORM_EA_STR-TYP_INCOMEB sy-vline
WA_PMY_FORM_EA_STR-ARREARS_AMT sy-vline
WA_PMY_FORM_EA_STR-BIK_AMT sy-vline
WA_PMY_FORM_EA_STR-ZAKAT_SALARY sy-vline
WA_PMY_FORM_EA_STR-RELIEF_AMT sy-vline
WA_PMY_FORM_EA_STR-ZAKAT_OUTSIDE sy-vline
WA_PMY_FORM_EA_STR-CHILD_AMT sy-vline
WA_PMY_FORM_EA_STR-SOCSO_AMT sy-vline
WA_PMY_FORM_EA_STR-TEL_NUM sy-vline
WA_PMY_FORM_EA_STR-BIK_TEXT sy-vline
WA_PMY_FORM_EA_STR-VAL_ADR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.