ABAP Select data from SAP table ROIKLOAD 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 ROIKLOAD 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 ROIKLOAD. 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 ROIKLOAD 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_ROIKLOAD TYPE STANDARD TABLE OF ROIKLOAD,
      WA_ROIKLOAD TYPE ROIKLOAD,
      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: <ROIKLOAD> TYPE ROIKLOAD.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM ROIKLOAD
*  INTO TABLE @DATA(IT_ROIKLOAD2).
*--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_ROIKLOAD INDEX 1 INTO DATA(WA_ROIKLOAD2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_ROIKLOAD ASSIGNING <ROIKLOAD>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<ROIKLOAD>-FGROUP_S = 1.
<ROIKLOAD>-DOCTYPE_S = 1.
<ROIKLOAD>-DOCNO_S = 1.
<ROIKLOAD>-VSTEL_S = 1.
<ROIKLOAD>-SHIPTO_S = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_ROIKLOAD-LOADDATE_S, sy-vline,
WA_ROIKLOAD-INTNO_S, sy-vline,
WA_ROIKLOAD-ITEMNO_S, sy-vline,
WA_ROIKLOAD-AUART, sy-vline,
WA_ROIKLOAD-TSTMP, sy-vline,
WA_ROIKLOAD-TSTEH, sy-vline.
ENDLOOP. *Add any further fields from structure WA_ROIKLOAD 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_ROIKLOAD 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_ROIKLOAD INTO WA_ROIKLOAD. *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 SHIPTO_S CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_ROIKLOAD-SHIPTO_S IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ROIKLOAD-SHIPTO_S.
WRITE:/ 'New Value:', ld_input.

*Conversion exit AUART, internal->external for field AUART CALL FUNCTION 'CONVERSION_EXIT_AUART_OUTPUT' EXPORTING input = WA_ROIKLOAD-AUART IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ROIKLOAD-AUART.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

*Conversion exit AUART, internal->external for field SDOCART CALL FUNCTION 'CONVERSION_EXIT_AUART_OUTPUT' EXPORTING input = WA_ROIKLOAD-SDOCART IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ROIKLOAD-SDOCART.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field VBELN_J CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_ROIKLOAD-VBELN_J IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ROIKLOAD-VBELN_J.
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_ROIKLOAD_STR,
FGROUP_S TYPE STRING,
DOCTYPE_S TYPE STRING,
DOCNO_S TYPE STRING,
VSTEL_S TYPE STRING,
SHIPTO_S TYPE STRING,
LOADDATE_S TYPE STRING,
INTNO_S TYPE STRING,
ITEMNO_S TYPE STRING,
AUART TYPE STRING,
TSTMP TYPE STRING,
TSTEH TYPE STRING,
TDICH TYPE STRING,
MTTMP TYPE STRING,
MTTEH TYPE STRING,
BDICH TYPE STRING,
BSWCN TYPE STRING,
MCF TYPE STRING,
ABIND TYPE STRING,
HYDRO TYPE STRING,
TRQNT TYPE STRING,
TRUOM TYPE STRING,
KWMENG TYPE STRING,
VRKME TYPE STRING,
LOADDATE TYPE STRING,
LOADTIME TYPE STRING,
BUDAT TYPE STRING,
OIB_BLTIME TYPE STRING,
CLIENT TYPE STRING,
LIDNO TYPE STRING,
LIDADDON TYPE STRING,
LIDTYPE TYPE STRING,
FROMDATE TYPE STRING,
TODATE TYPE STRING,
DOCNO TYPE STRING,
ITEMNO TYPE STRING,
DOCTYPE TYPE STRING,
CONTRTYP TYPE STRING,
LIDDESC TYPE STRING,
LIDDEPOT TYPE STRING,
LID3COD1 TYPE STRING,
LIDACTIND TYPE STRING,
LIDDELIND TYPE STRING,
LIDBLKIND TYPE STRING,
LIDACTREAS TYPE STRING,
LIDDELREAS TYPE STRING,
LIDBLKREAS TYPE STRING,
LID3RDPRTY TYPE STRING,
MATNR3RDP TYPE STRING,
MATTXT3RDP TYPE STRING,
CUST3RDP TYPE STRING,
MATNRTAS TYPE STRING,
ADDITTAS TYPE STRING,
LIDTAS TYPE STRING,
BSTYP TYPE STRING,
MMDOCNR TYPE STRING,
MMDITMNR TYPE STRING,
TASGRP1 TYPE STRING,
TASGRP2 TYPE STRING,
FUNCGROUP TYPE STRING,
SDOCART TYPE STRING,
TASCFLAG TYPE STRING,
KALSU TYPE STRING,
SOLDTO TYPE STRING,
SHIPTO TYPE STRING,
VSTEL TYPE STRING,
WERKS TYPE STRING,
LGORT TYPE STRING,
CHARG TYPE STRING,
MATKL TYPE STRING,
MATNR TYPE STRING,
OIHANTYP TYPE STRING,
TPLST TYPE STRING,
VEHICLE TYPE STRING,
DRIVERCODE TYPE STRING,
BWTAR TYPE STRING,
SHIFT TYPE STRING,
TRIP TYPE STRING,
OIC_MOT TYPE STRING,
VSBED TYPE STRING,
ERDAT TYPE STRING,
ERZEIT TYPE STRING,
ERNAM TYPE STRING,
AEDAT TYPE STRING,
AEZEIT TYPE STRING,
AENAME TYPE STRING,
_DATAAGING TYPE STRING,
DOCNUM TYPE STRING,
SEGNUM TYPE STRING,
VBTYP_C TYPE STRING,
VBELN_C TYPE STRING,
POSNR_C TYPE STRING,
COPY_FLG_C TYPE STRING,
VBTYP_J TYPE STRING,
VBELN_J TYPE STRING,
POSNR_J TYPE STRING,
COPY_FLG_J TYPE STRING,
ACTION TYPE STRING,
LOEIN_LIPS TYPE STRING,
LOEIN_EKPO TYPE STRING,
CHG_REASON TYPE STRING,END OF T_EKKO_STR. DATA: WA_ROIKLOAD_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_ROIKLOAD_STR-FGROUP_S sy-vline
WA_ROIKLOAD_STR-DOCTYPE_S sy-vline
WA_ROIKLOAD_STR-DOCNO_S sy-vline
WA_ROIKLOAD_STR-VSTEL_S sy-vline
WA_ROIKLOAD_STR-SHIPTO_S sy-vline
WA_ROIKLOAD_STR-LOADDATE_S sy-vline
WA_ROIKLOAD_STR-INTNO_S sy-vline
WA_ROIKLOAD_STR-ITEMNO_S sy-vline
WA_ROIKLOAD_STR-AUART sy-vline
WA_ROIKLOAD_STR-TSTMP sy-vline
WA_ROIKLOAD_STR-TSTEH sy-vline
WA_ROIKLOAD_STR-TDICH sy-vline
WA_ROIKLOAD_STR-MTTMP sy-vline
WA_ROIKLOAD_STR-MTTEH sy-vline
WA_ROIKLOAD_STR-BDICH sy-vline
WA_ROIKLOAD_STR-BSWCN sy-vline
WA_ROIKLOAD_STR-MCF sy-vline
WA_ROIKLOAD_STR-ABIND sy-vline
WA_ROIKLOAD_STR-HYDRO sy-vline
WA_ROIKLOAD_STR-TRQNT sy-vline
WA_ROIKLOAD_STR-TRUOM sy-vline
WA_ROIKLOAD_STR-KWMENG sy-vline
WA_ROIKLOAD_STR-VRKME sy-vline
WA_ROIKLOAD_STR-LOADDATE sy-vline
WA_ROIKLOAD_STR-LOADTIME sy-vline
WA_ROIKLOAD_STR-BUDAT sy-vline
WA_ROIKLOAD_STR-OIB_BLTIME sy-vline
WA_ROIKLOAD_STR-CLIENT sy-vline
WA_ROIKLOAD_STR-LIDNO sy-vline
WA_ROIKLOAD_STR-LIDADDON sy-vline
WA_ROIKLOAD_STR-LIDTYPE sy-vline
WA_ROIKLOAD_STR-FROMDATE sy-vline
WA_ROIKLOAD_STR-TODATE sy-vline
WA_ROIKLOAD_STR-DOCNO sy-vline
WA_ROIKLOAD_STR-ITEMNO sy-vline
WA_ROIKLOAD_STR-DOCTYPE sy-vline
WA_ROIKLOAD_STR-CONTRTYP sy-vline
WA_ROIKLOAD_STR-LIDDESC sy-vline
WA_ROIKLOAD_STR-LIDDEPOT sy-vline
WA_ROIKLOAD_STR-LID3COD1 sy-vline
WA_ROIKLOAD_STR-LIDACTIND sy-vline
WA_ROIKLOAD_STR-LIDDELIND sy-vline
WA_ROIKLOAD_STR-LIDBLKIND sy-vline
WA_ROIKLOAD_STR-LIDACTREAS sy-vline
WA_ROIKLOAD_STR-LIDDELREAS sy-vline
WA_ROIKLOAD_STR-LIDBLKREAS sy-vline
WA_ROIKLOAD_STR-LID3RDPRTY sy-vline
WA_ROIKLOAD_STR-MATNR3RDP sy-vline
WA_ROIKLOAD_STR-MATTXT3RDP sy-vline
WA_ROIKLOAD_STR-CUST3RDP sy-vline
WA_ROIKLOAD_STR-MATNRTAS sy-vline
WA_ROIKLOAD_STR-ADDITTAS sy-vline
WA_ROIKLOAD_STR-LIDTAS sy-vline
WA_ROIKLOAD_STR-BSTYP sy-vline
WA_ROIKLOAD_STR-MMDOCNR sy-vline
WA_ROIKLOAD_STR-MMDITMNR sy-vline
WA_ROIKLOAD_STR-TASGRP1 sy-vline
WA_ROIKLOAD_STR-TASGRP2 sy-vline
WA_ROIKLOAD_STR-FUNCGROUP sy-vline
WA_ROIKLOAD_STR-SDOCART sy-vline
WA_ROIKLOAD_STR-TASCFLAG sy-vline
WA_ROIKLOAD_STR-KALSU sy-vline
WA_ROIKLOAD_STR-SOLDTO sy-vline
WA_ROIKLOAD_STR-SHIPTO sy-vline
WA_ROIKLOAD_STR-VSTEL sy-vline
WA_ROIKLOAD_STR-WERKS sy-vline
WA_ROIKLOAD_STR-LGORT sy-vline
WA_ROIKLOAD_STR-CHARG sy-vline
WA_ROIKLOAD_STR-MATKL sy-vline
WA_ROIKLOAD_STR-MATNR sy-vline
WA_ROIKLOAD_STR-OIHANTYP sy-vline
WA_ROIKLOAD_STR-TPLST sy-vline
WA_ROIKLOAD_STR-VEHICLE sy-vline
WA_ROIKLOAD_STR-DRIVERCODE sy-vline
WA_ROIKLOAD_STR-BWTAR sy-vline
WA_ROIKLOAD_STR-SHIFT sy-vline
WA_ROIKLOAD_STR-TRIP sy-vline
WA_ROIKLOAD_STR-OIC_MOT sy-vline
WA_ROIKLOAD_STR-VSBED sy-vline
WA_ROIKLOAD_STR-ERDAT sy-vline
WA_ROIKLOAD_STR-ERZEIT sy-vline
WA_ROIKLOAD_STR-ERNAM sy-vline
WA_ROIKLOAD_STR-AEDAT sy-vline
WA_ROIKLOAD_STR-AEZEIT sy-vline
WA_ROIKLOAD_STR-AENAME sy-vline
WA_ROIKLOAD_STR-_DATAAGING sy-vline
WA_ROIKLOAD_STR-DOCNUM sy-vline
WA_ROIKLOAD_STR-SEGNUM sy-vline
WA_ROIKLOAD_STR-VBTYP_C sy-vline
WA_ROIKLOAD_STR-VBELN_C sy-vline
WA_ROIKLOAD_STR-POSNR_C sy-vline
WA_ROIKLOAD_STR-COPY_FLG_C sy-vline
WA_ROIKLOAD_STR-VBTYP_J sy-vline
WA_ROIKLOAD_STR-VBELN_J sy-vline
WA_ROIKLOAD_STR-POSNR_J sy-vline
WA_ROIKLOAD_STR-COPY_FLG_J sy-vline
WA_ROIKLOAD_STR-ACTION sy-vline
WA_ROIKLOAD_STR-LOEIN_LIPS sy-vline
WA_ROIKLOAD_STR-LOEIN_EKPO sy-vline
WA_ROIKLOAD_STR-CHG_REASON sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.