Top Five ways to find a table and field within a transaction

January 5th, 2010 | Categories: Article, Consulting Tools, Document Type, SAP, Technical | Tags: ,

Have you ever been frustrated trying to find  which table and field a piece of data is stored in. You can see it on the screen, and the old faithful F1 – F9 results in some useless structure information. Or have you ever started looking at a piece of functionality you are unfamiliar with wanting to find the table structures behind it in SAP. Well  this article shows my favorite five ways of digging under the hood to find out what’s going on. Let me just preface this by saying  I’m a purely functional consultant and I’m sure the more ABAP literate probably have their own ways. If so I’d appreciate hearing from you. But anyhow here’s my top 5  (in no particular order).

 

#1 Use a Different Field

when you click on a field then hit F1-F9 and it shows a structure and not a real field, sometimes the easiest way to find the real transparent table behind  is to try another field on the same area of the screen.

In the example below I want to know where SAP stores purchase order confirmation information. On the confirmation tab I click on the delivery date field and press F1 then F9 (technical information) in this case it shows me a structure and not a transparent table.

image

 

So trying another field  like quantity I get the answer I’m looking for

image

 

#2  Use Where Used on the Data Element

An alternative when faced with a structure is to use the ‘where used’ on the  data element. This can have mixed results but can often show a list of tables that can be quite useful.

From within the technical information pop up (F1-F9) click on the data element then press navigate

image

image

image

In the above example there were only two choices, I could then view both of these tables using SE16N to see if the data relating to my purchase order is there.

#3 Environmental Analysis

This is one of my current favorites for finding all the tables related to a transaction I might be unfamiliar with.  Its a bit broader than finding a specific field and table on a screen, but very powerful and quick. For example if I wanted to find out how SAP stores object classification information i would proceed as follows. Find a suitable transaction that focuses on object classification, there are a umber but I’ll use CL24N for this example.

from within the transaction find out what the program name is using System > Status

image

image

From here you can find the program name in this case SAPLCLFM. Copy the program name into the clipboard then in a new session enter it into an SE38 transaction.

image

From here you can select the environmental analysis option. image  next you get a list of objects to analyze for.

image

you can either just select tables or leave them all selected and execute. This gives the resulting tables used by the transaction code along with the package code which can be used in the SE80 method above.

image

I generally  ignore the T tables as configuration tables  and can quickly understand how the tables interact by looking at their data in Se16N.

 

#4 Pot Luck in Table Naming / SE80 Object Navigator

I often use this method to get a ‘feel’ for what tables are related to a certain piece of functionality as SAP often uses a fairly consistent naming convention for tables. In my purchase order example I know that the PO header table is EKKO  and that PO item table is EKPO,  so within SE16N I can search for all tables starting with EK* to see if anything pops out

image

from the list above I can see that vendor confirmations is EKES.

A similar but more comprehensive way of achieving this is to use the SE80 Object navigator transaction in SAP, here you can find all the data dictionary related objects associated with some functionality in one place.

I tend to use the ‘package’ as a way of finding objects and the application hierarchy to identify the correct package.

image

 

In this example we can look at all the dictionary objects in package ME

image

 

#5 Traces (Runtime Analysis and SQL trace)

If all else fails you can always trace the transaction to see what its up to and SAP provides two very useful traces that can be as useful for functional consultants as developers. About ten years ago I  used to use these traces all the time, I must say i use them much more infrequently these days as I think the repository tools mentioned above have become more sophisticated  (or maybe I have become more sophisticated). However sometimes performing a trace on a transaction gives you an idea what the program is up to.

SE30 Runtime Analysis

Executing transaction SE30 allows you to perform the desired transaction from within the trace

image

Give the trace a name then enter the tcode you want to analyze and execute.

run though the transaction make sure you enter data in the field or area of the screen you want to track. Complete the transaction by saving and you will return to the trace screen.

now you can evaluate the trace

image

The initial screen shows performance information which we’re not interested in

image

select the hit list button image  You now get a sequential list of what the transaction did, which can be overwhelming

image

Not being a developer I only look for a few things in this list such as Fetch and Select statements as they generally relate to table reads and writes and these are all of the type ‘DB’ .  (I’m sure an ABAP savvy person might have a better criteria)  you can filter the results using the ALV filter button.

Select the type column for filtering

image

then enter your criteria of ‘DB’

image

you now have a pretty exhaustive list of tables that were hit during the trace (so make sure you populate values in the fields you’re trying to track down when doing the trace.)

ST05 SQL Trace

This is a similar form of trace to the runtime analysis, however it works using two sessions, it also generates a lot of data so you need to prep what you trace before hand.

in one session set up the transaction you want to trace, then open a new session and select ST05

image

Select the SQL trace and activate. Alt Tab to your other session, enter some data in the area you want to trace then save that transaction. Immediately alt tab back to the trace and deactivate it

image

now you can display the trace

image

somewhere in the resulting mess of a report will be the data you changes and the resulting table objects

image

 

good luck hinting around.

 

Conclusion

To be honest I haven’t needed to use a trace to find a table and field in a long time. I think the object navigator and the environmental analysis have replaced the need for these. However they are definitely available tools. I know this list isn’t exhaustive and many of you may have better methods. If you do please leave a comment. Like I said I’m  a functional guy so I’m sure the technical guys out there have a few tricks

Post to Twitter

  1. Doug Ashley
    January 7th, 2010 at 16:22
    Reply | Quote | #1

    Good list! I really like Runtime Analysis but create a special variant ~Without Aggregation~ and then use Goto -> Object-centered hit list -> Database tables.

  2. March 20th, 2011 at 13:07
    Reply | Quote | #2

    OMG! There is a great article!!!
    Tks!

  3. saplearn
    June 24th, 2011 at 05:25
    Reply | Quote | #3

    Great, Did not know about environmental analysis