ABAP Select data from SAP table INTWACTDTSQUANT 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 INTWACTDTSQUANT 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 INTWACTDTSQUANT. 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 INTWACTDTSQUANT 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_INTWACTDTSQUANT TYPE STANDARD TABLE OF INTWACTDTSQUANT,
      WA_INTWACTDTSQUANT TYPE INTWACTDTSQUANT,
      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: <INTWACTDTSQUANT> TYPE INTWACTDTSQUANT.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM INTWACTDTSQUANT
*  INTO TABLE @DATA(IT_INTWACTDTSQUANT2).
*--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_INTWACTDTSQUANT INDEX 1 INTO DATA(WA_INTWACTDTSQUANT2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_INTWACTDTSQUANT ASSIGNING <INTWACTDTSQUANT>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<INTWACTDTSQUANT>-MANDT = 1.
<INTWACTDTSQUANT>-PROJECTNETWORKINTERNALID = 1.
<INTWACTDTSQUANT>-NETWORKACTIVITYINTERNALID = 1.
<INTWACTDTSQUANT>-BASICDURATIONUNIT = 1.
<INTWACTDTSQUANT>-STANDARDWORKQUANTITYUNIT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_INTWACTDTSQUANT-STANDARDWORKQUANTITYUNIT1, sy-vline,
WA_INTWACTDTSQUANT-TOTALFLOATFORBASICDATES, sy-vline,
WA_INTWACTDTSQUANT-TOTALFLOATFORFORECASTEDDATES, sy-vline,
WA_INTWACTDTSQUANT-STANDARDDURATIONUNIT, sy-vline,
WA_INTWACTDTSQUANT-STANDARDDURATION, sy-vline,
WA_INTWACTDTSQUANT-SCHEDLDBASICEARLIESTSTARTDATE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_INTWACTDTSQUANT 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_INTWACTDTSQUANT 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_INTWACTDTSQUANT INTO WA_INTWACTDTSQUANT. *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 CUNIT, internal->external for field BASICDURATIONUNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_INTWACTDTSQUANT-BASICDURATIONUNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_INTWACTDTSQUANT-BASICDURATIONUNIT.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

*Conversion exit CUNIT, internal->external for field FCSTDSTANDARDDURATIONUNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_INTWACTDTSQUANT-FCSTDSTANDARDDURATIONUNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_INTWACTDTSQUANT-FCSTDSTANDARDDURATIONUNIT.
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_INTWACTDTSQUANT_STR,
MANDT TYPE STRING,
PROJECTNETWORKINTERNALID TYPE STRING,
NETWORKACTIVITYINTERNALID TYPE STRING,
BASICDURATIONUNIT TYPE STRING,
STANDARDWORKQUANTITYUNIT TYPE STRING,
STANDARDWORKQUANTITYUNIT1 TYPE STRING,
TOTALFLOATFORBASICDATES TYPE STRING,
TOTALFLOATFORFORECASTEDDATES TYPE STRING,
STANDARDDURATIONUNIT TYPE STRING,
STANDARDDURATION TYPE STRING,
SCHEDLDBASICEARLIESTSTARTDATE TYPE STRING,
SCHEDLDBASICEARLIESTENDDATE TYPE STRING,
SCHEDLDBASICLATESTSTARTDATE TYPE STRING,
SCHEDLDFCSTDEARLIESTSTARTDATE TYPE STRING,
SCHEDLDFCSTDEARLIESTENDDATE TYPE STRING,
SCHEDULEDBASICLATESTENDDATE TYPE STRING,
LATESTSCHEDLDFCSTDSTARTDATE TYPE STRING,
LATESTSCHEDLDFCSTDENDDATE TYPE STRING,
ACTYCONFFCSTDENDDATE TYPE STRING,
ACTYCONFFCSTDENDTIME TYPE STRING,
SCHEDLDBASICLATESTENDTIME TYPE STRING,
SCHEDLDBASICLATESTSTARTTIME TYPE STRING,
SCHEDLDFCSTDLATESTENDTIME TYPE STRING,
SCHEDLDFCSTDLATESTSTARTTIME TYPE STRING,
SCHEDLDBASICEARLIESTENDTIME TYPE STRING,
SCHEDLDBASICEARLIESTSTARTTIME TYPE STRING,
SCHEDLDFCSTDEARLIESTENDTIME TYPE STRING,
SCHEDLDFCSTDEARLIESTSTARTTIME TYPE STRING,
CONSTRAINTTIMEFORBASICENDTIME TYPE STRING,
CONSTRAINTTIMEFORBSCSTARTTIME TYPE STRING,
FORECASTEDSTARTTIME TYPE STRING,
FORECASTEDENDTIME TYPE STRING,
ACTUALSTARTDATE TYPE STRING,
ACTUALENDDATE TYPE STRING,
ACTUALEXECUTIONSTARTTIME TYPE STRING,
ACTUALEXECUTIONENDTIME TYPE STRING,
BASICDATESFREEFLOAT TYPE STRING,
FORECASTEDDATESFREEFLOAT TYPE STRING,
PLANNEDWORKQUANTITY TYPE STRING,
ACTUALWORKQUANTITY TYPE STRING,
FORECASTEDWORKQTY TYPE STRING,
REMAININGWORKQUANTITY TYPE STRING,
ACTIVITYQUANTITY TYPE STRING,
NETWORKACTIVITYQUANTITYUNIT TYPE STRING,
NTWKACTIVITYWORKQUANTITYUNIT TYPE STRING,
FORECASTEDSTANDARDDURATION TYPE STRING,
FORECASTEDSTARTDATE TYPE STRING,
FORECASTEDENDDATE TYPE STRING,
CONSTRAINTDATEFORBSCSTARTDATE TYPE STRING,
CONSTRAINTDATEFORBSCENDDATE TYPE STRING,
ACTYBSCSTARTDATECONSTRAINTTYPE TYPE STRING,
ACTYBSCENDDATECONSTRAINTTYPE TYPE STRING,
ACTYFCSTENDDATECONSTRAINTTYPE TYPE STRING,
ACTYFCSTSTARTDTECONSTRAINTTYPE TYPE STRING,
FCSTDSTANDARDDURATIONUNIT TYPE STRING,
PLANNEDDELIVERYDURATIONINDAYS TYPE STRING,END OF T_EKKO_STR. DATA: WA_INTWACTDTSQUANT_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_INTWACTDTSQUANT_STR-MANDT sy-vline
WA_INTWACTDTSQUANT_STR-PROJECTNETWORKINTERNALID sy-vline
WA_INTWACTDTSQUANT_STR-NETWORKACTIVITYINTERNALID sy-vline
WA_INTWACTDTSQUANT_STR-BASICDURATIONUNIT sy-vline
WA_INTWACTDTSQUANT_STR-STANDARDWORKQUANTITYUNIT sy-vline
WA_INTWACTDTSQUANT_STR-STANDARDWORKQUANTITYUNIT1 sy-vline
WA_INTWACTDTSQUANT_STR-TOTALFLOATFORBASICDATES sy-vline
WA_INTWACTDTSQUANT_STR-TOTALFLOATFORFORECASTEDDATES sy-vline
WA_INTWACTDTSQUANT_STR-STANDARDDURATIONUNIT sy-vline
WA_INTWACTDTSQUANT_STR-STANDARDDURATION sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDBASICEARLIESTSTARTDATE sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDBASICEARLIESTENDDATE sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDBASICLATESTSTARTDATE sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDFCSTDEARLIESTSTARTDATE sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDFCSTDEARLIESTENDDATE sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDULEDBASICLATESTENDDATE sy-vline
WA_INTWACTDTSQUANT_STR-LATESTSCHEDLDFCSTDSTARTDATE sy-vline
WA_INTWACTDTSQUANT_STR-LATESTSCHEDLDFCSTDENDDATE sy-vline
WA_INTWACTDTSQUANT_STR-ACTYCONFFCSTDENDDATE sy-vline
WA_INTWACTDTSQUANT_STR-ACTYCONFFCSTDENDTIME sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDBASICLATESTENDTIME sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDBASICLATESTSTARTTIME sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDFCSTDLATESTENDTIME sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDFCSTDLATESTSTARTTIME sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDBASICEARLIESTENDTIME sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDBASICEARLIESTSTARTTIME sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDFCSTDEARLIESTENDTIME sy-vline
WA_INTWACTDTSQUANT_STR-SCHEDLDFCSTDEARLIESTSTARTTIME sy-vline
WA_INTWACTDTSQUANT_STR-CONSTRAINTTIMEFORBASICENDTIME sy-vline
WA_INTWACTDTSQUANT_STR-CONSTRAINTTIMEFORBSCSTARTTIME sy-vline
WA_INTWACTDTSQUANT_STR-FORECASTEDSTARTTIME sy-vline
WA_INTWACTDTSQUANT_STR-FORECASTEDENDTIME sy-vline
WA_INTWACTDTSQUANT_STR-ACTUALSTARTDATE sy-vline
WA_INTWACTDTSQUANT_STR-ACTUALENDDATE sy-vline
WA_INTWACTDTSQUANT_STR-ACTUALEXECUTIONSTARTTIME sy-vline
WA_INTWACTDTSQUANT_STR-ACTUALEXECUTIONENDTIME sy-vline
WA_INTWACTDTSQUANT_STR-BASICDATESFREEFLOAT sy-vline
WA_INTWACTDTSQUANT_STR-FORECASTEDDATESFREEFLOAT sy-vline
WA_INTWACTDTSQUANT_STR-PLANNEDWORKQUANTITY sy-vline
WA_INTWACTDTSQUANT_STR-ACTUALWORKQUANTITY sy-vline
WA_INTWACTDTSQUANT_STR-FORECASTEDWORKQTY sy-vline
WA_INTWACTDTSQUANT_STR-REMAININGWORKQUANTITY sy-vline
WA_INTWACTDTSQUANT_STR-ACTIVITYQUANTITY sy-vline
WA_INTWACTDTSQUANT_STR-NETWORKACTIVITYQUANTITYUNIT sy-vline
WA_INTWACTDTSQUANT_STR-NTWKACTIVITYWORKQUANTITYUNIT sy-vline
WA_INTWACTDTSQUANT_STR-FORECASTEDSTANDARDDURATION sy-vline
WA_INTWACTDTSQUANT_STR-FORECASTEDSTARTDATE sy-vline
WA_INTWACTDTSQUANT_STR-FORECASTEDENDDATE sy-vline
WA_INTWACTDTSQUANT_STR-CONSTRAINTDATEFORBSCSTARTDATE sy-vline
WA_INTWACTDTSQUANT_STR-CONSTRAINTDATEFORBSCENDDATE sy-vline
WA_INTWACTDTSQUANT_STR-ACTYBSCSTARTDATECONSTRAINTTYPE sy-vline
WA_INTWACTDTSQUANT_STR-ACTYBSCENDDATECONSTRAINTTYPE sy-vline
WA_INTWACTDTSQUANT_STR-ACTYFCSTENDDATECONSTRAINTTYPE sy-vline
WA_INTWACTDTSQUANT_STR-ACTYFCSTSTARTDTECONSTRAINTTYPE sy-vline
WA_INTWACTDTSQUANT_STR-FCSTDSTANDARDDURATIONUNIT sy-vline
WA_INTWACTDTSQUANT_STR-PLANNEDDELIVERYDURATIONINDAYS sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.