ABAP Select data from SAP table OIRCPISPC_IO 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 OIRCPISPC_IO 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 OIRCPISPC_IO. 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 OIRCPISPC_IO 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_OIRCPISPC_IO TYPE STANDARD TABLE OF OIRCPISPC_IO,
      WA_OIRCPISPC_IO TYPE OIRCPISPC_IO,
      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: <OIRCPISPC_IO> TYPE OIRCPISPC_IO.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM OIRCPISPC_IO
*  INTO TABLE @DATA(IT_OIRCPISPC_IO2).
*--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_OIRCPISPC_IO INDEX 1 INTO DATA(WA_OIRCPISPC_IO2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_OIRCPISPC_IO ASSIGNING <OIRCPISPC_IO>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<OIRCPISPC_IO>-OIRCPISPCIO = 1.
<OIRCPISPC_IO>-KBELN = 1.
<OIRCPISPC_IO>-OIRCCONFROM = 1.
<OIRCPISPC_IO>-OIRCCONTO = 1.
<OIRCPISPC_IO>-PRSDT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_OIRCPISPC_IO-OIC_TIME, sy-vline,
WA_OIRCPISPC_IO-COMWO, sy-vline,
WA_OIRCPISPC_IO-PBLNR, sy-vline,
WA_OIRCPISPC_IO-RNBT, sy-vline,
WA_OIRCPISPC_IO-PARFN, sy-vline,
WA_OIRCPISPC_IO-F_PR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_OIRCPISPC_IO 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_OIRCPISPC_IO 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_OIRCPISPC_IO INTO WA_OIRCPISPC_IO. *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 KBELN CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_OIRCPISPC_IO-KBELN IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIRCPISPC_IO-KBELN.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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

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

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

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

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

*Conversion exit ALPHA, internal->external for field CHDOCNUM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_OIRCPISPC_IO-CHDOCNUM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIRCPISPC_IO-CHDOCNUM.
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_OIRCPISPC_IO_STR,
OIRCPISPCIO TYPE STRING,
KBELN TYPE STRING,
OIRCCONFROM TYPE STRING,
OIRCCONTO TYPE STRING,
PRSDT TYPE STRING,
OIC_TIME TYPE STRING,
COMWO TYPE STRING,
PBLNR TYPE STRING,
RNBT TYPE STRING,
PARFN TYPE STRING,
F_PR TYPE STRING,
CALCLEV TYPE STRING,
LIGRU TYPE STRING,
LIVAR TYPE STRING,
TRTYP TYPE STRING,
KAV01 TYPE STRING,
KAV02 TYPE STRING,
KAV03 TYPE STRING,
KAV04 TYPE STRING,
MPROZ TYPE STRING,
AWAER TYPE STRING,
MABSO TYPE STRING,
NOSTA TYPE STRING,
NOVRK TYPE STRING,
NOEKP TYPE STRING,
NOLIF TYPE STRING,
INIAM TYPE STRING,
KLART TYPE STRING,
AUTOK TYPE STRING,
DRUKZ TYPE STRING,
FEHLP TYPE STRING,
BELKZ TYPE STRING,
ARCKZ TYPE STRING,
OISTYP TYPE STRING,
OIREVFLAG TYPE STRING,
RG_NUMBER TYPE STRING,
PROCDEF TYPE STRING,
REPID TYPE STRING,
CHGREASON TYPE STRING,
CHGTEXT TYPE STRING,
MATNR TYPE STRING,
PRLNR TYPE STRING,
COMNR TYPE STRING,
COMPLIST TYPE STRING,
COMPETITOR TYPE STRING,
RESPCOMP1 TYPE STRING,
RESPCOMP2 TYPE STRING,
RESPCOMP3 TYPE STRING,
RESPCOMP4 TYPE STRING,
RESPCOMP5 TYPE STRING,
HEADERFIRSTPASS TYPE STRING,
FOOTERFIRSTPASS TYPE STRING,
ROWFIRSTPASS TYPE STRING,
OWNLOCFROM TYPE STRING,
DEFKALVG TYPE STRING,
DEFKALKS TYPE STRING,
DEFKSCHL TYPE STRING,
DEFKONWA TYPE STRING,
DEFKPEIN TYPE STRING,
DEFKMEIN TYPE STRING,
DEFCALEN TYPE STRING,
DEFPERIOD TYPE STRING,
CNDCHANGE TYPE STRING,
LPRCLU TYPE STRING,
CLUSTERBRANCH TYPE STRING,
PROC_TRTYP TYPE STRING,
PBLNR_NEW TYPE STRING,
PRSDT_NEW TYPE STRING,
OIC_TIME_NEW TYPE STRING,
PRICEPASS TYPE STRING,
REPORT_WIDTH TYPE STRING,
PRDATE_TEXT TYPE STRING,
PRTIME_TEXT TYPE STRING,
TCODE TYPE STRING,
TCODE_END TYPE STRING,
TCODE_RESTART TYPE STRING,
TCODE_BRANCH TYPE STRING,
CHAR_TEXT1 TYPE STRING,
CHAR_TEXT2 TYPE STRING,
CHAR_TEXT3 TYPE STRING,
CLEAR_ON TYPE STRING,
TOP_OFF TYPE STRING,
COPY_OW TYPE STRING,
CHDOCNUM TYPE STRING,
ALV TYPE STRING,
CELLIO TYPE STRING,
CELL_COLOR TYPE STRING,END OF T_EKKO_STR. DATA: WA_OIRCPISPC_IO_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_OIRCPISPC_IO_STR-OIRCPISPCIO sy-vline
WA_OIRCPISPC_IO_STR-KBELN sy-vline
WA_OIRCPISPC_IO_STR-OIRCCONFROM sy-vline
WA_OIRCPISPC_IO_STR-OIRCCONTO sy-vline
WA_OIRCPISPC_IO_STR-PRSDT sy-vline
WA_OIRCPISPC_IO_STR-OIC_TIME sy-vline
WA_OIRCPISPC_IO_STR-COMWO sy-vline
WA_OIRCPISPC_IO_STR-PBLNR sy-vline
WA_OIRCPISPC_IO_STR-RNBT sy-vline
WA_OIRCPISPC_IO_STR-PARFN sy-vline
WA_OIRCPISPC_IO_STR-F_PR sy-vline
WA_OIRCPISPC_IO_STR-CALCLEV sy-vline
WA_OIRCPISPC_IO_STR-LIGRU sy-vline
WA_OIRCPISPC_IO_STR-LIVAR sy-vline
WA_OIRCPISPC_IO_STR-TRTYP sy-vline
WA_OIRCPISPC_IO_STR-KAV01 sy-vline
WA_OIRCPISPC_IO_STR-KAV02 sy-vline
WA_OIRCPISPC_IO_STR-KAV03 sy-vline
WA_OIRCPISPC_IO_STR-KAV04 sy-vline
WA_OIRCPISPC_IO_STR-MPROZ sy-vline
WA_OIRCPISPC_IO_STR-AWAER sy-vline
WA_OIRCPISPC_IO_STR-MABSO sy-vline
WA_OIRCPISPC_IO_STR-NOSTA sy-vline
WA_OIRCPISPC_IO_STR-NOVRK sy-vline
WA_OIRCPISPC_IO_STR-NOEKP sy-vline
WA_OIRCPISPC_IO_STR-NOLIF sy-vline
WA_OIRCPISPC_IO_STR-INIAM sy-vline
WA_OIRCPISPC_IO_STR-KLART sy-vline
WA_OIRCPISPC_IO_STR-AUTOK sy-vline
WA_OIRCPISPC_IO_STR-DRUKZ sy-vline
WA_OIRCPISPC_IO_STR-FEHLP sy-vline
WA_OIRCPISPC_IO_STR-BELKZ sy-vline
WA_OIRCPISPC_IO_STR-ARCKZ sy-vline
WA_OIRCPISPC_IO_STR-OISTYP sy-vline
WA_OIRCPISPC_IO_STR-OIREVFLAG sy-vline
WA_OIRCPISPC_IO_STR-RG_NUMBER sy-vline
WA_OIRCPISPC_IO_STR-PROCDEF sy-vline
WA_OIRCPISPC_IO_STR-REPID sy-vline
WA_OIRCPISPC_IO_STR-CHGREASON sy-vline
WA_OIRCPISPC_IO_STR-CHGTEXT sy-vline
WA_OIRCPISPC_IO_STR-MATNR sy-vline
WA_OIRCPISPC_IO_STR-PRLNR sy-vline
WA_OIRCPISPC_IO_STR-COMNR sy-vline
WA_OIRCPISPC_IO_STR-COMPLIST sy-vline
WA_OIRCPISPC_IO_STR-COMPETITOR sy-vline
WA_OIRCPISPC_IO_STR-RESPCOMP1 sy-vline
WA_OIRCPISPC_IO_STR-RESPCOMP2 sy-vline
WA_OIRCPISPC_IO_STR-RESPCOMP3 sy-vline
WA_OIRCPISPC_IO_STR-RESPCOMP4 sy-vline
WA_OIRCPISPC_IO_STR-RESPCOMP5 sy-vline
WA_OIRCPISPC_IO_STR-HEADERFIRSTPASS sy-vline
WA_OIRCPISPC_IO_STR-FOOTERFIRSTPASS sy-vline
WA_OIRCPISPC_IO_STR-ROWFIRSTPASS sy-vline
WA_OIRCPISPC_IO_STR-OWNLOCFROM sy-vline
WA_OIRCPISPC_IO_STR-DEFKALVG sy-vline
WA_OIRCPISPC_IO_STR-DEFKALKS sy-vline
WA_OIRCPISPC_IO_STR-DEFKSCHL sy-vline
WA_OIRCPISPC_IO_STR-DEFKONWA sy-vline
WA_OIRCPISPC_IO_STR-DEFKPEIN sy-vline
WA_OIRCPISPC_IO_STR-DEFKMEIN sy-vline
WA_OIRCPISPC_IO_STR-DEFCALEN sy-vline
WA_OIRCPISPC_IO_STR-DEFPERIOD sy-vline
WA_OIRCPISPC_IO_STR-CNDCHANGE sy-vline
WA_OIRCPISPC_IO_STR-LPRCLU sy-vline
WA_OIRCPISPC_IO_STR-CLUSTERBRANCH sy-vline
WA_OIRCPISPC_IO_STR-PROC_TRTYP sy-vline
WA_OIRCPISPC_IO_STR-PBLNR_NEW sy-vline
WA_OIRCPISPC_IO_STR-PRSDT_NEW sy-vline
WA_OIRCPISPC_IO_STR-OIC_TIME_NEW sy-vline
WA_OIRCPISPC_IO_STR-PRICEPASS sy-vline
WA_OIRCPISPC_IO_STR-REPORT_WIDTH sy-vline
WA_OIRCPISPC_IO_STR-PRDATE_TEXT sy-vline
WA_OIRCPISPC_IO_STR-PRTIME_TEXT sy-vline
WA_OIRCPISPC_IO_STR-TCODE sy-vline
WA_OIRCPISPC_IO_STR-TCODE_END sy-vline
WA_OIRCPISPC_IO_STR-TCODE_RESTART sy-vline
WA_OIRCPISPC_IO_STR-TCODE_BRANCH sy-vline
WA_OIRCPISPC_IO_STR-CHAR_TEXT1 sy-vline
WA_OIRCPISPC_IO_STR-CHAR_TEXT2 sy-vline
WA_OIRCPISPC_IO_STR-CHAR_TEXT3 sy-vline
WA_OIRCPISPC_IO_STR-CLEAR_ON sy-vline
WA_OIRCPISPC_IO_STR-TOP_OFF sy-vline
WA_OIRCPISPC_IO_STR-COPY_OW sy-vline
WA_OIRCPISPC_IO_STR-CHDOCNUM sy-vline
WA_OIRCPISPC_IO_STR-ALV sy-vline
WA_OIRCPISPC_IO_STR-CELLIO sy-vline
WA_OIRCPISPC_IO_STR-CELL_COLOR sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.