ABAP Select data from SAP table DCSOBJCHK 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 DCSOBJCHK 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 DCSOBJCHK. 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 DCSOBJCHK 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_DCSOBJCHK TYPE STANDARD TABLE OF DCSOBJCHK, WA_DCSOBJCHK TYPE DCSOBJCHK, 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: <DCSOBJCHK> TYPE DCSOBJCHK. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_DCSOBJCHK. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM DCSOBJCHK INTO TABLE IT_DCSOBJCHK. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM DCSOBJCHK * INTO TABLE @DATA(IT_DCSOBJCHK2). *--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_DCSOBJCHK INDEX 1 INTO DATA(WA_DCSOBJCHK2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_DCSOBJCHK ASSIGNING <DCSOBJCHK>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<DCSOBJCHK>-SOBJHD = 1.
<DCSOBJCHK>-HDEXISTS = 1.
<DCSOBJCHK>-CHECK_NAME = 1.
<DCSOBJCHK>-CHECK_NAME_GLOBAL = 1.
<DCSOBJCHK>-TABART = 1.
ENDLOOP. LOOP AT IT_DCSOBJCHK INTO WA_DCSOBJCHK. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_DCSOBJCHK-RBAM_NAMES, sy-vline,
WA_DCSOBJCHK-SOBJNDLST, sy-vline,
WA_DCSOBJCHK-NODESMISSING, sy-vline,
WA_DCSOBJCHK-ATTREXISTS, sy-vline,
WA_DCSOBJCHK-DBTABNAMEEX, sy-vline,
WA_DCSOBJCHK-DBTABNAME, sy-vline.
ENDLOOP. *Add any further fields from structure WA_DCSOBJCHK 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_DCSOBJCHK 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_DCSOBJCHK INTO WA_DCSOBJCHK. *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_DCSOBJCHK_STR,
SOBJHD TYPE STRING,
HDEXISTS TYPE STRING,
CHECK_NAME TYPE STRING,
CHECK_NAME_GLOBAL TYPE STRING,
TABART TYPE STRING,
RBAM_NAMES TYPE STRING,
SOBJNDLST TYPE STRING,
NODESMISSING TYPE STRING,
ATTREXISTS TYPE STRING,
DBTABNAMEEX TYPE STRING,
DBTABNAME TYPE STRING,
DUPLICATENODES TYPE STRING,
DBVIEWNAME TYPE STRING,
DELNODEPOSS TYPE STRING,
PERSISTOBJKIND TYPE STRING,
SOBJND TYPE STRING,
NODE_IN_LIST TYPE STRING,
COMPTYPES_ACTIVE TYPE STRING,
DEPTH_OK TYPE STRING,
DUPLICATEATTR TYPE STRING,
FIELDNAMECORR TYPE STRING,
KEY_CONNECTED TYPE STRING,
LOCAL_REFFLD_OK TYPE STRING,
REFERENCE_EXISTS TYPE STRING,
VALUECHK TYPE STRING,
TRANSIENTCONS TYPE STRING,
TYPECONSISTENCY TYPE STRING,
DBFLDNAMECORR TYPE STRING,
DUPLICATEDBFLD TYPE STRING,
SOBJASS TYPE STRING,
VALUECHK TYPE STRING,
DUPLICATEASS TYPE STRING,
ATTREXIST TYPE STRING,
ATTREXISTEXT TYPE STRING,
ATTREXISTAPP TYPE STRING,
TYPECHECK TYPE STRING,
TYPECHECKEXT TYPE STRING,
ASSDELETE TYPE STRING,
GETTARGETDO TYPE STRING,
SOBJPAR TYPE STRING,
CHECK_NAME TYPE STRING,
NAME_IS_UNIQUE TYPE STRING,
SYSTFIELD_TYPE TYPE STRING,END OF T_EKKO_STR. DATA: WA_DCSOBJCHK_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_DCSOBJCHK_STR-SOBJHD sy-vline
WA_DCSOBJCHK_STR-HDEXISTS sy-vline
WA_DCSOBJCHK_STR-CHECK_NAME sy-vline
WA_DCSOBJCHK_STR-CHECK_NAME_GLOBAL sy-vline
WA_DCSOBJCHK_STR-TABART sy-vline
WA_DCSOBJCHK_STR-RBAM_NAMES sy-vline
WA_DCSOBJCHK_STR-SOBJNDLST sy-vline
WA_DCSOBJCHK_STR-NODESMISSING sy-vline
WA_DCSOBJCHK_STR-ATTREXISTS sy-vline
WA_DCSOBJCHK_STR-DBTABNAMEEX sy-vline
WA_DCSOBJCHK_STR-DBTABNAME sy-vline
WA_DCSOBJCHK_STR-DUPLICATENODES sy-vline
WA_DCSOBJCHK_STR-DBVIEWNAME sy-vline
WA_DCSOBJCHK_STR-DELNODEPOSS sy-vline
WA_DCSOBJCHK_STR-PERSISTOBJKIND sy-vline
WA_DCSOBJCHK_STR-SOBJND sy-vline
WA_DCSOBJCHK_STR-NODE_IN_LIST sy-vline
WA_DCSOBJCHK_STR-COMPTYPES_ACTIVE sy-vline
WA_DCSOBJCHK_STR-DEPTH_OK sy-vline
WA_DCSOBJCHK_STR-DUPLICATEATTR sy-vline
WA_DCSOBJCHK_STR-FIELDNAMECORR sy-vline
WA_DCSOBJCHK_STR-KEY_CONNECTED sy-vline
WA_DCSOBJCHK_STR-LOCAL_REFFLD_OK sy-vline
WA_DCSOBJCHK_STR-REFERENCE_EXISTS sy-vline
WA_DCSOBJCHK_STR-VALUECHK sy-vline
WA_DCSOBJCHK_STR-TRANSIENTCONS sy-vline
WA_DCSOBJCHK_STR-TYPECONSISTENCY sy-vline
WA_DCSOBJCHK_STR-DBFLDNAMECORR sy-vline
WA_DCSOBJCHK_STR-DUPLICATEDBFLD sy-vline
WA_DCSOBJCHK_STR-SOBJASS sy-vline
WA_DCSOBJCHK_STR-VALUECHK sy-vline
WA_DCSOBJCHK_STR-DUPLICATEASS sy-vline
WA_DCSOBJCHK_STR-ATTREXIST sy-vline
WA_DCSOBJCHK_STR-ATTREXISTEXT sy-vline
WA_DCSOBJCHK_STR-ATTREXISTAPP sy-vline
WA_DCSOBJCHK_STR-TYPECHECK sy-vline
WA_DCSOBJCHK_STR-TYPECHECKEXT sy-vline
WA_DCSOBJCHK_STR-ASSDELETE sy-vline
WA_DCSOBJCHK_STR-GETTARGETDO sy-vline
WA_DCSOBJCHK_STR-SOBJPAR sy-vline
WA_DCSOBJCHK_STR-CHECK_NAME sy-vline
WA_DCSOBJCHK_STR-NAME_IS_UNIQUE sy-vline
WA_DCSOBJCHK_STR-SYSTFIELD_TYPE sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.