ABAP Select data from SAP table P08_P11D_COMPCAR 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 P08_P11D_COMPCAR 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 P08_P11D_COMPCAR. 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 P08_P11D_COMPCAR 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_P08_P11D_COMPCAR TYPE STANDARD TABLE OF P08_P11D_COMPCAR, WA_P08_P11D_COMPCAR TYPE P08_P11D_COMPCAR, 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: <P08_P11D_COMPCAR> TYPE P08_P11D_COMPCAR. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_P08_P11D_COMPCAR. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM P08_P11D_COMPCAR INTO TABLE IT_P08_P11D_COMPCAR. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM P08_P11D_COMPCAR * INTO TABLE @DATA(IT_P08_P11D_COMPCAR2). *--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_P08_P11D_COMPCAR INDEX 1 INTO DATA(WA_P08_P11D_COMPCAR2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_P08_P11D_COMPCAR ASSIGNING <P08_P11D_COMPCAR>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<P08_P11D_COMPCAR>-MAKE_MODEL = 1.
<P08_P11D_COMPCAR>-RGNDA = 1.
<P08_P11D_COMPCAR>-BEGDA = 1.
<P08_P11D_COMPCAR>-ENDDA = 1.
<P08_P11D_COMPCAR>-BAND1 = 1.
ENDLOOP. LOOP AT IT_P08_P11D_COMPCAR INTO WA_P08_P11D_COMPCAR. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_P08_P11D_COMPCAR-BAND2, sy-vline,
WA_P08_P11D_COMPCAR-BAND3, sy-vline,
WA_P08_P11D_COMPCAR-ECAPC, sy-vline,
WA_P08_P11D_COMPCAR-EPETR, sy-vline,
WA_P08_P11D_COMPCAR-EDIES, sy-vline,
WA_P08_P11D_COMPCAR-LISTP, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P08_P11D_COMPCAR 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_P08_P11D_COMPCAR 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_P08_P11D_COMPCAR INTO WA_P08_P11D_COMPCAR. *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_P08_P11D_COMPCAR_STR,
MAKE_MODEL TYPE STRING,
RGNDA TYPE STRING,
BEGDA TYPE STRING,
ENDDA TYPE STRING,
BAND1 TYPE STRING,
BAND2 TYPE STRING,
BAND3 TYPE STRING,
ECAPC TYPE STRING,
EPETR TYPE STRING,
EDIES TYPE STRING,
LISTP TYPE STRING,
ACCSS TYPE STRING,
ACSS2 TYPE STRING,
CAPCN TYPE STRING,
TTPPU TYPE STRING,
TXBEN TYPE STRING,
FSCHG TYPE STRING,
EGTYP TYPE STRING,
FUELR TYPE STRING,
CO2EM TYPE STRING,
FSCWD TYPE STRING,
FSCRI TYPE STRING,
REGNO TYPE STRING,
B1998 TYPE STRING,
NOAPVD TYPE STRING,
EMVAZ TYPE STRING,END OF T_EKKO_STR. DATA: WA_P08_P11D_COMPCAR_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_P08_P11D_COMPCAR_STR-MAKE_MODEL sy-vline
WA_P08_P11D_COMPCAR_STR-RGNDA sy-vline
WA_P08_P11D_COMPCAR_STR-BEGDA sy-vline
WA_P08_P11D_COMPCAR_STR-ENDDA sy-vline
WA_P08_P11D_COMPCAR_STR-BAND1 sy-vline
WA_P08_P11D_COMPCAR_STR-BAND2 sy-vline
WA_P08_P11D_COMPCAR_STR-BAND3 sy-vline
WA_P08_P11D_COMPCAR_STR-ECAPC sy-vline
WA_P08_P11D_COMPCAR_STR-EPETR sy-vline
WA_P08_P11D_COMPCAR_STR-EDIES sy-vline
WA_P08_P11D_COMPCAR_STR-LISTP sy-vline
WA_P08_P11D_COMPCAR_STR-ACCSS sy-vline
WA_P08_P11D_COMPCAR_STR-ACSS2 sy-vline
WA_P08_P11D_COMPCAR_STR-CAPCN sy-vline
WA_P08_P11D_COMPCAR_STR-TTPPU sy-vline
WA_P08_P11D_COMPCAR_STR-TXBEN sy-vline
WA_P08_P11D_COMPCAR_STR-FSCHG sy-vline
WA_P08_P11D_COMPCAR_STR-EGTYP sy-vline
WA_P08_P11D_COMPCAR_STR-FUELR sy-vline
WA_P08_P11D_COMPCAR_STR-CO2EM sy-vline
WA_P08_P11D_COMPCAR_STR-FSCWD sy-vline
WA_P08_P11D_COMPCAR_STR-FSCRI sy-vline
WA_P08_P11D_COMPCAR_STR-REGNO sy-vline
WA_P08_P11D_COMPCAR_STR-B1998 sy-vline
WA_P08_P11D_COMPCAR_STR-NOAPVD sy-vline
WA_P08_P11D_COMPCAR_STR-EMVAZ sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.