ABAP Select data from SAP table SEM5EUMOD 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 SEM5EUMOD 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 SEM5EUMOD. 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 SEM5EUMOD 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_SEM5EUMOD TYPE STANDARD TABLE OF SEM5EUMOD,
      WA_SEM5EUMOD TYPE SEM5EUMOD,
      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: <SEM5EUMOD> TYPE SEM5EUMOD.

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

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

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


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

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_SEM5EUMOD-S5PROTECT, sy-vline,
WA_SEM5EUMOD-S5PRIVATE, sy-vline,
WA_SEM5EUMOD-S5MODELLED, sy-vline,
WA_SEM5EUMOD-S5IMPLEM, sy-vline,
WA_SEM5EUMOD-S5RELEASED, sy-vline,
WA_SEM5EUMOD-S5OBSOLETE, sy-vline.
ENDLOOP. *Add any further fields from structure WA_SEM5EUMOD 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_SEM5EUMOD 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_SEM5EUMOD INTO WA_SEM5EUMOD. *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_SEM5EUMOD_STR,
S5UPDATED TYPE STRING,
S5CLASSES TYPE STRING,
S5OBJTYPES TYPE STRING,
S5INTRFACE TYPE STRING,
S5PUBLIC TYPE STRING,
S5PROTECT 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_SEM5EUMOD_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_SEM5EUMOD_STR-S5UPDATED sy-vline
WA_SEM5EUMOD_STR-S5CLASSES sy-vline
WA_SEM5EUMOD_STR-S5OBJTYPES sy-vline
WA_SEM5EUMOD_STR-S5INTRFACE sy-vline
WA_SEM5EUMOD_STR-S5PUBLIC sy-vline
WA_SEM5EUMOD_STR-S5PROTECT sy-vline
WA_SEM5EUMOD_STR-S5PRIVATE sy-vline
WA_SEM5EUMOD_STR-S5MODELLED sy-vline
WA_SEM5EUMOD_STR-S5IMPLEM sy-vline
WA_SEM5EUMOD_STR-S5RELEASED sy-vline
WA_SEM5EUMOD_STR-S5OBSOLETE sy-vline
WA_SEM5EUMOD_STR-S5BUSOBJ sy-vline
WA_SEM5EUMOD_STR-S5GUI sy-vline
WA_SEM5EUMOD_STR-S5OLE sy-vline
WA_SEM5EUMOD_STR-S5ORGTYPES sy-vline
WA_SEM5EUMOD_STR-S5OTHERS sy-vline
WA_SEM5EUMOD_STR-S5LOCAL sy-vline
WA_SEM5EUMOD_STR-S5GLOBAL sy-vline
WA_SEM5EUMOD_STR-S5NORELEAS sy-vline
WA_SEM5EUMOD_STR-S5INTERNAL sy-vline
WA_SEM5EUMOD_STR-S5EXTERNAL sy-vline
WA_SEM5EUMOD_STR-S5INHSUPER sy-vline
WA_SEM5EUMOD_STR-S5INHSUB sy-vline
WA_SEM5EUMOD_STR-S5IMPLSUPR sy-vline
WA_SEM5EUMOD_STR-S5IMPLSUB sy-vline
WA_SEM5EUMOD_STR-S5COMPSUPR sy-vline
WA_SEM5EUMOD_STR-S5COMPSUB sy-vline
WA_SEM5EUMOD_STR-S5COMPWHOL sy-vline
WA_SEM5EUMOD_STR-S5COMPPART sy-vline
WA_SEM5EUMOD_STR-S5ASSOCPRD sy-vline
WA_SEM5EUMOD_STR-S5ASSOCSUC sy-vline
WA_SEM5EUMOD_STR-S5DEPPRED sy-vline
WA_SEM5EUMOD_STR-S5DEPSUCC sy-vline
WA_SEM5EUMOD_STR-S5RTSUPER sy-vline
WA_SEM5EUMOD_STR-S5RTWHOLE sy-vline
WA_SEM5EUMOD_STR-S5CMPHIER sy-vline
WA_SEM5EUMOD_STR-S5OBJNAME sy-vline
WA_SEM5EUMOD_STR-S5OBJID sy-vline
WA_SEM5EUMOD_STR-S5WITHID sy-vline
WA_SEM5EUMOD_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.