ABAP Select data from SAP table P06DWNBRC 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 P06DWNBRC 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 P06DWNBRC. 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 P06DWNBRC 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_P06DWNBRC TYPE STANDARD TABLE OF P06DWNBRC,
      WA_P06DWNBRC TYPE P06DWNBRC,
      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: <P06DWNBRC> TYPE P06DWNBRC.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM P06DWNBRC
*  INTO TABLE @DATA(IT_P06DWNBRC2).
*--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_P06DWNBRC INDEX 1 INTO DATA(WA_P06DWNBRC2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_P06DWNBRC ASSIGNING <P06DWNBRC>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<P06DWNBRC>-COMPTE = 1.
<P06DWNBRC>-PERIODE = 1.
<P06DWNBRC>-SIRET = 1.
<P06DWNBRC>-CDEFREM = 1.
<P06DWNBRC>-NBPAIE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_P06DWNBRC-CDEFINS, sy-vline,
WA_P06DWNBRC-EFFECT, sy-vline,
WA_P06DWNBRC-CDENR, sy-vline,
WA_P06DWNBRC-NATDEC, sy-vline,
WA_P06DWNBRC-MONNAIE, sy-vline,
WA_P06DWNBRC-FILLER06, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P06DWNBRC 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_P06DWNBRC 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_P06DWNBRC INTO WA_P06DWNBRC. *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_P06DWNBRC_STR,
COMPTE TYPE STRING,
PERIODE TYPE STRING,
SIRET TYPE STRING,
CDEFREM TYPE STRING,
NBPAIE TYPE STRING,
CDEFINS TYPE STRING,
EFFECT TYPE STRING,
CDENR TYPE STRING,
NATDEC TYPE STRING,
MONNAIE TYPE STRING,
FILLER06 TYPE STRING,
ZONE1_1 TYPE STRING,
TX_AT_1 TYPE STRING,
PERTY_1 TYPE STRING,
SADEP_1 TYPE STRING,
SAPLA_1 TYPE STRING,
ZONE2_1 TYPE STRING,
EFFEX_1 TYPE STRING,
ZONE1_2 TYPE STRING,
TX_AT_2 TYPE STRING,
PERTY_2 TYPE STRING,
SADEP_2 TYPE STRING,
SAPLA_2 TYPE STRING,
ZONE2_2 TYPE STRING,
EFFEX_2 TYPE STRING,
ZONE1_3 TYPE STRING,
TX_AT_3 TYPE STRING,
PERTY_3 TYPE STRING,
SADEP_3 TYPE STRING,
SAPLA_3 TYPE STRING,
ZONE2_3 TYPE STRING,
EFFEX_3 TYPE STRING,
ZONE1_4 TYPE STRING,
TX_AT_4 TYPE STRING,
PERTY_4 TYPE STRING,
SADEP_4 TYPE STRING,
SAPLA_4 TYPE STRING,
ZONE2_4 TYPE STRING,
EFFEX_4 TYPE STRING,
ZONE1_5 TYPE STRING,
TX_AT_5 TYPE STRING,
PERTY_5 TYPE STRING,
SADEP_5 TYPE STRING,
SAPLA_5 TYPE STRING,
ZONE2_5 TYPE STRING,
EFFEX_5 TYPE STRING,
ZONE1_6 TYPE STRING,
TX_AT_6 TYPE STRING,
PERTY_6 TYPE STRING,
SADEP_6 TYPE STRING,
SAPLA_6 TYPE STRING,
ZONE2_6 TYPE STRING,
EFFEX_6 TYPE STRING,
ZONE1_7 TYPE STRING,
TX_AT_7 TYPE STRING,
PERTY_7 TYPE STRING,
SADEP_7 TYPE STRING,
SAPLA_7 TYPE STRING,
ZONE2_7 TYPE STRING,
EFFEX_7 TYPE STRING,
ZONE1_8 TYPE STRING,
TX_AT_8 TYPE STRING,
PERTY_8 TYPE STRING,
SADEP_8 TYPE STRING,
SAPLA_8 TYPE STRING,
ZONE2_8 TYPE STRING,
EFFEX_8 TYPE STRING,
ZONE1_9 TYPE STRING,
TX_AT_9 TYPE STRING,
PERTY_9 TYPE STRING,
SADEP_9 TYPE STRING,
SAPLA_9 TYPE STRING,
ZONE2_9 TYPE STRING,
EFFEX_9 TYPE STRING,
ZONE1_10 TYPE STRING,
TX_AT_10 TYPE STRING,
PERTY_10 TYPE STRING,
SADEP_10 TYPE STRING,
SAPLA_10 TYPE STRING,
ZONE2_10 TYPE STRING,
EFFEX_10 TYPE STRING,
PERTYTRSP TYPE STRING,
TX_TR TYPE STRING,
BASET TYPE STRING,
MONTANT TYPE STRING,
DATPAIE TYPE STRING,
ZONERES TYPE STRING,END OF T_EKKO_STR. DATA: WA_P06DWNBRC_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_P06DWNBRC_STR-COMPTE sy-vline
WA_P06DWNBRC_STR-PERIODE sy-vline
WA_P06DWNBRC_STR-SIRET sy-vline
WA_P06DWNBRC_STR-CDEFREM sy-vline
WA_P06DWNBRC_STR-NBPAIE sy-vline
WA_P06DWNBRC_STR-CDEFINS sy-vline
WA_P06DWNBRC_STR-EFFECT sy-vline
WA_P06DWNBRC_STR-CDENR sy-vline
WA_P06DWNBRC_STR-NATDEC sy-vline
WA_P06DWNBRC_STR-MONNAIE sy-vline
WA_P06DWNBRC_STR-FILLER06 sy-vline
WA_P06DWNBRC_STR-ZONE1_1 sy-vline
WA_P06DWNBRC_STR-TX_AT_1 sy-vline
WA_P06DWNBRC_STR-PERTY_1 sy-vline
WA_P06DWNBRC_STR-SADEP_1 sy-vline
WA_P06DWNBRC_STR-SAPLA_1 sy-vline
WA_P06DWNBRC_STR-ZONE2_1 sy-vline
WA_P06DWNBRC_STR-EFFEX_1 sy-vline
WA_P06DWNBRC_STR-ZONE1_2 sy-vline
WA_P06DWNBRC_STR-TX_AT_2 sy-vline
WA_P06DWNBRC_STR-PERTY_2 sy-vline
WA_P06DWNBRC_STR-SADEP_2 sy-vline
WA_P06DWNBRC_STR-SAPLA_2 sy-vline
WA_P06DWNBRC_STR-ZONE2_2 sy-vline
WA_P06DWNBRC_STR-EFFEX_2 sy-vline
WA_P06DWNBRC_STR-ZONE1_3 sy-vline
WA_P06DWNBRC_STR-TX_AT_3 sy-vline
WA_P06DWNBRC_STR-PERTY_3 sy-vline
WA_P06DWNBRC_STR-SADEP_3 sy-vline
WA_P06DWNBRC_STR-SAPLA_3 sy-vline
WA_P06DWNBRC_STR-ZONE2_3 sy-vline
WA_P06DWNBRC_STR-EFFEX_3 sy-vline
WA_P06DWNBRC_STR-ZONE1_4 sy-vline
WA_P06DWNBRC_STR-TX_AT_4 sy-vline
WA_P06DWNBRC_STR-PERTY_4 sy-vline
WA_P06DWNBRC_STR-SADEP_4 sy-vline
WA_P06DWNBRC_STR-SAPLA_4 sy-vline
WA_P06DWNBRC_STR-ZONE2_4 sy-vline
WA_P06DWNBRC_STR-EFFEX_4 sy-vline
WA_P06DWNBRC_STR-ZONE1_5 sy-vline
WA_P06DWNBRC_STR-TX_AT_5 sy-vline
WA_P06DWNBRC_STR-PERTY_5 sy-vline
WA_P06DWNBRC_STR-SADEP_5 sy-vline
WA_P06DWNBRC_STR-SAPLA_5 sy-vline
WA_P06DWNBRC_STR-ZONE2_5 sy-vline
WA_P06DWNBRC_STR-EFFEX_5 sy-vline
WA_P06DWNBRC_STR-ZONE1_6 sy-vline
WA_P06DWNBRC_STR-TX_AT_6 sy-vline
WA_P06DWNBRC_STR-PERTY_6 sy-vline
WA_P06DWNBRC_STR-SADEP_6 sy-vline
WA_P06DWNBRC_STR-SAPLA_6 sy-vline
WA_P06DWNBRC_STR-ZONE2_6 sy-vline
WA_P06DWNBRC_STR-EFFEX_6 sy-vline
WA_P06DWNBRC_STR-ZONE1_7 sy-vline
WA_P06DWNBRC_STR-TX_AT_7 sy-vline
WA_P06DWNBRC_STR-PERTY_7 sy-vline
WA_P06DWNBRC_STR-SADEP_7 sy-vline
WA_P06DWNBRC_STR-SAPLA_7 sy-vline
WA_P06DWNBRC_STR-ZONE2_7 sy-vline
WA_P06DWNBRC_STR-EFFEX_7 sy-vline
WA_P06DWNBRC_STR-ZONE1_8 sy-vline
WA_P06DWNBRC_STR-TX_AT_8 sy-vline
WA_P06DWNBRC_STR-PERTY_8 sy-vline
WA_P06DWNBRC_STR-SADEP_8 sy-vline
WA_P06DWNBRC_STR-SAPLA_8 sy-vline
WA_P06DWNBRC_STR-ZONE2_8 sy-vline
WA_P06DWNBRC_STR-EFFEX_8 sy-vline
WA_P06DWNBRC_STR-ZONE1_9 sy-vline
WA_P06DWNBRC_STR-TX_AT_9 sy-vline
WA_P06DWNBRC_STR-PERTY_9 sy-vline
WA_P06DWNBRC_STR-SADEP_9 sy-vline
WA_P06DWNBRC_STR-SAPLA_9 sy-vline
WA_P06DWNBRC_STR-ZONE2_9 sy-vline
WA_P06DWNBRC_STR-EFFEX_9 sy-vline
WA_P06DWNBRC_STR-ZONE1_10 sy-vline
WA_P06DWNBRC_STR-TX_AT_10 sy-vline
WA_P06DWNBRC_STR-PERTY_10 sy-vline
WA_P06DWNBRC_STR-SADEP_10 sy-vline
WA_P06DWNBRC_STR-SAPLA_10 sy-vline
WA_P06DWNBRC_STR-ZONE2_10 sy-vline
WA_P06DWNBRC_STR-EFFEX_10 sy-vline
WA_P06DWNBRC_STR-PERTYTRSP sy-vline
WA_P06DWNBRC_STR-TX_TR sy-vline
WA_P06DWNBRC_STR-BASET sy-vline
WA_P06DWNBRC_STR-MONTANT sy-vline
WA_P06DWNBRC_STR-DATPAIE sy-vline
WA_P06DWNBRC_STR-ZONERES sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.