ABAP Select data from SAP table ISMETERREADINGDOCUMENTTP_D 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 ISMETERREADINGDOCUMENTTP_D 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 ISMETERREADINGDOCUMENTTP_D. 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 ISMETERREADINGDOCUMENTTP_D 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_ISMETERREADINGDOCUMENTTP_D TYPE STANDARD TABLE OF ISMETERREADINGDOCUMENTTP_D,
      WA_ISMETERREADINGDOCUMENTTP_D TYPE ISMETERREADINGDOCUMENTTP_D,
      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: <ISMETERREADINGDOCUMENTTP_D> TYPE ISMETERREADINGDOCUMENTTP_D.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM ISMETERREADINGDOCUMENTTP_D
*  INTO TABLE @DATA(IT_ISMETERREADINGDOCUMENTTP_D2).
*--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_ISMETERREADINGDOCUMENTTP_D INDEX 1 INTO DATA(WA_ISMETERREADINGDOCUMENTTP_D2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_ISMETERREADINGDOCUMENTTP_D ASSIGNING <ISMETERREADINGDOCUMENTTP_D>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<ISMETERREADINGDOCUMENTTP_D>-METERREADINGDOCUMENT = 1.
<ISMETERREADINGDOCUMENTTP_D>-SERIALNUMBER = 1.
<ISMETERREADINGDOCUMENTTP_D>-EQUIPMENT = 1.
<ISMETERREADINGDOCUMENTTP_D>-UTILITIESREGISTER = 1.
<ISMETERREADINGDOCUMENTTP_D>-METERREADINGDATE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_ISMETERREADINGDOCUMENTTP_D-METERREADINGTIME, sy-vline,
WA_ISMETERREADINGDOCUMENTTP_D-METERREADINGRESULTPREDECIMALS, sy-vline,
WA_ISMETERREADINGDOCUMENTTP_D-METERREADINGRESULTDECIMALS, sy-vline,
WA_ISMETERREADINGDOCUMENTTP_D-METERREADINGMEASUREMENTUNIT, sy-vline,
WA_ISMETERREADINGDOCUMENTTP_D-BLLDMETERREADINGRESULTPREDCMLS, sy-vline,
WA_ISMETERREADINGDOCUMENTTP_D-BLLDMETERREADINGRESULTDCMLS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_ISMETERREADINGDOCUMENTTP_D 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_ISMETERREADINGDOCUMENTTP_D 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_ISMETERREADINGDOCUMENTTP_D INTO WA_ISMETERREADINGDOCUMENTTP_D. *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 METERREADINGDOCUMENT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_ISMETERREADINGDOCUMENTTP_D-METERREADINGDOCUMENT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ISMETERREADINGDOCUMENTTP_D-METERREADINGDOCUMENT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GERNR, internal->external for field SERIALNUMBER CALL FUNCTION 'CONVERSION_EXIT_GERNR_OUTPUT' EXPORTING input = WA_ISMETERREADINGDOCUMENTTP_D-SERIALNUMBER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ISMETERREADINGDOCUMENTTP_D-SERIALNUMBER.
WRITE:/ 'New Value:', ld_input.

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

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

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

*Conversion exit ALPHA, internal->external for field SERVICEORDER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_ISMETERREADINGDOCUMENTTP_D-SERVICEORDER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ISMETERREADINGDOCUMENTTP_D-SERVICEORDER.
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_ISMETERREADINGDOCUMENTTP_D_STR,
METERREADINGDOCUMENT TYPE STRING,
SERIALNUMBER TYPE STRING,
EQUIPMENT TYPE STRING,
UTILITIESREGISTER TYPE STRING,
METERREADINGDATE TYPE STRING,
METERREADINGTIME TYPE STRING,
METERREADINGRESULTPREDECIMALS TYPE STRING,
METERREADINGRESULTDECIMALS TYPE STRING,
METERREADINGMEASUREMENTUNIT TYPE STRING,
BLLDMETERREADINGRESULTPREDCMLS TYPE STRING,
BLLDMETERREADINGRESULTDCMLS TYPE STRING,
BILLINGMEASUREMENTUNIT TYPE STRING,
NMBROFUTILSREGDIGITSPREDCMLS TYPE STRING,
NMBROFUTILSREGDIGITSDCMLS TYPE STRING,
METERREADINGRESULTVALUE TYPE STRING,
METERREADINGCONSUMPTIONACTUAL TYPE STRING,
METERREADINGCONSUMPTIONEXPD TYPE STRING,
METERREADINGRESULTDIFFERENCE TYPE STRING,
METERREADINGSYSTEMDATE TYPE STRING,
METERREADINGORIGINESTIMATION TYPE STRING,
METERREADINGESTIMATEDVALUE TYPE STRING,
METERREADINGSTATUS TYPE STRING,
METERREADINGTYPE TYPE STRING,
METERREADINGCATEGORY TYPE STRING,
SCHEDLDMTRREADINGCATEGORY TYPE STRING,
SCHEDULEDMETERREADINGDATE TYPE STRING,
ACTUALMETERREADINGDATE TYPE STRING,
ACTUALMETERREADINGTIME TYPE STRING,
MAXIMUMMETERREADINGDATE TYPE STRING,
MAXIMUMMETERREADINGTIME TYPE STRING,
METERREADINGALLOCATIONDATE TYPE STRING,
UTILITIESGASALLOCATIONDATE TYPE STRING,
CTRLMTRREADINGORDERSCHEDLDDATE TYPE STRING,
CTRLMTRREADINGORDERSCHEDLDTIME TYPE STRING,
CONTROLMETERREADINGISPRINTED TYPE STRING,
MTRRDNGACTIVESTATUS TYPE STRING,
INDEPMTRRDNGVALIDATIONCHK TYPE STRING,
DEPDNTMTRRDNGVALIDATIONCHK TYPE STRING,
METERREADERNOTECODE TYPE STRING,
METERREADERNOTEFLLWUPACTN TYPE STRING,
METERREADERCODE TYPE STRING,
METERREADINGBASEPERIODCAT TYPE STRING,
METERREADINGCREATIONDATE TYPE STRING,
METERREADINGCREATEDBYUSER TYPE STRING,
METERREADINGLASTCHANGEDATE TYPE STRING,
METERREADINGLASTCHANGEDBYUSER TYPE STRING,
ADVANCEDMETERINGSYSTEM TYPE STRING,
METERREADINGTRANSFERSTATUS TYPE STRING,
METERREADINGTRANSFERDATETIME TYPE STRING,
ADVNCDMETERINGDATAORIGNTYPE TYPE STRING,
MOBILEMETERREADINGENTRYSYSTEM TYPE STRING,
METERREADINGORDERISOUTPUTTED TYPE STRING,
METERREADINGCHECKDIGIT TYPE STRING,
METERREADINGFASTENTRYNUMBER TYPE STRING,
METERREADINGISRECAPTURED TYPE STRING,
METERREADINGAUTOMMNTRGSTATUS TYPE STRING,
MTRRDNGISSCHDLFORMLTPLORDCRTN TYPE STRING,
MLTPLMTRRDNGORDCRTNCNTRLGROUP TYPE STRING,
MLTPLMTRRDNGREFSCHEDLDDATE TYPE STRING,
ORDERTYPE TYPE STRING,
SERVICEORDER TYPE STRING,END OF T_EKKO_STR. DATA: WA_ISMETERREADINGDOCUMENTTP_D_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_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGDOCUMENT sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-SERIALNUMBER sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-EQUIPMENT sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-UTILITIESREGISTER sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGDATE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGTIME sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGRESULTPREDECIMALS sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGRESULTDECIMALS sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGMEASUREMENTUNIT sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-BLLDMETERREADINGRESULTPREDCMLS sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-BLLDMETERREADINGRESULTDCMLS sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-BILLINGMEASUREMENTUNIT sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-NMBROFUTILSREGDIGITSPREDCMLS sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-NMBROFUTILSREGDIGITSDCMLS sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGRESULTVALUE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGCONSUMPTIONACTUAL sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGCONSUMPTIONEXPD sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGRESULTDIFFERENCE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGSYSTEMDATE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGORIGINESTIMATION sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGESTIMATEDVALUE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGSTATUS sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGTYPE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGCATEGORY sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-SCHEDLDMTRREADINGCATEGORY sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-SCHEDULEDMETERREADINGDATE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-ACTUALMETERREADINGDATE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-ACTUALMETERREADINGTIME sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-MAXIMUMMETERREADINGDATE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-MAXIMUMMETERREADINGTIME sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGALLOCATIONDATE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-UTILITIESGASALLOCATIONDATE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-CTRLMTRREADINGORDERSCHEDLDDATE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-CTRLMTRREADINGORDERSCHEDLDTIME sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-CONTROLMETERREADINGISPRINTED sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-MTRRDNGACTIVESTATUS sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-INDEPMTRRDNGVALIDATIONCHK sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-DEPDNTMTRRDNGVALIDATIONCHK sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADERNOTECODE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADERNOTEFLLWUPACTN sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADERCODE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGBASEPERIODCAT sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGCREATIONDATE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGCREATEDBYUSER sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGLASTCHANGEDATE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGLASTCHANGEDBYUSER sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-ADVANCEDMETERINGSYSTEM sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGTRANSFERSTATUS sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGTRANSFERDATETIME sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-ADVNCDMETERINGDATAORIGNTYPE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-MOBILEMETERREADINGENTRYSYSTEM sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGORDERISOUTPUTTED sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGCHECKDIGIT sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGFASTENTRYNUMBER sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGISRECAPTURED sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-METERREADINGAUTOMMNTRGSTATUS sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-MTRRDNGISSCHDLFORMLTPLORDCRTN sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-MLTPLMTRRDNGORDCRTNCNTRLGROUP sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-MLTPLMTRRDNGREFSCHEDLDDATE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-ORDERTYPE sy-vline
WA_ISMETERREADINGDOCUMENTTP_D_STR-SERVICEORDER sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.