ABAP Select data from SAP table OIJX 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 OIJX 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 OIJX. 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 OIJX 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_OIJX TYPE STANDARD TABLE OF OIJX,
      WA_OIJX TYPE OIJX,
      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: <OIJX> TYPE OIJX.

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

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

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


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_OIJX ASSIGNING <OIJX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<OIJX>-MANDT = 1.
<OIJX>-TSWACT = 1.
<OIJX>-PLSQCH = 1.
<OIJX>-ERDAT = 1.
<OIJX>-ERZEIT = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_OIJX-ERNAM, sy-vline,
WA_OIJX-AEDAT, sy-vline,
WA_OIJX-AEZEIT, sy-vline,
WA_OIJX-AENAM, sy-vline,
WA_OIJX-BLOIND, sy-vline,
WA_OIJX-DELIND, sy-vline.
ENDLOOP. *Add any further fields from structure WA_OIJX 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_OIJX 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_OIJX INTO WA_OIJX. *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 AMEND_MIN_QTY_U CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT' EXPORTING input = WA_OIJX-AMEND_MIN_QTY_U IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_OIJX-AMEND_MIN_QTY_U.
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_OIJX_STR,
MANDT TYPE STRING,
TSWACT TYPE STRING,
PLSQCH TYPE STRING,
ERDAT TYPE STRING,
ERZEIT TYPE STRING,
ERNAM TYPE STRING,
AEDAT TYPE STRING,
AEZEIT TYPE STRING,
AENAM TYPE STRING,
BLOIND TYPE STRING,
DELIND TYPE STRING,
TKTSELECT TYPE STRING,
CLSHIP TYPE STRING,
RDREAL TYPE STRING,
EXTDET TYPE STRING,
RDLOGIC TYPE STRING,
RDFCL TYPE STRING,
RDPAST TYPE STRING,
RDNOMDAT TYPE STRING,
RDDISAG TYPE STRING,
SCHEDREL TYPE STRING,
LOCCONTROL TYPE STRING,
NOMICU TYPE STRING,
NOMHCU TYPE STRING,
MMOTCHK TYPE STRING,
LOCMATCU TYPE STRING,
TSMATCU TYPE STRING,
TSWDCHK TYPE STRING,
EXDETMOT TYPE STRING,
NOMDATCHK TYPE STRING,
PLLOCFLAG TYPE STRING,
RDPLMICO TYPE STRING,
RDMULT TYPE STRING,
RDDECS TYPE STRING,
RDPHYS TYPE STRING,
RDSTART TYPE STRING,
HEEL TYPE STRING,
RDAUTOWL TYPE STRING,
RDREP TYPE STRING,
CONSIDER_ROUTE TYPE STRING,
RDTREE TYPE STRING,
SPFLTVAL TYPE STRING,
SPDOCWHIF TYPE STRING,
ETA_EV_TYPE TYPE STRING,
PS_SITYP_DMD TYPE STRING,
PS_DOCIND_DMD TYPE STRING,
PS_SITYP_SUP TYPE STRING,
PS_DOCIND_SUP TYPE STRING,
BFDEPTH TYPE STRING,
START_SEQ TYPE STRING,
INCRE_SEQ TYPE STRING,
PRF_GRUPPE TYPE STRING,
PRF_NAME TYPE STRING,
PRF_INDEX TYPE STRING,
AMEND_MIN_QTY TYPE STRING,
AMEND_MIN_QTY_U TYPE STRING,
LB_ROUTE_CHK_OBJ TYPE STRING,
LB_ROUTE_PUB TYPE STRING,
DOCCO TYPE STRING,
SPAUTOFC TYPE STRING,
UPD_REFDOC TYPE STRING,
GTS TYPE STRING,
METER_RECON_FLAG TYPE STRING,
LATELCK_3WP TYPE STRING,END OF T_EKKO_STR. DATA: WA_OIJX_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_OIJX_STR-MANDT sy-vline
WA_OIJX_STR-TSWACT sy-vline
WA_OIJX_STR-PLSQCH sy-vline
WA_OIJX_STR-ERDAT sy-vline
WA_OIJX_STR-ERZEIT sy-vline
WA_OIJX_STR-ERNAM sy-vline
WA_OIJX_STR-AEDAT sy-vline
WA_OIJX_STR-AEZEIT sy-vline
WA_OIJX_STR-AENAM sy-vline
WA_OIJX_STR-BLOIND sy-vline
WA_OIJX_STR-DELIND sy-vline
WA_OIJX_STR-TKTSELECT sy-vline
WA_OIJX_STR-CLSHIP sy-vline
WA_OIJX_STR-RDREAL sy-vline
WA_OIJX_STR-EXTDET sy-vline
WA_OIJX_STR-RDLOGIC sy-vline
WA_OIJX_STR-RDFCL sy-vline
WA_OIJX_STR-RDPAST sy-vline
WA_OIJX_STR-RDNOMDAT sy-vline
WA_OIJX_STR-RDDISAG sy-vline
WA_OIJX_STR-SCHEDREL sy-vline
WA_OIJX_STR-LOCCONTROL sy-vline
WA_OIJX_STR-NOMICU sy-vline
WA_OIJX_STR-NOMHCU sy-vline
WA_OIJX_STR-MMOTCHK sy-vline
WA_OIJX_STR-LOCMATCU sy-vline
WA_OIJX_STR-TSMATCU sy-vline
WA_OIJX_STR-TSWDCHK sy-vline
WA_OIJX_STR-EXDETMOT sy-vline
WA_OIJX_STR-NOMDATCHK sy-vline
WA_OIJX_STR-PLLOCFLAG sy-vline
WA_OIJX_STR-RDPLMICO sy-vline
WA_OIJX_STR-RDMULT sy-vline
WA_OIJX_STR-RDDECS sy-vline
WA_OIJX_STR-RDPHYS sy-vline
WA_OIJX_STR-RDSTART sy-vline
WA_OIJX_STR-HEEL sy-vline
WA_OIJX_STR-RDAUTOWL sy-vline
WA_OIJX_STR-RDREP sy-vline
WA_OIJX_STR-CONSIDER_ROUTE sy-vline
WA_OIJX_STR-RDTREE sy-vline
WA_OIJX_STR-SPFLTVAL sy-vline
WA_OIJX_STR-SPDOCWHIF sy-vline
WA_OIJX_STR-ETA_EV_TYPE sy-vline
WA_OIJX_STR-PS_SITYP_DMD sy-vline
WA_OIJX_STR-PS_DOCIND_DMD sy-vline
WA_OIJX_STR-PS_SITYP_SUP sy-vline
WA_OIJX_STR-PS_DOCIND_SUP sy-vline
WA_OIJX_STR-BFDEPTH sy-vline
WA_OIJX_STR-START_SEQ sy-vline
WA_OIJX_STR-INCRE_SEQ sy-vline
WA_OIJX_STR-PRF_GRUPPE sy-vline
WA_OIJX_STR-PRF_NAME sy-vline
WA_OIJX_STR-PRF_INDEX sy-vline
WA_OIJX_STR-AMEND_MIN_QTY sy-vline
WA_OIJX_STR-AMEND_MIN_QTY_U sy-vline
WA_OIJX_STR-LB_ROUTE_CHK_OBJ sy-vline
WA_OIJX_STR-LB_ROUTE_PUB sy-vline
WA_OIJX_STR-DOCCO sy-vline
WA_OIJX_STR-SPAUTOFC sy-vline
WA_OIJX_STR-UPD_REFDOC sy-vline
WA_OIJX_STR-GTS sy-vline
WA_OIJX_STR-METER_RECON_FLAG sy-vline
WA_OIJX_STR-LATELCK_3WP sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.