ABAP Select data from SAP table OBJRES2 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 OBJRES2 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 OBJRES2. 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 OBJRES2 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_OBJRES2 TYPE STANDARD TABLE OF OBJRES2,
      WA_OBJRES2 TYPE OBJRES2,
      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: <OBJRES2> TYPE OBJRES2.

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

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

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


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_OBJRES2 ASSIGNING <OBJRES2>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<OBJRES2>-TEXT = 1.
<OBJRES2>-NODE_ID = 1.
<OBJRES2>-PARENT_ID = 1.
<OBJRES2>-REFNODE_ID = 1.
<OBJRES2>-NODE_TYPE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_OBJRES2-NODE_LEVEL, sy-vline,
WA_OBJRES2-SCEN1_YEL, sy-vline,
WA_OBJRES2-SCEN2_YEL, sy-vline,
WA_OBJRES2-SCEN3_YEL, sy-vline,
WA_OBJRES2-ACTIVITY, sy-vline,
WA_OBJRES2-OBJECTNAME, sy-vline.
ENDLOOP. *Add any further fields from structure WA_OBJRES2 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_OBJRES2 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_OBJRES2 INTO WA_OBJRES2. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_OBJRES2_STR,
TEXT TYPE STRING,
NODE_ID TYPE STRING,
PARENT_ID TYPE STRING,
REFNODE_ID TYPE STRING,
NODE_TYPE TYPE STRING,
NODE_LEVEL TYPE STRING,
SCEN1_YEL TYPE STRING,
SCEN2_YEL TYPE STRING,
SCEN3_YEL TYPE STRING,
ACTIVITY TYPE STRING,
OBJECTNAME TYPE STRING,
OBJECTTYPE TYPE STRING,
SEQU_NO TYPE STRING,
TCODE TYPE STRING,
DUMMY TYPE STRING,
STANDARDTA TYPE STRING,
PARAM_TA TYPE STRING,
WRONG_OBJ TYPE STRING,
RIGHT_OBJ TYPE STRING,
BEF_EXP_ME TYPE STRING,
AFT_IMP_ME TYPE STRING,
IMPORTABLE TYPE STRING,
MOD_DIALOG TYPE STRING,
NOTINOBJS TYPE STRING,
NOTINOBJH TYPE STRING,
NOTINSYST TYPE STRING,
INVAL_V_D TYPE STRING,
INCONSOBJS TYPE STRING,
INCONSIST TYPE STRING,
PRIORITY TYPE STRING,
OBJ_EXCEPT TYPE STRING,
IMG_EXCEPT TYPE STRING,
DOCU TYPE STRING,
ACTIVATE TYPE STRING,
ACT_VERIF TYPE STRING,
LOCK_DATA TYPE STRING,
FUSER_IMG TYPE STRING,
FUSER_OBJ TYPE STRING,
LUSER_IMG TYPE STRING,
LUSER_OBJ TYPE STRING,
DEVC_IMG TYPE STRING,
DEVC_OBJ TYPE STRING,
COMP_IMG TYPE STRING,
COMP_OBJ TYPE STRING,
LDATE_IMG TYPE STRING,
LDATE_OBJ TYPE STRING,
LTIME_IMG TYPE STRING,
LTIME_OBJ TYPE STRING,
LOCAL_ACTI TYPE STRING,
SRCSYSTEM_IMG TYPE STRING,
SRCSYSTEM_OBJ TYPE STRING,
IS_ORGACT TYPE STRING,
IS_BADI TYPE STRING,
NO_CUSTOBJ TYPE STRING,
DELIVERYCL TYPE STRING,
INCONSDYCL TYPE STRING,
RIGHT_DYCL TYPE STRING,
SYSTEMOBJ TYPE STRING,
ONEDCOBJNC TYPE STRING,
ONEDCALLNC TYPE STRING,
ALLDCOBJNC TYPE STRING,
ALLDCALLNC TYPE STRING,
OBJEXPLDEN TYPE STRING,
OBJEXPLALW TYPE STRING,
ONEDENOBJT TYPE STRING,
ONEDENALLT TYPE STRING,
ALLDENOBJT TYPE STRING,
ALLDENALLT TYPE STRING,
ONECDEPALL TYPE STRING,
ONECDEPOBJ TYPE STRING,
ALLCDEPALL TYPE STRING,
ALLCDEPOBJ TYPE STRING,
ONECCASALL TYPE STRING,
ONECCASOBJ TYPE STRING,
ALLCCASALL TYPE STRING,
ALLCCASOBJ TYPE STRING,
MIXEDCDEPO TYPE STRING,
MIXEDCDEPA TYPE STRING,
MIXEDCCASO TYPE STRING,
MIXEDCCASA TYPE STRING,
READ_ONLY TYPE STRING,
OBJ_BCSDEN TYPE STRING,
IMG_BCSDEN TYPE STRING,
TADIROBLIG TYPE STRING,
WRONG_IMP TYPE STRING,
PRMTAB_MIS TYPE STRING,
OBJTYPETXT TYPE STRING,END OF T_EKKO_STR. DATA: WA_OBJRES2_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_OBJRES2_STR-TEXT sy-vline
WA_OBJRES2_STR-NODE_ID sy-vline
WA_OBJRES2_STR-PARENT_ID sy-vline
WA_OBJRES2_STR-REFNODE_ID sy-vline
WA_OBJRES2_STR-NODE_TYPE sy-vline
WA_OBJRES2_STR-NODE_LEVEL sy-vline
WA_OBJRES2_STR-SCEN1_YEL sy-vline
WA_OBJRES2_STR-SCEN2_YEL sy-vline
WA_OBJRES2_STR-SCEN3_YEL sy-vline
WA_OBJRES2_STR-ACTIVITY sy-vline
WA_OBJRES2_STR-OBJECTNAME sy-vline
WA_OBJRES2_STR-OBJECTTYPE sy-vline
WA_OBJRES2_STR-SEQU_NO sy-vline
WA_OBJRES2_STR-TCODE sy-vline
WA_OBJRES2_STR-DUMMY sy-vline
WA_OBJRES2_STR-STANDARDTA sy-vline
WA_OBJRES2_STR-PARAM_TA sy-vline
WA_OBJRES2_STR-WRONG_OBJ sy-vline
WA_OBJRES2_STR-RIGHT_OBJ sy-vline
WA_OBJRES2_STR-BEF_EXP_ME sy-vline
WA_OBJRES2_STR-AFT_IMP_ME sy-vline
WA_OBJRES2_STR-IMPORTABLE sy-vline
WA_OBJRES2_STR-MOD_DIALOG sy-vline
WA_OBJRES2_STR-NOTINOBJS sy-vline
WA_OBJRES2_STR-NOTINOBJH sy-vline
WA_OBJRES2_STR-NOTINSYST sy-vline
WA_OBJRES2_STR-INVAL_V_D sy-vline
WA_OBJRES2_STR-INCONSOBJS sy-vline
WA_OBJRES2_STR-INCONSIST sy-vline
WA_OBJRES2_STR-PRIORITY sy-vline
WA_OBJRES2_STR-OBJ_EXCEPT sy-vline
WA_OBJRES2_STR-IMG_EXCEPT sy-vline
WA_OBJRES2_STR-DOCU sy-vline
WA_OBJRES2_STR-ACTIVATE sy-vline
WA_OBJRES2_STR-ACT_VERIF sy-vline
WA_OBJRES2_STR-LOCK_DATA sy-vline
WA_OBJRES2_STR-FUSER_IMG sy-vline
WA_OBJRES2_STR-FUSER_OBJ sy-vline
WA_OBJRES2_STR-LUSER_IMG sy-vline
WA_OBJRES2_STR-LUSER_OBJ sy-vline
WA_OBJRES2_STR-DEVC_IMG sy-vline
WA_OBJRES2_STR-DEVC_OBJ sy-vline
WA_OBJRES2_STR-COMP_IMG sy-vline
WA_OBJRES2_STR-COMP_OBJ sy-vline
WA_OBJRES2_STR-LDATE_IMG sy-vline
WA_OBJRES2_STR-LDATE_OBJ sy-vline
WA_OBJRES2_STR-LTIME_IMG sy-vline
WA_OBJRES2_STR-LTIME_OBJ sy-vline
WA_OBJRES2_STR-LOCAL_ACTI sy-vline
WA_OBJRES2_STR-SRCSYSTEM_IMG sy-vline
WA_OBJRES2_STR-SRCSYSTEM_OBJ sy-vline
WA_OBJRES2_STR-IS_ORGACT sy-vline
WA_OBJRES2_STR-IS_BADI sy-vline
WA_OBJRES2_STR-NO_CUSTOBJ sy-vline
WA_OBJRES2_STR-DELIVERYCL sy-vline
WA_OBJRES2_STR-INCONSDYCL sy-vline
WA_OBJRES2_STR-RIGHT_DYCL sy-vline
WA_OBJRES2_STR-SYSTEMOBJ sy-vline
WA_OBJRES2_STR-ONEDCOBJNC sy-vline
WA_OBJRES2_STR-ONEDCALLNC sy-vline
WA_OBJRES2_STR-ALLDCOBJNC sy-vline
WA_OBJRES2_STR-ALLDCALLNC sy-vline
WA_OBJRES2_STR-OBJEXPLDEN sy-vline
WA_OBJRES2_STR-OBJEXPLALW sy-vline
WA_OBJRES2_STR-ONEDENOBJT sy-vline
WA_OBJRES2_STR-ONEDENALLT sy-vline
WA_OBJRES2_STR-ALLDENOBJT sy-vline
WA_OBJRES2_STR-ALLDENALLT sy-vline
WA_OBJRES2_STR-ONECDEPALL sy-vline
WA_OBJRES2_STR-ONECDEPOBJ sy-vline
WA_OBJRES2_STR-ALLCDEPALL sy-vline
WA_OBJRES2_STR-ALLCDEPOBJ sy-vline
WA_OBJRES2_STR-ONECCASALL sy-vline
WA_OBJRES2_STR-ONECCASOBJ sy-vline
WA_OBJRES2_STR-ALLCCASALL sy-vline
WA_OBJRES2_STR-ALLCCASOBJ sy-vline
WA_OBJRES2_STR-MIXEDCDEPO sy-vline
WA_OBJRES2_STR-MIXEDCDEPA sy-vline
WA_OBJRES2_STR-MIXEDCCASO sy-vline
WA_OBJRES2_STR-MIXEDCCASA sy-vline
WA_OBJRES2_STR-READ_ONLY sy-vline
WA_OBJRES2_STR-OBJ_BCSDEN sy-vline
WA_OBJRES2_STR-IMG_BCSDEN sy-vline
WA_OBJRES2_STR-TADIROBLIG sy-vline
WA_OBJRES2_STR-WRONG_IMP sy-vline
WA_OBJRES2_STR-PRMTAB_MIS sy-vline
WA_OBJRES2_STR-OBJTYPETXT sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.