Skip to Content
Technical Articles

ID’s and Sub-ID’s in transaction SAT

Overall the documentation of the SAP system has improved the last years. If not documented we developer mostly have the possibility to trace the meaning or functionality with the help of table entries, roll names fixed values and so on.

But sometimes there are data definitions that are very generic and do not help at all. Often they exist in very common objects like CL_GUI_ALV_GRID (good luck if you want to find out what the fields of NO_TOTARR, VAL_DATA or XDIRECT structure LVC_S_LAYO effect…).

When analyzing a performance issue using transaction SAT I stumbled upon some 1-digit-fields in the list view of an SAT-trace.

list trace file

First of all you might want to know what exactly I am talking about. I am in transaction SAT on the evaluate tab where all existing SAT traces are listed. Normally you will double click on a line and you will end up in the runtime analysis view:

 

But there is another thing you can do and that is click on the icon Trace File:

If you do that you will come to the following list:

And there are three fields with the title R, I and S.

If you place the cursor on one field and hit F1 you get the well known message “No documentation available”. In this case it is because the three fields are typed as CHAR(1).

In the following I would like to inform you about the meaning of these three fields.

Field: Record type

The first field “R” is the record type. Whatever that means. I didn’t find any detail about it. I could imagine the follwing:

  • P = Program
  • M = Method
  • S = SQL-something

I didn’t find more than these three options.

Field: ID

The second field is the ID of a Trace Record (Recorded Event). The right data element is SATR_DE_ID.

Field: Sub-ID

the third field, the sub-ID belongs to the second field ID. The correct data element would be SATR_DE_SUBID.

ID and Sub-ID

The ID and sub-ID of a recorded event can be found in table SATR_ID_SUBID SATR: Table of ID/SUBID Combinations.

If the table might be empty then take a look at class CL_ABAP_TRACE_TEXT method FILL_DBTAB.

There is a second table which values seem to be mixed into the IDs: The table SATR_ID_SUBID_SD with description RT Analysis: ID/SubID Text Assignment for Sequence Diagram.

Conclusion

At least it might not be important to know the ID and sub-ID, because the knowledge about it is shown in the tree view of the main measurement view. The ID “m” and Sub-ID “x” means: Call Method. You will also find it in the tree view:

Never the less I always find it interesting how SAP stores it’s data and how views on the same data can differ.

 

 

2 Comments
You must be Logged on to comment or reply to a post.
  • Hi Enno,

    with the knowledge we could extend SAT with graphic display/navigation capabilities, e.g. using UI5 an a iibrary like D3.js.

    In my tools (cf. Trace to PlantUMLlatest) my best bet was:

    * Object Identifier in a call
    CONSTANTS:
      c_id_func    TYPE satr_de_id VALUE 'U',  " Function module
      c_id_form    TYPE satr_de_id VALUE 'F',
      c_id_class   TYPE satr_de_id VALUE 'R',  " Create object´/ Run time management
      c_id_method  TYPE satr_de_id VALUE 'm',
      c_id_record  TYPE satr_de_id VALUE 'O',  " Record of measurement
      c_id_program TYPE satr_de_id VALUE 'P',  " Program
      c_id_skip    TYPE satr_de_id VALUE 'K'.  " skip over SAP code
    CONSTANTS:
      c_id_load   TYPE satr_de_id VALUE 'L',  " Load
      c_id_module TYPE satr_de_id VALUE 'M',  " Module call
      c_id_report TYPE satr_de_id VALUE 'C',  " CALL screen/report
      c_id_dynpro TYPE satr_de_id VALUE 'A',  " PBO / PAI
      c_id_flow   TYPE satr_de_id VALUE 'E'.  " Flow Logic
    CONSTANTS:  " to be skipped
      c_id_title   TYPE satr_de_id VALUE 'Z',  " Dyn. Assign, Status/Title, SCAN, SET Local
      c_id_message TYPE satr_de_id VALUE 'W',  " Message/Continue/Wait
      c_id_db_oper TYPE satr_de_id VALUE 'V',  "  Database Operation
    
      c_id_sap_sql TYPE satr_de_id VALUE 'S',  " Open SQL
      c_id_db_sql  TYPE satr_de_id VALUE 'Q',  " Native SQL
      c_id_import  TYPE satr_de_id VALUE 'X',  " Export/Import
      c_id_db_tech TYPE satr_de_id VALUE 'N'.  " Buffer/Technical DB Operation

    best regards,

    JNN

  • Hey Jacques Nomssi Nzali thanks for pointing to your cool project! That's really nice and I will try it in time.

    In your case you need to define your own IDs because you have to know how to deal with them and how to interprete a call. I think the IDs fit quite well.

    Cheers
    ~Enno