What is the function of the HDMS_TABLE table, specifically in regards to Extensible tables ( including domain)?


Ahh yes, good old HDMS_TABLE table! It is an extremely important table for a number of reasons. Basically, it is a table that lists certain important information about every business table used in Biotics. It is used before, during, and after installation. Here's a partial list of what it is used for:


#1. The scripts used to generate the audit triggers and the deleted schema use this table during installation to create triggers and deleted tables for every Biotics business table. If a table doesn't have an entry in this table when the triggers are generated (usually just after the database is created), it will not have audit triggers made for it. Hence, no audit tracking on that table.


#2. The table_type attribute tells what type of a table it is: domain, business, or system table. Throughout the application, there are many places where Biotics needs to know what type of table it is dealing with.


#3. Audit tracking uses this table to add comments to updated items in the audit log. When you open the record or attribute maintenance window and see something that has been updated, you may see a comment such as "old value: developed by desc" plus the actual desc value, rather than the numeric id. This was added to make the entries in the audit log more informational


#4. There are some tables that are actually subtypes of others. TAXON_SUBNATIONAL is a subtype of ELEMENT_SUBNATIONAL. There are places in the application that need to know this. For example, when a record is copied, it needs to make sure that any and all its subtypes get copied.


#5. The Data Exchange tool uses this table, and a sister table that it creates upon installation called DOMAIN_TABLES, as well for its processing.


There's probably more things that it's used for, but these are the ones that I'm familiar with. It should be a rare occasion when you need to touch this table. Most notably, when you add extensible tables, you need to add an entry into HDMS_TABLE. See the example Oracle script attached to the Solution Creating an extensible table or the Solution Extensible table generation tool, both of which contain an update statement which can be modified to update this table.