ABAP Select data from SAP table SOS_OBJLST 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 SOS_OBJLST 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 SOS_OBJLST. 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 SOS_OBJLST 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_SOS_OBJLST TYPE STANDARD TABLE OF SOS_OBJLST, WA_SOS_OBJLST TYPE SOS_OBJLST, 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: <SOS_OBJLST> TYPE SOS_OBJLST. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_SOS_OBJLST. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM SOS_OBJLST INTO TABLE IT_SOS_OBJLST. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM SOS_OBJLST * INTO TABLE @DATA(IT_SOS_OBJLST2). *--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_SOS_OBJLST INDEX 1 INTO DATA(WA_SOS_OBJLST2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_SOS_OBJLST ASSIGNING <SOS_OBJLST>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<SOS_OBJLST>-FOLRG = 1.
<SOS_OBJLST>-OBJTP = 1.
<SOS_OBJLST>-OBJTP_ID = 1.
<SOS_OBJLST>-OBJNAM = 1.
<SOS_OBJLST>-OBJDES = 1.
ENDLOOP. LOOP AT IT_SOS_OBJLST INTO WA_SOS_OBJLST. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_SOS_OBJLST-INDAT, sy-vline,
WA_SOS_OBJLST-INTIM, sy-vline,
WA_SOS_OBJLST-CRDAT, sy-vline,
WA_SOS_OBJLST-CRTIM, sy-vline,
WA_SOS_OBJLST-CHDAT, sy-vline,
WA_SOS_OBJLST-CHTIM, sy-vline.
ENDLOOP. *Add any further fields from structure WA_SOS_OBJLST 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_SOS_OBJLST 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_SOS_OBJLST INTO WA_SOS_OBJLST. *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 SXIDN, internal->external for field FORADR CALL FUNCTION 'CONVERSION_EXIT_SXIDN_OUTPUT' EXPORTING input = WA_SOS_OBJLST-FORADR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_SOS_OBJLST-FORADR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit SXIDN, internal->external for field RECADR CALL FUNCTION 'CONVERSION_EXIT_SXIDN_OUTPUT' EXPORTING input = WA_SOS_OBJLST-RECADR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_SOS_OBJLST-RECADR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit SXIDN, internal->external for field CRADR CALL FUNCTION 'CONVERSION_EXIT_SXIDN_OUTPUT' EXPORTING input = WA_SOS_OBJLST-CRADR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_SOS_OBJLST-CRADR.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ISOLA, internal->external for field OBJLA CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_SOS_OBJLST-OBJLA IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_SOS_OBJLST-OBJLA.
WRITE:/ 'New Value:', ld_input.
*Conversion exit SXIDN, internal->external for field CRADR_X CALL FUNCTION 'CONVERSION_EXIT_SXIDN_OUTPUT' EXPORTING input = WA_SOS_OBJLST-CRADR_X IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_SOS_OBJLST-CRADR_X.
WRITE:/ 'New Value:', ld_input.
*Conversion exit SXIDN, internal->external for field FORADR_X CALL FUNCTION 'CONVERSION_EXIT_SXIDN_OUTPUT' EXPORTING input = WA_SOS_OBJLST-FORADR_X IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_SOS_OBJLST-FORADR_X.
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_SOS_OBJLST_STR,
FOLRG TYPE STRING,
OBJTP TYPE STRING,
OBJTP_ID TYPE STRING,
OBJNAM TYPE STRING,
OBJDES TYPE STRING,
INDAT TYPE STRING,
INTIM TYPE STRING,
CRDAT TYPE STRING,
CRTIM TYPE STRING,
CHDAT TYPE STRING,
CHTIM TYPE STRING,
RECPR TYPE STRING,
FORADR TYPE STRING,
RECADR TYPE STRING,
CRADR TYPE STRING,
OBJAC TYPE STRING,
OBJAC_ID TYPE STRING,
ATTACH TYPE STRING,
OBJSND TYPE STRING,
OBJCHN TYPE STRING,
OBJCHN_ID TYPE STRING,
OBJRO TYPE STRING,
OBJRD TYPE STRING,
OBJRD_ID TYPE STRING,
RESUB TYPE STRING,
SNDEX TYPE STRING,
SNDCP TYPE STRING,
SNDBC TYPE STRING,
OBJRR TYPE STRING,
PRIFB TYPE STRING,
FORFB TYPE STRING,
OBJLA TYPE STRING,
RECCNT TYPE STRING,
RRDCNT TYPE STRING,
RRRCNT TYPE STRING,
RRPCNT TYPE STRING,
RARCNT TYPE STRING,
RAPCNT TYPE STRING,
RATCNT TYPE STRING,
RCPCNT TYPE STRING,
RBCCNT TYPE STRING,
SDDAT TYPE STRING,
SDTIM TYPE STRING,
RBDAT TYPE STRING,
RBTIM TYPE STRING,
FOLNAM TYPE STRING,
FOLDES TYPE STRING,
OBJRS TYPE STRING,
DLDAT TYPE STRING,
PROCESS TYPE STRING,
OBJLEN TYPE STRING,
FOLRGTP TYPE STRING,
STATSO TYPE STRING,
CRADR_X TYPE STRING,
FORADR_X TYPE STRING,
OWNNAM TYPE STRING,
SNDNAM TYPE STRING,
FORNAM TYPE STRING,
SNDST TYPE STRING,
CLDEP TYPE STRING,
INFO TYPE STRING,
SORTORDER TYPE STRING,
DRAGDROPID TYPE STRING,END OF T_EKKO_STR. DATA: WA_SOS_OBJLST_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_SOS_OBJLST_STR-FOLRG sy-vline
WA_SOS_OBJLST_STR-OBJTP sy-vline
WA_SOS_OBJLST_STR-OBJTP_ID sy-vline
WA_SOS_OBJLST_STR-OBJNAM sy-vline
WA_SOS_OBJLST_STR-OBJDES sy-vline
WA_SOS_OBJLST_STR-INDAT sy-vline
WA_SOS_OBJLST_STR-INTIM sy-vline
WA_SOS_OBJLST_STR-CRDAT sy-vline
WA_SOS_OBJLST_STR-CRTIM sy-vline
WA_SOS_OBJLST_STR-CHDAT sy-vline
WA_SOS_OBJLST_STR-CHTIM sy-vline
WA_SOS_OBJLST_STR-RECPR sy-vline
WA_SOS_OBJLST_STR-FORADR sy-vline
WA_SOS_OBJLST_STR-RECADR sy-vline
WA_SOS_OBJLST_STR-CRADR sy-vline
WA_SOS_OBJLST_STR-OBJAC sy-vline
WA_SOS_OBJLST_STR-OBJAC_ID sy-vline
WA_SOS_OBJLST_STR-ATTACH sy-vline
WA_SOS_OBJLST_STR-OBJSND sy-vline
WA_SOS_OBJLST_STR-OBJCHN sy-vline
WA_SOS_OBJLST_STR-OBJCHN_ID sy-vline
WA_SOS_OBJLST_STR-OBJRO sy-vline
WA_SOS_OBJLST_STR-OBJRD sy-vline
WA_SOS_OBJLST_STR-OBJRD_ID sy-vline
WA_SOS_OBJLST_STR-RESUB sy-vline
WA_SOS_OBJLST_STR-SNDEX sy-vline
WA_SOS_OBJLST_STR-SNDCP sy-vline
WA_SOS_OBJLST_STR-SNDBC sy-vline
WA_SOS_OBJLST_STR-OBJRR sy-vline
WA_SOS_OBJLST_STR-PRIFB sy-vline
WA_SOS_OBJLST_STR-FORFB sy-vline
WA_SOS_OBJLST_STR-OBJLA sy-vline
WA_SOS_OBJLST_STR-RECCNT sy-vline
WA_SOS_OBJLST_STR-RRDCNT sy-vline
WA_SOS_OBJLST_STR-RRRCNT sy-vline
WA_SOS_OBJLST_STR-RRPCNT sy-vline
WA_SOS_OBJLST_STR-RARCNT sy-vline
WA_SOS_OBJLST_STR-RAPCNT sy-vline
WA_SOS_OBJLST_STR-RATCNT sy-vline
WA_SOS_OBJLST_STR-RCPCNT sy-vline
WA_SOS_OBJLST_STR-RBCCNT sy-vline
WA_SOS_OBJLST_STR-SDDAT sy-vline
WA_SOS_OBJLST_STR-SDTIM sy-vline
WA_SOS_OBJLST_STR-RBDAT sy-vline
WA_SOS_OBJLST_STR-RBTIM sy-vline
WA_SOS_OBJLST_STR-FOLNAM sy-vline
WA_SOS_OBJLST_STR-FOLDES sy-vline
WA_SOS_OBJLST_STR-OBJRS sy-vline
WA_SOS_OBJLST_STR-DLDAT sy-vline
WA_SOS_OBJLST_STR-PROCESS sy-vline
WA_SOS_OBJLST_STR-OBJLEN sy-vline
WA_SOS_OBJLST_STR-FOLRGTP sy-vline
WA_SOS_OBJLST_STR-STATSO sy-vline
WA_SOS_OBJLST_STR-CRADR_X sy-vline
WA_SOS_OBJLST_STR-FORADR_X sy-vline
WA_SOS_OBJLST_STR-OWNNAM sy-vline
WA_SOS_OBJLST_STR-SNDNAM sy-vline
WA_SOS_OBJLST_STR-FORNAM sy-vline
WA_SOS_OBJLST_STR-SNDST sy-vline
WA_SOS_OBJLST_STR-CLDEP sy-vline
WA_SOS_OBJLST_STR-INFO sy-vline
WA_SOS_OBJLST_STR-SORTORDER sy-vline
WA_SOS_OBJLST_STR-DRAGDROPID sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.