ABAP Select data from SAP table PC2JP_ESGT 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 PC2JP_ESGT 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 PC2JP_ESGT. 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 PC2JP_ESGT 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_PC2JP_ESGT TYPE STANDARD TABLE OF PC2JP_ESGT,
      WA_PC2JP_ESGT TYPE PC2JP_ESGT,
      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: <PC2JP_ESGT> TYPE PC2JP_ESGT.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PC2JP_ESGT
*  INTO TABLE @DATA(IT_PC2JP_ESGT2).
*--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_PC2JP_ESGT INDEX 1 INTO DATA(WA_PC2JP_ESGT2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PC2JP_ESGT ASSIGNING <PC2JP_ESGT>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PC2JP_ESGT>-AHSFL = 1.
<PC2JP_ESGT>-NAAHS = 1.
<PC2JP_ESGT>-EXEP1 = 1.
<PC2JP_ESGT>-PBEP1 = 1.
<PC2JP_ESGT>-CMEP1 = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PC2JP_ESGT-CKEP1, sy-vline,
WA_PC2JP_ESGT-CAEP1, sy-vline,
WA_PC2JP_ESGT-XMEP1, sy-vline,
WA_PC2JP_ESGT-XKEP1, sy-vline,
WA_PC2JP_ESGT-XAEP1, sy-vline,
WA_PC2JP_ESGT-WCEP1, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PC2JP_ESGT 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_PC2JP_ESGT 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_PC2JP_ESGT INTO WA_PC2JP_ESGT. *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_PC2JP_ESGT_STR,
AHSFL TYPE STRING,
NAAHS TYPE STRING,
EXEP1 TYPE STRING,
PBEP1 TYPE STRING,
CMEP1 TYPE STRING,
CKEP1 TYPE STRING,
CAEP1 TYPE STRING,
XMEP1 TYPE STRING,
XKEP1 TYPE STRING,
XAEP1 TYPE STRING,
WCEP1 TYPE STRING,
KSEP1 TYPE STRING,
EXEP2 TYPE STRING,
PBEP2 TYPE STRING,
CMEP2 TYPE STRING,
CKEP2 TYPE STRING,
CAEP2 TYPE STRING,
XMEP2 TYPE STRING,
XKEP2 TYPE STRING,
XAEP2 TYPE STRING,
WCEP2 TYPE STRING,
KSEP2 TYPE STRING,
EXEP3 TYPE STRING,
PBEP3 TYPE STRING,
CMEP3 TYPE STRING,
CKEP3 TYPE STRING,
CAEP3 TYPE STRING,
XMEP3 TYPE STRING,
XKEP3 TYPE STRING,
XAEP3 TYPE STRING,
WCEP3 TYPE STRING,
KSEP3 TYPE STRING,
EXEP4 TYPE STRING,
PBEP4 TYPE STRING,
CMEP4 TYPE STRING,
CKEP4 TYPE STRING,
CAEP4 TYPE STRING,
XMEP4 TYPE STRING,
XKEP4 TYPE STRING,
XAEP4 TYPE STRING,
WCEP4 TYPE STRING,
KSEP4 TYPE STRING,
EXEP5 TYPE STRING,
PBEP5 TYPE STRING,
CMEP5 TYPE STRING,
CKEP5 TYPE STRING,
CAEP5 TYPE STRING,
XMEP5 TYPE STRING,
XKEP5 TYPE STRING,
XAEP5 TYPE STRING,
WCEP5 TYPE STRING,
KSEP5 TYPE STRING,
EXEP6 TYPE STRING,
PBEP6 TYPE STRING,
CMEP6 TYPE STRING,
CKEP6 TYPE STRING,
CAEP6 TYPE STRING,
XMEP6 TYPE STRING,
XKEP6 TYPE STRING,
XAEP6 TYPE STRING,
WCEP6 TYPE STRING,
KSEP6 TYPE STRING,
EXEP7 TYPE STRING,
PBEP7 TYPE STRING,
CMEP7 TYPE STRING,
CKEP7 TYPE STRING,
CAEP7 TYPE STRING,
XMEP7 TYPE STRING,
XKEP7 TYPE STRING,
XAEP7 TYPE STRING,
WCEP7 TYPE STRING,
KSEP7 TYPE STRING,
EXEP8 TYPE STRING,
PBEP8 TYPE STRING,
CMEP8 TYPE STRING,
CKEP8 TYPE STRING,
CAEP8 TYPE STRING,
XMEP8 TYPE STRING,
XKEP8 TYPE STRING,
XAEP8 TYPE STRING,
WCEP8 TYPE STRING,
KSEP8 TYPE STRING,
EXEP9 TYPE STRING,
PBEP9 TYPE STRING,
CMEP9 TYPE STRING,
CKEP9 TYPE STRING,
CAEP9 TYPE STRING,
XMEP9 TYPE STRING,
XKEP9 TYPE STRING,
XAEP9 TYPE STRING,
WCEP9 TYPE STRING,
KSEP9 TYPE STRING,
AMTEA TYPE STRING,
AVGEA TYPE STRING,
EXCGR TYPE STRING,
EXCSC TYPE STRING,
AMTAA TYPE STRING,
AVGAA TYPE STRING,
YAVGR TYPE STRING,
YAVSC TYPE STRING,
AHGFL TYPE STRING,END OF T_EKKO_STR. DATA: WA_PC2JP_ESGT_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_PC2JP_ESGT_STR-AHSFL sy-vline
WA_PC2JP_ESGT_STR-NAAHS sy-vline
WA_PC2JP_ESGT_STR-EXEP1 sy-vline
WA_PC2JP_ESGT_STR-PBEP1 sy-vline
WA_PC2JP_ESGT_STR-CMEP1 sy-vline
WA_PC2JP_ESGT_STR-CKEP1 sy-vline
WA_PC2JP_ESGT_STR-CAEP1 sy-vline
WA_PC2JP_ESGT_STR-XMEP1 sy-vline
WA_PC2JP_ESGT_STR-XKEP1 sy-vline
WA_PC2JP_ESGT_STR-XAEP1 sy-vline
WA_PC2JP_ESGT_STR-WCEP1 sy-vline
WA_PC2JP_ESGT_STR-KSEP1 sy-vline
WA_PC2JP_ESGT_STR-EXEP2 sy-vline
WA_PC2JP_ESGT_STR-PBEP2 sy-vline
WA_PC2JP_ESGT_STR-CMEP2 sy-vline
WA_PC2JP_ESGT_STR-CKEP2 sy-vline
WA_PC2JP_ESGT_STR-CAEP2 sy-vline
WA_PC2JP_ESGT_STR-XMEP2 sy-vline
WA_PC2JP_ESGT_STR-XKEP2 sy-vline
WA_PC2JP_ESGT_STR-XAEP2 sy-vline
WA_PC2JP_ESGT_STR-WCEP2 sy-vline
WA_PC2JP_ESGT_STR-KSEP2 sy-vline
WA_PC2JP_ESGT_STR-EXEP3 sy-vline
WA_PC2JP_ESGT_STR-PBEP3 sy-vline
WA_PC2JP_ESGT_STR-CMEP3 sy-vline
WA_PC2JP_ESGT_STR-CKEP3 sy-vline
WA_PC2JP_ESGT_STR-CAEP3 sy-vline
WA_PC2JP_ESGT_STR-XMEP3 sy-vline
WA_PC2JP_ESGT_STR-XKEP3 sy-vline
WA_PC2JP_ESGT_STR-XAEP3 sy-vline
WA_PC2JP_ESGT_STR-WCEP3 sy-vline
WA_PC2JP_ESGT_STR-KSEP3 sy-vline
WA_PC2JP_ESGT_STR-EXEP4 sy-vline
WA_PC2JP_ESGT_STR-PBEP4 sy-vline
WA_PC2JP_ESGT_STR-CMEP4 sy-vline
WA_PC2JP_ESGT_STR-CKEP4 sy-vline
WA_PC2JP_ESGT_STR-CAEP4 sy-vline
WA_PC2JP_ESGT_STR-XMEP4 sy-vline
WA_PC2JP_ESGT_STR-XKEP4 sy-vline
WA_PC2JP_ESGT_STR-XAEP4 sy-vline
WA_PC2JP_ESGT_STR-WCEP4 sy-vline
WA_PC2JP_ESGT_STR-KSEP4 sy-vline
WA_PC2JP_ESGT_STR-EXEP5 sy-vline
WA_PC2JP_ESGT_STR-PBEP5 sy-vline
WA_PC2JP_ESGT_STR-CMEP5 sy-vline
WA_PC2JP_ESGT_STR-CKEP5 sy-vline
WA_PC2JP_ESGT_STR-CAEP5 sy-vline
WA_PC2JP_ESGT_STR-XMEP5 sy-vline
WA_PC2JP_ESGT_STR-XKEP5 sy-vline
WA_PC2JP_ESGT_STR-XAEP5 sy-vline
WA_PC2JP_ESGT_STR-WCEP5 sy-vline
WA_PC2JP_ESGT_STR-KSEP5 sy-vline
WA_PC2JP_ESGT_STR-EXEP6 sy-vline
WA_PC2JP_ESGT_STR-PBEP6 sy-vline
WA_PC2JP_ESGT_STR-CMEP6 sy-vline
WA_PC2JP_ESGT_STR-CKEP6 sy-vline
WA_PC2JP_ESGT_STR-CAEP6 sy-vline
WA_PC2JP_ESGT_STR-XMEP6 sy-vline
WA_PC2JP_ESGT_STR-XKEP6 sy-vline
WA_PC2JP_ESGT_STR-XAEP6 sy-vline
WA_PC2JP_ESGT_STR-WCEP6 sy-vline
WA_PC2JP_ESGT_STR-KSEP6 sy-vline
WA_PC2JP_ESGT_STR-EXEP7 sy-vline
WA_PC2JP_ESGT_STR-PBEP7 sy-vline
WA_PC2JP_ESGT_STR-CMEP7 sy-vline
WA_PC2JP_ESGT_STR-CKEP7 sy-vline
WA_PC2JP_ESGT_STR-CAEP7 sy-vline
WA_PC2JP_ESGT_STR-XMEP7 sy-vline
WA_PC2JP_ESGT_STR-XKEP7 sy-vline
WA_PC2JP_ESGT_STR-XAEP7 sy-vline
WA_PC2JP_ESGT_STR-WCEP7 sy-vline
WA_PC2JP_ESGT_STR-KSEP7 sy-vline
WA_PC2JP_ESGT_STR-EXEP8 sy-vline
WA_PC2JP_ESGT_STR-PBEP8 sy-vline
WA_PC2JP_ESGT_STR-CMEP8 sy-vline
WA_PC2JP_ESGT_STR-CKEP8 sy-vline
WA_PC2JP_ESGT_STR-CAEP8 sy-vline
WA_PC2JP_ESGT_STR-XMEP8 sy-vline
WA_PC2JP_ESGT_STR-XKEP8 sy-vline
WA_PC2JP_ESGT_STR-XAEP8 sy-vline
WA_PC2JP_ESGT_STR-WCEP8 sy-vline
WA_PC2JP_ESGT_STR-KSEP8 sy-vline
WA_PC2JP_ESGT_STR-EXEP9 sy-vline
WA_PC2JP_ESGT_STR-PBEP9 sy-vline
WA_PC2JP_ESGT_STR-CMEP9 sy-vline
WA_PC2JP_ESGT_STR-CKEP9 sy-vline
WA_PC2JP_ESGT_STR-CAEP9 sy-vline
WA_PC2JP_ESGT_STR-XMEP9 sy-vline
WA_PC2JP_ESGT_STR-XKEP9 sy-vline
WA_PC2JP_ESGT_STR-XAEP9 sy-vline
WA_PC2JP_ESGT_STR-WCEP9 sy-vline
WA_PC2JP_ESGT_STR-KSEP9 sy-vline
WA_PC2JP_ESGT_STR-AMTEA sy-vline
WA_PC2JP_ESGT_STR-AVGEA sy-vline
WA_PC2JP_ESGT_STR-EXCGR sy-vline
WA_PC2JP_ESGT_STR-EXCSC sy-vline
WA_PC2JP_ESGT_STR-AMTAA sy-vline
WA_PC2JP_ESGT_STR-AVGAA sy-vline
WA_PC2JP_ESGT_STR-YAVGR sy-vline
WA_PC2JP_ESGT_STR-YAVSC sy-vline
WA_PC2JP_ESGT_STR-AHGFL sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.