ABAP Select data from SAP table PES2960002 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 PES2960002 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 PES2960002. 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 PES2960002 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_PES2960002 TYPE STANDARD TABLE OF PES2960002,
      WA_PES2960002 TYPE PES2960002,
      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: <PES2960002> TYPE PES2960002.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PES2960002
*  INTO TABLE @DATA(IT_PES29600022).
*--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_PES2960002 INDEX 1 INTO DATA(WA_PES29600022).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PES2960002 ASSIGNING <PES2960002>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PES2960002>-TIPO = 1.
<PES2960002>-MODEL = 1.
<PES2960002>-EJER = 1.
<PES2960002>-NIF_RET = 1.
<PES2960002>-NIF_PER = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PES2960002-NIF_REPR, sy-vline,
WA_PES2960002-F_J, sy-vline,
WA_PES2960002-NAME, sy-vline,
WA_PES2960002-BLAN, sy-vline,
WA_PES2960002-DIA, sy-vline,
WA_PES2960002-MES, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PES2960002 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_PES2960002 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_PES2960002 INTO WA_PES2960002. *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_PES2960002_STR,
TIPO TYPE STRING,
MODEL TYPE STRING,
EJER TYPE STRING,
NIF_RET TYPE STRING,
NIF_PER TYPE STRING,
NIF_REPR TYPE STRING,
F_J TYPE STRING,
NAME TYPE STRING,
BLAN TYPE STRING,
DIA TYPE STRING,
MES TYPE STRING,
ANYO TYPE STRING,
NATUR TYPE STRING,
CPER1 TYPE STRING,
CPER2 TYPE STRING,
SIGN1 TYPE STRING,
IMPOR TYPE STRING,
RET_ENT TYPE STRING,
RET_DEC TYPE STRING,
RET_ING TYPE STRING,
MEDIAD TYPE STRING,
CODIG TYPE STRING,
COD_EMI TYPE STRING,
PAGO TYPE STRING,
TIPO_COD TYPE STRING,
ENTIDAD TYPE STRING,
SUCUR TYPE STRING,
DC TYPE STRING,
NUM_CUE TYPE STRING,
PEND TYPE STRING,
EJDEV TYPE STRING,
FEINIPRE TYPE STRING,
FEVENPRE TYPE STRING,
REPRES TYPE STRING,
COMPEN TYPE STRING,
GARANT TYPE STRING,
DOM_PCT TYPE STRING,
CPD_PCT TYPE STRING,
PBC_PCT TYPE STRING,
PRE_PCT TYPE STRING,
ZIP_PCT TYPE STRING,
COD_PAIS TYPE STRING,
BLAN1 TYPE STRING,
NIF_PRF TYPE STRING,
DIA_NAC TYPE STRING,
MES_NAC TYPE STRING,
ANYO_NAC TYPE STRING,
CIU_NAC TYPE STRING,
PAIS_NAC TYPE STRING,
PAIS_RFP TYPE STRING,
BLAN2 TYPE STRING,END OF T_EKKO_STR. DATA: WA_PES2960002_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_PES2960002_STR-TIPO sy-vline
WA_PES2960002_STR-MODEL sy-vline
WA_PES2960002_STR-EJER sy-vline
WA_PES2960002_STR-NIF_RET sy-vline
WA_PES2960002_STR-NIF_PER sy-vline
WA_PES2960002_STR-NIF_REPR sy-vline
WA_PES2960002_STR-F_J sy-vline
WA_PES2960002_STR-NAME sy-vline
WA_PES2960002_STR-BLAN sy-vline
WA_PES2960002_STR-DIA sy-vline
WA_PES2960002_STR-MES sy-vline
WA_PES2960002_STR-ANYO sy-vline
WA_PES2960002_STR-NATUR sy-vline
WA_PES2960002_STR-CPER1 sy-vline
WA_PES2960002_STR-CPER2 sy-vline
WA_PES2960002_STR-SIGN1 sy-vline
WA_PES2960002_STR-IMPOR sy-vline
WA_PES2960002_STR-RET_ENT sy-vline
WA_PES2960002_STR-RET_DEC sy-vline
WA_PES2960002_STR-RET_ING sy-vline
WA_PES2960002_STR-MEDIAD sy-vline
WA_PES2960002_STR-CODIG sy-vline
WA_PES2960002_STR-COD_EMI sy-vline
WA_PES2960002_STR-PAGO sy-vline
WA_PES2960002_STR-TIPO_COD sy-vline
WA_PES2960002_STR-ENTIDAD sy-vline
WA_PES2960002_STR-SUCUR sy-vline
WA_PES2960002_STR-DC sy-vline
WA_PES2960002_STR-NUM_CUE sy-vline
WA_PES2960002_STR-PEND sy-vline
WA_PES2960002_STR-EJDEV sy-vline
WA_PES2960002_STR-FEINIPRE sy-vline
WA_PES2960002_STR-FEVENPRE sy-vline
WA_PES2960002_STR-REPRES sy-vline
WA_PES2960002_STR-COMPEN sy-vline
WA_PES2960002_STR-GARANT sy-vline
WA_PES2960002_STR-DOM_PCT sy-vline
WA_PES2960002_STR-CPD_PCT sy-vline
WA_PES2960002_STR-PBC_PCT sy-vline
WA_PES2960002_STR-PRE_PCT sy-vline
WA_PES2960002_STR-ZIP_PCT sy-vline
WA_PES2960002_STR-COD_PAIS sy-vline
WA_PES2960002_STR-BLAN1 sy-vline
WA_PES2960002_STR-NIF_PRF sy-vline
WA_PES2960002_STR-DIA_NAC sy-vline
WA_PES2960002_STR-MES_NAC sy-vline
WA_PES2960002_STR-ANYO_NAC sy-vline
WA_PES2960002_STR-CIU_NAC sy-vline
WA_PES2960002_STR-PAIS_NAC sy-vline
WA_PES2960002_STR-PAIS_RFP sy-vline
WA_PES2960002_STR-BLAN2 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.