ABAP Select data from SAP table OIASCC 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 OIASCC 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 OIASCC. 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 OIASCC 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_OIASCC TYPE STANDARD TABLE OF OIASCC,
      WA_OIASCC TYPE OIASCC,
      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: <OIASCC> TYPE OIASCC.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM OIASCC
*  INTO TABLE @DATA(IT_OIASCC2).
*--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_OIASCC INDEX 1 INTO DATA(WA_OIASCC2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_OIASCC ASSIGNING <OIASCC>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<OIASCC>-MEINS = 1.
<OIASCC>-BALANCE = 1.
<OIASCC>-DATUM = 1.
<OIASCC>-SPRAS_VKO = 1.
<OIASCC>-WAERK = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_OIASCC-ANRED, sy-vline,
WA_OIASCC-NETWR, sy-vline,
WA_OIASCC-MESSAGE, sy-vline,
WA_OIASCC-ADRNR, sy-vline,
WA_OIASCC-NAME1, sy-vline,
WA_OIASCC-NAME2, sy-vline.
ENDLOOP. *Add any further fields from structure WA_OIASCC 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_OIASCC 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_OIASCC INTO WA_OIASCC. *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 MEINS CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_OIASCC-MEINS IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIASCC-MEINS.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ISOLA, internal->external for field SPRAS_VKO CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_OIASCC-SPRAS_VKO IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIASCC-SPRAS_VKO.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit PERI6, internal->external for field VSPMON CALL FUNCTION 'CONVERSION_EXIT_PERI6_OUTPUT' EXPORTING input = WA_OIASCC-VSPMON IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIASCC-VSPMON.
WRITE:/ 'New Value:', ld_input.

*Conversion exit PERI6, internal->external for field BSPMON CALL FUNCTION 'CONVERSION_EXIT_PERI6_OUTPUT' EXPORTING input = WA_OIASCC-BSPMON IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIASCC-BSPMON.
WRITE:/ 'New Value:', ld_input.

*Conversion exit PERI, internal->external for field VSPWOC CALL FUNCTION 'CONVERSION_EXIT_PERI_OUTPUT' EXPORTING input = WA_OIASCC-VSPWOC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIASCC-VSPWOC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit PERI, internal->external for field BSPWOC CALL FUNCTION 'CONVERSION_EXIT_PERI_OUTPUT' EXPORTING input = WA_OIASCC-BSPWOC IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIASCC-BSPWOC.
WRITE:/ 'New Value:', ld_input.

*Conversion exit PERI, internal->external for field VSPBUP CALL FUNCTION 'CONVERSION_EXIT_PERI_OUTPUT' EXPORTING input = WA_OIASCC-VSPBUP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIASCC-VSPBUP.
WRITE:/ 'New Value:', ld_input.

*Conversion exit PERI, internal->external for field BSPBUP CALL FUNCTION 'CONVERSION_EXIT_PERI_OUTPUT' EXPORTING input = WA_OIASCC-BSPBUP IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIASCC-BSPBUP.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field NJAHR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_OIASCC-NJAHR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIASCC-NJAHR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit CUNIT, internal->external for field DISPME CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_OIASCC-DISPME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIASCC-DISPME.
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_OIASCC_STR,
MEINS TYPE STRING,
BALANCE TYPE STRING,
DATUM TYPE STRING,
SPRAS_VKO TYPE STRING,
WAERK TYPE STRING,
ANRED TYPE STRING,
NETWR TYPE STRING,
MESSAGE TYPE STRING,
ADRNR TYPE STRING,
NAME1 TYPE STRING,
NAME2 TYPE STRING,
NAME3 TYPE STRING,
NAME4 TYPE STRING,
STRAS TYPE STRING,
PFACH TYPE STRING,
PFORT TYPE STRING,
PSTL2 TYPE STRING,
LAND1 TYPE STRING,
PSTLZ TYPE STRING,
ORT01 TYPE STRING,
ORT02 TYPE STRING,
REGIO TYPE STRING,
TEXT TYPE STRING,
BUKRS TYPE STRING,
SLAND TYPE STRING,
MANDT TYPE STRING,
PREQNO TYPE STRING,
NETDOC TYPE STRING,
PREQTYP TYPE STRING,
EXGPTR TYPE STRING,
VKORG TYPE STRING,
SPART TYPE STRING,
VTWEG TYPE STRING,
WAERS TYPE STRING,
VEXGNUM TYPE STRING,
BEXGNUM TYPE STRING,
VEXGTYP TYPE STRING,
BEXGTYP TYPE STRING,
VMATREF TYPE STRING,
BMATREF TYPE STRING,
VMATNR TYPE STRING,
BMATNR TYPE STRING,
VOIBASPROD TYPE STRING,
BOIBASPROD TYPE STRING,
VWERKS TYPE STRING,
BWERKS TYPE STRING,
VSPMON TYPE STRING,
BSPMON TYPE STRING,
VSPTAG TYPE STRING,
BSPTAG TYPE STRING,
VSPWOC TYPE STRING,
BSPWOC TYPE STRING,
VSPBUP TYPE STRING,
BSPBUP TYPE STRING,
DOCSTAT TYPE STRING,
NJAHR TYPE STRING,
MAPPE TYPE STRING,
BICNT TYPE STRING,
NETBAL TYPE STRING,
ERDAT TYPE STRING,
ERTIM TYPE STRING,
ERNAM TYPE STRING,
AEDAT TYPE STRING,
AETIM TYPE STRING,
AENAM TYPE STRING,
OIINVCYC1 TYPE STRING,
OIINVCYC2 TYPE STRING,
OIINVCYC3 TYPE STRING,
OIINVCYC4 TYPE STRING,
OIINVCYC5 TYPE STRING,
OIINVCYC6 TYPE STRING,
OIINVCYC7 TYPE STRING,
OIINVCYC8 TYPE STRING,
OIINVCYC9 TYPE STRING,
OIINCLIA TYPE STRING,
OIINCPFA TYPE STRING,
DISPME TYPE STRING,
OIAMWOFI TYPE STRING,
OIABALAN TYPE STRING,
_DATAAGING TYPE STRING,
PDUMMY TYPE STRING,END OF T_EKKO_STR. DATA: WA_OIASCC_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_OIASCC_STR-MEINS sy-vline
WA_OIASCC_STR-BALANCE sy-vline
WA_OIASCC_STR-DATUM sy-vline
WA_OIASCC_STR-SPRAS_VKO sy-vline
WA_OIASCC_STR-WAERK sy-vline
WA_OIASCC_STR-ANRED sy-vline
WA_OIASCC_STR-NETWR sy-vline
WA_OIASCC_STR-MESSAGE sy-vline
WA_OIASCC_STR-ADRNR sy-vline
WA_OIASCC_STR-NAME1 sy-vline
WA_OIASCC_STR-NAME2 sy-vline
WA_OIASCC_STR-NAME3 sy-vline
WA_OIASCC_STR-NAME4 sy-vline
WA_OIASCC_STR-STRAS sy-vline
WA_OIASCC_STR-PFACH sy-vline
WA_OIASCC_STR-PFORT sy-vline
WA_OIASCC_STR-PSTL2 sy-vline
WA_OIASCC_STR-LAND1 sy-vline
WA_OIASCC_STR-PSTLZ sy-vline
WA_OIASCC_STR-ORT01 sy-vline
WA_OIASCC_STR-ORT02 sy-vline
WA_OIASCC_STR-REGIO sy-vline
WA_OIASCC_STR-TEXT sy-vline
WA_OIASCC_STR-BUKRS sy-vline
WA_OIASCC_STR-SLAND sy-vline
WA_OIASCC_STR-MANDT sy-vline
WA_OIASCC_STR-PREQNO sy-vline
WA_OIASCC_STR-NETDOC sy-vline
WA_OIASCC_STR-PREQTYP sy-vline
WA_OIASCC_STR-EXGPTR sy-vline
WA_OIASCC_STR-VKORG sy-vline
WA_OIASCC_STR-SPART sy-vline
WA_OIASCC_STR-VTWEG sy-vline
WA_OIASCC_STR-WAERS sy-vline
WA_OIASCC_STR-VEXGNUM sy-vline
WA_OIASCC_STR-BEXGNUM sy-vline
WA_OIASCC_STR-VEXGTYP sy-vline
WA_OIASCC_STR-BEXGTYP sy-vline
WA_OIASCC_STR-VMATREF sy-vline
WA_OIASCC_STR-BMATREF sy-vline
WA_OIASCC_STR-VMATNR sy-vline
WA_OIASCC_STR-BMATNR sy-vline
WA_OIASCC_STR-VOIBASPROD sy-vline
WA_OIASCC_STR-BOIBASPROD sy-vline
WA_OIASCC_STR-VWERKS sy-vline
WA_OIASCC_STR-BWERKS sy-vline
WA_OIASCC_STR-VSPMON sy-vline
WA_OIASCC_STR-BSPMON sy-vline
WA_OIASCC_STR-VSPTAG sy-vline
WA_OIASCC_STR-BSPTAG sy-vline
WA_OIASCC_STR-VSPWOC sy-vline
WA_OIASCC_STR-BSPWOC sy-vline
WA_OIASCC_STR-VSPBUP sy-vline
WA_OIASCC_STR-BSPBUP sy-vline
WA_OIASCC_STR-DOCSTAT sy-vline
WA_OIASCC_STR-NJAHR sy-vline
WA_OIASCC_STR-MAPPE sy-vline
WA_OIASCC_STR-BICNT sy-vline
WA_OIASCC_STR-NETBAL sy-vline
WA_OIASCC_STR-ERDAT sy-vline
WA_OIASCC_STR-ERTIM sy-vline
WA_OIASCC_STR-ERNAM sy-vline
WA_OIASCC_STR-AEDAT sy-vline
WA_OIASCC_STR-AETIM sy-vline
WA_OIASCC_STR-AENAM sy-vline
WA_OIASCC_STR-OIINVCYC1 sy-vline
WA_OIASCC_STR-OIINVCYC2 sy-vline
WA_OIASCC_STR-OIINVCYC3 sy-vline
WA_OIASCC_STR-OIINVCYC4 sy-vline
WA_OIASCC_STR-OIINVCYC5 sy-vline
WA_OIASCC_STR-OIINVCYC6 sy-vline
WA_OIASCC_STR-OIINVCYC7 sy-vline
WA_OIASCC_STR-OIINVCYC8 sy-vline
WA_OIASCC_STR-OIINVCYC9 sy-vline
WA_OIASCC_STR-OIINCLIA sy-vline
WA_OIASCC_STR-OIINCPFA sy-vline
WA_OIASCC_STR-DISPME sy-vline
WA_OIASCC_STR-OIAMWOFI sy-vline
WA_OIASCC_STR-OIABALAN sy-vline
WA_OIASCC_STR-_DATAAGING sy-vline
WA_OIASCC_STR-PDUMMY sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.