ABAP Select data from SAP table OIRCPISPC 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 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. 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 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 TYPE STANDARD TABLE OF OIRCPISPC,
      WA_OIRCPISPC TYPE OIRCPISPC,
      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> TYPE OIRCPISPC.

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

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

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


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

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

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

*Conversion exit ALPHA, internal->external for field PBLNR CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_OIRCPISPC-PBLNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIRCPISPC-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-RG_NUMBER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIRCPISPC-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-MATNR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIRCPISPC-MATNR.
WRITE:/ 'New Value:', ld_input.

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

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

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

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

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

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

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

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