ABAP Select data from SAP table ROIILSA 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 ROIILSA 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 ROIILSA. 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 ROIILSA 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_ROIILSA TYPE STANDARD TABLE OF ROIILSA,
      WA_ROIILSA TYPE ROIILSA,
      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: <ROIILSA> TYPE ROIILSA.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM ROIILSA
*  INTO TABLE @DATA(IT_ROIILSA2).
*--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_ROIILSA INDEX 1 INTO DATA(WA_ROIILSA2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_ROIILSA ASSIGNING <ROIILSA>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<ROIILSA>-LFIRST_SO = 1.
<ROIILSA>-LTOTAL_SO = 1.
<ROIILSA>-MATNR = 1.
<ROIILSA>-LFIRST_MA = 1.
<ROIILSA>-LTOTAL_MA = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_ROIILSA-KAPAZ_TOT, sy-vline,
WA_ROIILSA-VOLUN_TOT, sy-vline,
WA_ROIILSA-DESCR_VOL, sy-vline,
WA_ROIILSA-KAPAZ_UOM, sy-vline,
WA_ROIILSA-DESCR_KAP, sy-vline,
WA_ROIILSA-MAXDIP_UOM, sy-vline.
ENDLOOP. *Add any further fields from structure WA_ROIILSA 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_ROIILSA 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_ROIILSA INTO WA_ROIILSA. *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 VOLUN_TOT CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_ROIILSA-VOLUN_TOT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ROIILSA-VOLUN_TOT.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit MATN1, internal->external for field MATNR_LONG CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT' EXPORTING input = WA_ROIILSA-MATNR_LONG IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_ROIILSA-MATNR_LONG.
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_ROIILSA_STR,
LFIRST_SO TYPE STRING,
LTOTAL_SO TYPE STRING,
MATNR TYPE STRING,
LFIRST_MA TYPE STRING,
LTOTAL_MA TYPE STRING,
KAPAZ_TOT TYPE STRING,
VOLUN_TOT TYPE STRING,
DESCR_VOL TYPE STRING,
KAPAZ_UOM TYPE STRING,
DESCR_KAP TYPE STRING,
MAXDIP_UOM TYPE STRING,
DESCR_MAXD TYPE STRING,
MINDIP_UOM TYPE STRING,
DESCR_MIND TYPE STRING,
UNPQ_UOM TYPE STRING,
DESCR_UNPQ TYPE STRING,
CONT_UOM TYPE STRING,
DESCR_CONT TYPE STRING,
MAXSW_UOM TYPE STRING,
DESCR_MAXS TYPE STRING,
FLRW_UOM TYPE STRING,
DESCR_FLRW TYPE STRING,
MAXIN_UOM TYPE STRING,
DESCR_MAXI TYPE STRING,
MAXOUT_UOM TYPE STRING,
DESCR_MAXO TYPE STRING,
ICSTAT_SO TYPE STRING,
TXSTAT_SO TYPE STRING,
AN_DAT TYPE STRING,
AN_TIM TYPE STRING,
CALTMP_UOM TYPE STRING,
DESCR_TMP TYPE STRING,
DENS_UOM TYPE STRING,
DESCR_DENS TYPE STRING,
CALHGT_UOM TYPE STRING,
DESCR_CALHGT TYPE STRING,
DATDIP_UOM TYPE STRING,
DESCR_DATDIP TYPE STRING,
MINFLRF_UOM TYPE STRING,
DESCR_MINFLRF TYPE STRING,
EXP_COEF_UOM TYPE STRING,
VOLUN TYPE STRING,
MASUN TYPE STRING,
LENUN TYPE STRING,
FRTUN TYPE STRING,
TIMUN TYPE STRING,
TMPUN TYPE STRING,
DNSUN TYPE STRING,
SPVUN TYPE STRING,
DNTYP TYPE STRING,
MATNR_LONG TYPE STRING,END OF T_EKKO_STR. DATA: WA_ROIILSA_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_ROIILSA_STR-LFIRST_SO sy-vline
WA_ROIILSA_STR-LTOTAL_SO sy-vline
WA_ROIILSA_STR-MATNR sy-vline
WA_ROIILSA_STR-LFIRST_MA sy-vline
WA_ROIILSA_STR-LTOTAL_MA sy-vline
WA_ROIILSA_STR-KAPAZ_TOT sy-vline
WA_ROIILSA_STR-VOLUN_TOT sy-vline
WA_ROIILSA_STR-DESCR_VOL sy-vline
WA_ROIILSA_STR-KAPAZ_UOM sy-vline
WA_ROIILSA_STR-DESCR_KAP sy-vline
WA_ROIILSA_STR-MAXDIP_UOM sy-vline
WA_ROIILSA_STR-DESCR_MAXD sy-vline
WA_ROIILSA_STR-MINDIP_UOM sy-vline
WA_ROIILSA_STR-DESCR_MIND sy-vline
WA_ROIILSA_STR-UNPQ_UOM sy-vline
WA_ROIILSA_STR-DESCR_UNPQ sy-vline
WA_ROIILSA_STR-CONT_UOM sy-vline
WA_ROIILSA_STR-DESCR_CONT sy-vline
WA_ROIILSA_STR-MAXSW_UOM sy-vline
WA_ROIILSA_STR-DESCR_MAXS sy-vline
WA_ROIILSA_STR-FLRW_UOM sy-vline
WA_ROIILSA_STR-DESCR_FLRW sy-vline
WA_ROIILSA_STR-MAXIN_UOM sy-vline
WA_ROIILSA_STR-DESCR_MAXI sy-vline
WA_ROIILSA_STR-MAXOUT_UOM sy-vline
WA_ROIILSA_STR-DESCR_MAXO sy-vline
WA_ROIILSA_STR-ICSTAT_SO sy-vline
WA_ROIILSA_STR-TXSTAT_SO sy-vline
WA_ROIILSA_STR-AN_DAT sy-vline
WA_ROIILSA_STR-AN_TIM sy-vline
WA_ROIILSA_STR-CALTMP_UOM sy-vline
WA_ROIILSA_STR-DESCR_TMP sy-vline
WA_ROIILSA_STR-DENS_UOM sy-vline
WA_ROIILSA_STR-DESCR_DENS sy-vline
WA_ROIILSA_STR-CALHGT_UOM sy-vline
WA_ROIILSA_STR-DESCR_CALHGT sy-vline
WA_ROIILSA_STR-DATDIP_UOM sy-vline
WA_ROIILSA_STR-DESCR_DATDIP sy-vline
WA_ROIILSA_STR-MINFLRF_UOM sy-vline
WA_ROIILSA_STR-DESCR_MINFLRF sy-vline
WA_ROIILSA_STR-EXP_COEF_UOM sy-vline
WA_ROIILSA_STR-VOLUN sy-vline
WA_ROIILSA_STR-MASUN sy-vline
WA_ROIILSA_STR-LENUN sy-vline
WA_ROIILSA_STR-FRTUN sy-vline
WA_ROIILSA_STR-TIMUN sy-vline
WA_ROIILSA_STR-TMPUN sy-vline
WA_ROIILSA_STR-DNSUN sy-vline
WA_ROIILSA_STR-SPVUN sy-vline
WA_ROIILSA_STR-DNTYP sy-vline
WA_ROIILSA_STR-MATNR_LONG sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.