ABAP Select data from SAP table SEM5EUMODX 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 SEM5EUMODX 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 SEM5EUMODX. 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 SEM5EUMODX 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_SEM5EUMODX TYPE STANDARD TABLE OF SEM5EUMODX,
      WA_SEM5EUMODX TYPE SEM5EUMODX,
      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: <SEM5EUMODX> TYPE SEM5EUMODX.

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

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

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


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_SEM5EUMODX ASSIGNING <SEM5EUMODX>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<SEM5EUMODX>-S5UPDATED = 1.
<SEM5EUMODX>-S5CLASSES = 1.
<SEM5EUMODX>-S5OBJTYPES = 1.
<SEM5EUMODX>-S5INTRFACE = 1.
<SEM5EUMODX>-S5PUBLIC = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_SEM5EUMODX-S5PRIVATE, sy-vline,
WA_SEM5EUMODX-S5MODELLED, sy-vline,
WA_SEM5EUMODX-S5IMPLEM, sy-vline,
WA_SEM5EUMODX-S5RELEASED, sy-vline,
WA_SEM5EUMODX-S5OBSOLETE, sy-vline,
WA_SEM5EUMODX-S5BUSOBJ, sy-vline.
ENDLOOP. *Add any further fields from structure WA_SEM5EUMODX 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_SEM5EUMODX 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_SEM5EUMODX INTO WA_SEM5EUMODX. *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_SEM5EUMODX_STR,
S5UPDATED TYPE STRING,
S5CLASSES TYPE STRING,
S5OBJTYPES TYPE STRING,
S5INTRFACE TYPE STRING,
S5PUBLIC TYPE STRING,
S5PRIVATE TYPE STRING,
S5MODELLED TYPE STRING,
S5IMPLEM TYPE STRING,
S5RELEASED TYPE STRING,
S5OBSOLETE TYPE STRING,
S5BUSOBJ TYPE STRING,
S5GUI TYPE STRING,
S5OLE TYPE STRING,
S5ORGTYPES TYPE STRING,
S5OTHERS TYPE STRING,
S5LOCAL TYPE STRING,
S5GLOBAL TYPE STRING,
S5NORELEAS TYPE STRING,
S5INTERNAL TYPE STRING,
S5EXTERNAL TYPE STRING,
S5INHSUPER TYPE STRING,
S5INHSUB TYPE STRING,
S5IMPLSUPR TYPE STRING,
S5IMPLSUB TYPE STRING,
S5COMPSUPR TYPE STRING,
S5COMPSUB TYPE STRING,
S5COMPWHOL TYPE STRING,
S5COMPPART TYPE STRING,
S5ASSOCPRD TYPE STRING,
S5ASSOCSUC TYPE STRING,
S5DEPPRED TYPE STRING,
S5DEPSUCC TYPE STRING,
S5RTSUPER TYPE STRING,
S5RTWHOLE TYPE STRING,
S5CMPHIER TYPE STRING,
S5OBJNAME TYPE STRING,
S5OBJID TYPE STRING,
S5WITHID TYPE STRING,
S5DEVCLASS TYPE STRING,END OF T_EKKO_STR. DATA: WA_SEM5EUMODX_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_SEM5EUMODX_STR-S5UPDATED sy-vline
WA_SEM5EUMODX_STR-S5CLASSES sy-vline
WA_SEM5EUMODX_STR-S5OBJTYPES sy-vline
WA_SEM5EUMODX_STR-S5INTRFACE sy-vline
WA_SEM5EUMODX_STR-S5PUBLIC sy-vline
WA_SEM5EUMODX_STR-S5PRIVATE sy-vline
WA_SEM5EUMODX_STR-S5MODELLED sy-vline
WA_SEM5EUMODX_STR-S5IMPLEM sy-vline
WA_SEM5EUMODX_STR-S5RELEASED sy-vline
WA_SEM5EUMODX_STR-S5OBSOLETE sy-vline
WA_SEM5EUMODX_STR-S5BUSOBJ sy-vline
WA_SEM5EUMODX_STR-S5GUI sy-vline
WA_SEM5EUMODX_STR-S5OLE sy-vline
WA_SEM5EUMODX_STR-S5ORGTYPES sy-vline
WA_SEM5EUMODX_STR-S5OTHERS sy-vline
WA_SEM5EUMODX_STR-S5LOCAL sy-vline
WA_SEM5EUMODX_STR-S5GLOBAL sy-vline
WA_SEM5EUMODX_STR-S5NORELEAS sy-vline
WA_SEM5EUMODX_STR-S5INTERNAL sy-vline
WA_SEM5EUMODX_STR-S5EXTERNAL sy-vline
WA_SEM5EUMODX_STR-S5INHSUPER sy-vline
WA_SEM5EUMODX_STR-S5INHSUB sy-vline
WA_SEM5EUMODX_STR-S5IMPLSUPR sy-vline
WA_SEM5EUMODX_STR-S5IMPLSUB sy-vline
WA_SEM5EUMODX_STR-S5COMPSUPR sy-vline
WA_SEM5EUMODX_STR-S5COMPSUB sy-vline
WA_SEM5EUMODX_STR-S5COMPWHOL sy-vline
WA_SEM5EUMODX_STR-S5COMPPART sy-vline
WA_SEM5EUMODX_STR-S5ASSOCPRD sy-vline
WA_SEM5EUMODX_STR-S5ASSOCSUC sy-vline
WA_SEM5EUMODX_STR-S5DEPPRED sy-vline
WA_SEM5EUMODX_STR-S5DEPSUCC sy-vline
WA_SEM5EUMODX_STR-S5RTSUPER sy-vline
WA_SEM5EUMODX_STR-S5RTWHOLE sy-vline
WA_SEM5EUMODX_STR-S5CMPHIER sy-vline
WA_SEM5EUMODX_STR-S5OBJNAME sy-vline
WA_SEM5EUMODX_STR-S5OBJID sy-vline
WA_SEM5EUMODX_STR-S5WITHID sy-vline
WA_SEM5EUMODX_STR-S5DEVCLASS sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.