ABAP Select data from SAP table QLTYCERTSPEC 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 QLTYCERTSPEC 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 QLTYCERTSPEC. 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 QLTYCERTSPEC 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_QLTYCERTSPEC TYPE STANDARD TABLE OF QLTYCERTSPEC,
      WA_QLTYCERTSPEC TYPE QLTYCERTSPEC,
      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: <QLTYCERTSPEC> TYPE QLTYCERTSPEC.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM QLTYCERTSPEC
*  INTO TABLE @DATA(IT_QLTYCERTSPEC2).
*--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_QLTYCERTSPEC INDEX 1 INTO DATA(WA_QLTYCERTSPEC2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_QLTYCERTSPEC ASSIGNING <QLTYCERTSPEC>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<QLTYCERTSPEC>-INSPECTIONLOT = 1.
<QLTYCERTSPEC>-INSPECTIONPARTIALLOT = 1.
<QLTYCERTSPEC>-INSPECTIONPLANOPERATIONINTERNA = 1.
<QLTYCERTSPEC>-MATERIAL = 1.
<QLTYCERTSPEC>-BATCH = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_QLTYCERTSPEC-INSPCHARCPRTLSMPL, sy-vline,
WA_QLTYCERTSPEC-INSPECTIONCHARACTERISTICSTATUS, sy-vline,
WA_QLTYCERTSPEC-INSPCHARACTERISTICSTATUSTEXT, sy-vline,
WA_QLTYCERTSPEC-INSPSPECISQUANTITATIVE, sy-vline,
WA_QLTYCERTSPEC-INSPSPECISMEASUREDVALUERQD, sy-vline,
WA_QLTYCERTSPEC-INSPSPECISSELECTEDSETREQUIRED, sy-vline.
ENDLOOP. *Add any further fields from structure WA_QLTYCERTSPEC 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_QLTYCERTSPEC 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_QLTYCERTSPEC INTO WA_QLTYCERTSPEC. *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 INSPECTIONLOT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_QLTYCERTSPEC-INSPECTIONLOT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_QLTYCERTSPEC-INSPECTIONLOT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit MATN1, internal->external for field MATERIAL CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_QLTYCERTSPEC-MATERIAL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_QLTYCERTSPEC-MATERIAL.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

*Conversion exit CUNIT, internal->external for field INSPECTIONLOTSAMPLEUNIT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_QLTYCERTSPEC-INSPECTIONLOTSAMPLEUNIT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_QLTYCERTSPEC-INSPECTIONLOTSAMPLEUNIT.
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_QLTYCERTSPEC_STR,
INSPECTIONLOT TYPE STRING,
INSPECTIONPARTIALLOT TYPE STRING,
INSPECTIONPLANOPERATIONINTERNA TYPE STRING,
MATERIAL TYPE STRING,
BATCH TYPE STRING,
INSPCHARCPRTLSMPL TYPE STRING,
INSPECTIONCHARACTERISTICSTATUS TYPE STRING,
INSPCHARACTERISTICSTATUSTEXT TYPE STRING,
INSPSPECISQUANTITATIVE TYPE STRING,
INSPSPECISMEASUREDVALUERQD TYPE STRING,
INSPSPECISSELECTEDSETREQUIRED TYPE STRING,
INSPSPECUPPERLIMIT TYPE STRING,
INSPSPECLOWERLIMIT TYPE STRING,
INSPCHARCSCOPELIMITATION TYPE STRING,
INSPSPECISLONGTERMINSPECTION TYPE STRING,
INSPSPECRECORDINGTYPE TYPE STRING,
INSPRESULTISDOCUMENTATIONRQD TYPE STRING,
INSPSPECCHARCCATEGORY TYPE STRING,
INSPSPECISDESTRUCTIVE TYPE STRING,
INSPSPECRESULTCALCULATION TYPE STRING,
INSPSPECISSAMPLINGPROCEDRQD TYPE STRING,
INSPSPECISSCRAPRELEVANT TYPE STRING,
INSPSPECISDEFECTRECORDINGRQD TYPE STRING,
INSPSPECISDEFECTSRECGAUTOMATIC TYPE STRING,
INSPSPECISCHGDOCREQUIRED TYPE STRING,
INSPECTIONMETHODPLANT TYPE STRING,
INSPECTIONMETHOD TYPE STRING,
INSPECTIONMETHODVERSION TYPE STRING,
INSPECTIONMETHODTEXT TYPE STRING,
INSPMETHODHASLONGTEXT TYPE STRING,
INSPSPECIMPORTANCECODE TYPE STRING,
INSPECTIONSPECIFICATIONPLANT TYPE STRING,
INSPECTIONSPECIFICATION TYPE STRING,
INSPECTIONSPECIFICATIONVERSION TYPE STRING,
INSPECTIONSPECIFICATIONTEXT TYPE STRING,
INSPSPECINFORMATIONFIELD1 TYPE STRING,
INSPSPECINFORMATIONFIELD2 TYPE STRING,
INSPSPECINFORMATIONFIELD3 TYPE STRING,
SELECTEDCODESET TYPE STRING,
SELECTEDCODESETPLANT TYPE STRING,
SELECTEDCODESETTEXT TYPE STRING,
INSPSPECADDITIONALCATALOGTEXT TYPE STRING,
INSPSPECDECIMALPLACES TYPE STRING,
INSPECTIONSPECIFICATIONUNIT TYPE STRING,
INSPSPECFRMTDTARGETVALUE TYPE STRING,
INSPSPECFRMTDUPPERLIMIT TYPE STRING,
INSPSPECFRMTDLOWERLIMIT TYPE STRING,
INSPSPECUPPERLIMITFLT TYPE STRING,
INSPSPECLOWERLIMITFLT TYPE STRING,
INSPSPECHASACTIVECHANGE TYPE STRING,
INSPSPECFRMTD1STUPPERSPECLIMIT TYPE STRING,
INSPSPECFRMTD1STLOWERSPECLIMIT TYPE STRING,
INSPSPECFRMTD2NDUPPERSPECLIMIT TYPE STRING,
INSPSPECFRMTD2NDLOWERSPECLIMIT TYPE STRING,
INSPSPECFRMTDUPRPLSBLTYLMT TYPE STRING,
INSPSPECFRMTDLOWERPLSBLTYLMT TYPE STRING,
SAMPLINGPROCEDURE TYPE STRING,
SAMPLINGPROCEDURETEXT TYPE STRING,
INSPCHARACTERISTICSAMPLESIZE TYPE STRING,
INSPCHARCQUANTITY TYPE STRING,
INSPECTIONLOTSAMPLEUNIT TYPE STRING,
INSPECTIONLOTISFULLINSPECTION TYPE STRING,
INSPVALNISBYNONCONFORMINGUNITS TYPE STRING,
INSPVALNISBYNUMBEROFDEFECTS TYPE STRING,
INSPVALNISBYISOMETHOD TYPE STRING,
INSPVALNISBYCODE TYPE STRING,
INSPVALNISMANUALLY TYPE STRING,
SAMPLINGPROCEDUREMLTPLSAMPLES TYPE STRING,
INSPVALNISBYSPECLIMITS TYPE STRING,
SAMPLINGPROCEDACCEPTANCECOUNT TYPE STRING,
INSPSAMPLEREJECTIONNUMBER TYPE STRING,
INSPVALFRMTDISOMETHODFACTOR TYPE STRING,
CHARCVALUEDEPENDENCY TYPE STRING,
INSPMETHODLONGTEXT TYPE STRING,END OF T_EKKO_STR. DATA: WA_QLTYCERTSPEC_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_QLTYCERTSPEC_STR-INSPECTIONLOT sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONPARTIALLOT sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONPLANOPERATIONINTERNA sy-vline
WA_QLTYCERTSPEC_STR-MATERIAL sy-vline
WA_QLTYCERTSPEC_STR-BATCH sy-vline
WA_QLTYCERTSPEC_STR-INSPCHARCPRTLSMPL sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONCHARACTERISTICSTATUS sy-vline
WA_QLTYCERTSPEC_STR-INSPCHARACTERISTICSTATUSTEXT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECISQUANTITATIVE sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECISMEASUREDVALUERQD sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECISSELECTEDSETREQUIRED sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECUPPERLIMIT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECLOWERLIMIT sy-vline
WA_QLTYCERTSPEC_STR-INSPCHARCSCOPELIMITATION sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECISLONGTERMINSPECTION sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECRECORDINGTYPE sy-vline
WA_QLTYCERTSPEC_STR-INSPRESULTISDOCUMENTATIONRQD sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECCHARCCATEGORY sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECISDESTRUCTIVE sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECRESULTCALCULATION sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECISSAMPLINGPROCEDRQD sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECISSCRAPRELEVANT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECISDEFECTRECORDINGRQD sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECISDEFECTSRECGAUTOMATIC sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECISCHGDOCREQUIRED sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONMETHODPLANT sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONMETHOD sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONMETHODVERSION sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONMETHODTEXT sy-vline
WA_QLTYCERTSPEC_STR-INSPMETHODHASLONGTEXT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECIMPORTANCECODE sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONSPECIFICATIONPLANT sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONSPECIFICATION sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONSPECIFICATIONVERSION sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONSPECIFICATIONTEXT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECINFORMATIONFIELD1 sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECINFORMATIONFIELD2 sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECINFORMATIONFIELD3 sy-vline
WA_QLTYCERTSPEC_STR-SELECTEDCODESET sy-vline
WA_QLTYCERTSPEC_STR-SELECTEDCODESETPLANT sy-vline
WA_QLTYCERTSPEC_STR-SELECTEDCODESETTEXT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECADDITIONALCATALOGTEXT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECDECIMALPLACES sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONSPECIFICATIONUNIT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECFRMTDTARGETVALUE sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECFRMTDUPPERLIMIT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECFRMTDLOWERLIMIT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECUPPERLIMITFLT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECLOWERLIMITFLT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECHASACTIVECHANGE sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECFRMTD1STUPPERSPECLIMIT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECFRMTD1STLOWERSPECLIMIT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECFRMTD2NDUPPERSPECLIMIT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECFRMTD2NDLOWERSPECLIMIT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECFRMTDUPRPLSBLTYLMT sy-vline
WA_QLTYCERTSPEC_STR-INSPSPECFRMTDLOWERPLSBLTYLMT sy-vline
WA_QLTYCERTSPEC_STR-SAMPLINGPROCEDURE sy-vline
WA_QLTYCERTSPEC_STR-SAMPLINGPROCEDURETEXT sy-vline
WA_QLTYCERTSPEC_STR-INSPCHARACTERISTICSAMPLESIZE sy-vline
WA_QLTYCERTSPEC_STR-INSPCHARCQUANTITY sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONLOTSAMPLEUNIT sy-vline
WA_QLTYCERTSPEC_STR-INSPECTIONLOTISFULLINSPECTION sy-vline
WA_QLTYCERTSPEC_STR-INSPVALNISBYNONCONFORMINGUNITS sy-vline
WA_QLTYCERTSPEC_STR-INSPVALNISBYNUMBEROFDEFECTS sy-vline
WA_QLTYCERTSPEC_STR-INSPVALNISBYISOMETHOD sy-vline
WA_QLTYCERTSPEC_STR-INSPVALNISBYCODE sy-vline
WA_QLTYCERTSPEC_STR-INSPVALNISMANUALLY sy-vline
WA_QLTYCERTSPEC_STR-SAMPLINGPROCEDUREMLTPLSAMPLES sy-vline
WA_QLTYCERTSPEC_STR-INSPVALNISBYSPECLIMITS sy-vline
WA_QLTYCERTSPEC_STR-SAMPLINGPROCEDACCEPTANCECOUNT sy-vline
WA_QLTYCERTSPEC_STR-INSPSAMPLEREJECTIONNUMBER sy-vline
WA_QLTYCERTSPEC_STR-INSPVALFRMTDISOMETHODFACTOR sy-vline
WA_QLTYCERTSPEC_STR-CHARCVALUEDEPENDENCY sy-vline
WA_QLTYCERTSPEC_STR-INSPMETHODLONGTEXT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.