getAbsoluteBase() method is a liar

Slava Savitsky
Giga Sage

If you look at the table definition of the [cmdb_ci] table in Geneva or Helsinki, it appears to be an extension of the [cmdb] table. However, TableUtils seem to have a different view on this matter or rather some doubts about the relationship between the two tables. Let's have a look at the following example:

var computer = new TableUtils('cmdb_ci_computer');

computer.getTables();               // [cmdb_ci_computer, cmdb_ci_hardware, cmdb_ci, cmdb] - OK

computer.getAbsoluteBase();   // cmdb_ci - ???

Any ideas why getAbsoluteBase is so unwilling to acknowledge something so obvious?

1 ACCEPTED SOLUTION

Slava Savitsky
Giga Sage

The official answer from ServiceNow Technical Support in INT3812444 was that this was by design and served backward compatibility after cmdb_ci had been reparented to cmdb. ServiceNow Product Documentation has been updated to reflect this peculiarity.

View solution in original post

7 REPLIES 7

The GlideTableHierarchy API includes a getRoot() function which should be exposed via GlideDBObjectManager API but it appears it is not.


http://wiki.servicenow.com/index.php?title=Scoped_GlideTableHierarchy_API_Reference#getRoot.28.29



I get an illegal access error when trying to execute.   I would recommend open an incident in Hi because new GlideDBObjectManager.get().getRoot("cmdb_ci_server") should work.   From what I know GlideTableHierarchy is basically calling this same API but obviously for scoped apps.


Slava Savitsky
Giga Sage

The official answer from ServiceNow Technical Support in INT3812444 was that this was by design and served backward compatibility after cmdb_ci had been reparented to cmdb. ServiceNow Product Documentation has been updated to reflect this peculiarity.

Thank you for the follow up on this older thread.