Today its going to get technical with the topic TM specific storages for Transportation Network objects Location and Transportation Zone. This concept exists since TM 8.0.
Background: A TM specific storage for master data objects is required due to a very important reason - its all about speed! In detail, there are 2 points making it necessary to bring the basis master data into a format fitting for SAP TM: First of all, when for example displaying location information (description, address info, and so on) on the user interface or using it for business document selection, the relevant data is spread over many different objects / database tables making it slow to process. The second performance block is the dynamic Location assignment to Transportation Zones (check also my MKS04 - Flexible Transportation Zones). For customers having hundreds of thousands locations (including one-time locations - see MKS10) in the system, a selection via zones using an address validation during runtime can take some time. Remember, the system needs to check for each location using its address, if it is covered by the zone definitions (region or postal code).
To avoid such unkind performance blocks, there are two database tables storing exactly the information required for a high performance access in SAP TM. Table /SCMTMS/D_SHLOC holds all locations including relevant address fields, while table /SCMTMS/D_SHZON stores Location - Zone assignments.
What do I need to do? Well, actually nothing. This works out of the box and is updated whenever a location is created, changed, or deleted. Or a zone is created, changed and deleted. For the automatic update the so-called Change Notification Framework is used (class /SCMTMS/CL_CNA_TM). This of course includes the deletion of obsolete entries.
Why then care? Well, live is not always perfect. Whenever you run into the situation that a selection criteria using zones does not work correctly, or any location specific UI fields appear empty, it might be worth checking the shadow tables.
How do I check? You can use report /SCMTMS/SHDB_FILL_MD_TABLES. It enables checking and check&correct. I will come up in the next few weeks with a Location specific check option as the runtime for a complete check can be quite long.
Very important to mention is here that it is not recommended at all to steer any processes by manipulating the content of these tables. In case you want to exclude locations from zones, use the standard features.
Interesting notes: 1747657 - Location Shadow table does not respect location exclusion 1744237 - Location Shadow table misses address information 1704860 - Report for shadow location table: High memory consumption 1693959 - Dump in Shadow Location Fill Report due to memory shortage
In case you encounter any issues in this area, the right component is TM-MD-TN.