ABAP Select data from SAP table /DMBE/SM_DEALDETAILDELIVERY 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 /DMBE/SM_DEALDETAILDELIVERY 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 /DMBE/SM_DEALDETAILDELIVERY. 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 /DMBE/SM_DEALDETAILDELIVERY 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_/DMBE/SM_DEALDETAILDELIVERY TYPE STANDARD TABLE OF /DMBE/SM_DEALDETAILDELIVERY,
      WA_/DMBE/SM_DEALDETAILDELIVERY TYPE /DMBE/SM_DEALDETAILDELIVERY,
      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: </DMBE/SM_DEALDETAILDELIVERY> TYPE /DMBE/SM_DEALDETAILDELIVERY.

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

SELECT *
*restrict ABAP select to first 10 rows
 UP TO 10 ROWS      
  FROM /DMBE/SM_DEALDETAILDELIVERY
  INTO TABLE IT_/DMBE/SM_DEALDETAILDELIVERY.

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM /DMBE/SM_DEALDETAILDELIVERY
*  INTO TABLE @DATA(IT_/DMBE/SM_DEALDETAILDELIVERY2).
*--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_/DMBE/SM_DEALDETAILDELIVERY INDEX 1 INTO DATA(WA_/DMBE/SM_DEALDETAILDELIVERY2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_/DMBE/SM_DEALDETAILDELIVERY ASSIGNING </DMBE/SM_DEALDETAILDELIVERY>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
</DMBE/SM_DEALDETAILDELIVERY>-INCOTERMS = 1.
</DMBE/SM_DEALDETAILDELIVERY>-INCOTERMS2 = 1.
</DMBE/SM_DEALDETAILDELIVERY>-ORIGIN = 1.
</DMBE/SM_DEALDETAILDELIVERY>-DESTINATION = 1.
</DMBE/SM_DEALDETAILDELIVERY>-MOT = 1.
ENDLOOP.

LOOP AT IT_/DMBE/SM_DEALDETAILDELIVERY INTO WA_/DMBE/SM_DEALDETAILDELIVERY.
*Write horizonal line to screen report.
  WRITE:/ sy-uline.

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_/DMBE/SM_DEALDETAILDELIVERY-TERMSOFTRANSFER, sy-vline,
WA_/DMBE/SM_DEALDETAILDELIVERY-CYCLESELECTION, sy-vline,
WA_/DMBE/SM_DEALDETAILDELIVERY-CYCLESELECTIONTO, sy-vline,
WA_/DMBE/SM_DEALDETAILDELIVERY-LOADINGFROM, sy-vline,
WA_/DMBE/SM_DEALDETAILDELIVERY-LOADINGTO, sy-vline,
WA_/DMBE/SM_DEALDETAILDELIVERY-DISCHARGEFROM, sy-vline.
ENDLOOP. *Add any further fields from structure WA_/DMBE/SM_DEALDETAILDELIVERY 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_/DMBE/SM_DEALDETAILDELIVERY 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_/DMBE/SM_DEALDETAILDELIVERY INTO WA_/DMBE/SM_DEALDETAILDELIVERY. *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.

*Conversion exit ALPHA, internal->external for field MOTVESSEL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_/DMBE/SM_DEALDETAILDELIVERY-MOTVESSEL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/DMBE/SM_DEALDETAILDELIVERY-MOTVESSEL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field MOTPIPELINE CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_/DMBE/SM_DEALDETAILDELIVERY-MOTPIPELINE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/DMBE/SM_DEALDETAILDELIVERY-MOTPIPELINE.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field MOTVEHICLE CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_/DMBE/SM_DEALDETAILDELIVERY-MOTVEHICLE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/DMBE/SM_DEALDETAILDELIVERY-MOTVEHICLE.
WRITE:/ 'New Value:', ld_input.

*Conversion exit DCCUR, internal->external for field MOTAMOUNT CALL FUNCTION 'CONVERSION_EXIT_DCCUR_OUTPUT' EXPORTING input = WA_/DMBE/SM_DEALDETAILDELIVERY-MOTAMOUNT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/DMBE/SM_DEALDETAILDELIVERY-MOTAMOUNT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field MOTUOM CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_/DMBE/SM_DEALDETAILDELIVERY-MOTUOM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/DMBE/SM_DEALDETAILDELIVERY-MOTUOM.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field CONNECTINGCARRIER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_/DMBE/SM_DEALDETAILDELIVERY-CONNECTINGCARRIER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_/DMBE/SM_DEALDETAILDELIVERY-CONNECTINGCARRIER.
WRITE:/ 'New Value:', ld_input.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_/DMBE/SM_DEALDETAILDELIVERY_STR,
INCOTERMS TYPE STRING,
INCOTERMS2 TYPE STRING,
ORIGIN TYPE STRING,
DESTINATION TYPE STRING,
MOT TYPE STRING,
TERMSOFTRANSFER TYPE STRING,
CYCLESELECTION TYPE STRING,
CYCLESELECTIONTO TYPE STRING,
LOADINGFROM TYPE STRING,
LOADINGTO TYPE STRING,
DISCHARGEFROM TYPE STRING,
DISCHARGETO TYPE STRING,
DLVEFFECTIVEFROM TYPE STRING,
DLVEFFECTIVETO TYPE STRING,
MOTVESSEL TYPE STRING,
MOTVESSELTEXT TYPE STRING,
MOTPIPELINE TYPE STRING,
MOTPIPELINETEXT TYPE STRING,
MOTVEHICLE TYPE STRING,
MOTVEHICLETEXT TYPE STRING,
MOTAMOUNT TYPE STRING,
MOTCURRENCY TYPE STRING,
MOTQUANTITY TYPE STRING,
MOTUOM TYPE STRING,
MOTLAYTIME TYPE STRING,
MOTFREIGHTPAYER TYPE STRING,
MOTVEHICLEPROVIDER TYPE STRING,
CONNECTINGCARRIER TYPE STRING,
BILLINGQTLOC TYPE STRING,
DETAILSCHEDULINGDESK TYPE STRING,
LOCATION TYPE STRING,
DLVEFFECTIVEDATE TYPE STRING,END OF T_EKKO_STR. DATA: WA_/DMBE/SM_DEALDETAILDELIVERY_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_/DMBE/SM_DEALDETAILDELIVERY_STR-INCOTERMS sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-INCOTERMS2 sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-ORIGIN sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-DESTINATION sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOT sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-TERMSOFTRANSFER sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-CYCLESELECTION sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-CYCLESELECTIONTO sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-LOADINGFROM sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-LOADINGTO sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-DISCHARGEFROM sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-DISCHARGETO sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-DLVEFFECTIVEFROM sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-DLVEFFECTIVETO sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTVESSEL sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTVESSELTEXT sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTPIPELINE sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTPIPELINETEXT sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTVEHICLE sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTVEHICLETEXT sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTAMOUNT sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTCURRENCY sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTQUANTITY sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTUOM sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTLAYTIME sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTFREIGHTPAYER sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-MOTVEHICLEPROVIDER sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-CONNECTINGCARRIER sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-BILLINGQTLOC sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-DETAILSCHEDULINGDESK sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-LOCATION sy-vline
WA_/DMBE/SM_DEALDETAILDELIVERY_STR-DLVEFFECTIVEDATE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.