Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

TableUtils- Global

The TableUtils script include provides shortcuts for accessing table related information.

This class is available to server-side scripts.

Parent Topic:Server API reference

TableUtils - TableUtils(String tableName)

Creates an instance of a TableUtils class.

NameTypeDescription
tableNameStringThe table name
var tu = new TableUtils("incident");

TableUtils - drop(String tableName)

Drops a database table.

Note: Use with extreme caution. Dropping a table permanently deletes the table and all its data. If the table is extended, use dropTableAndExtensions.

NameTypeDescription
tableNameStringName of the table to drop
TypeDescription
void 
var tu = new TableUtils();
tu.drop("table_that_will_be_lost_forever");

Output:

dropping table table_that_will_be_lost_forever
Starting cache flush
Cache flush complete
TABLE DROP: admin dropped table table_that_will_be_lost_forever

TableUtils - dropAndClean(String tableName)

Drops a database table and cleans up references to the table.

Note: Use with extreme caution. Dropping a database table permanently deletes the table and all its data. If the table is extended, use dropTableAndExtensions.

NameTypeDescription
tableNameStringName of the table to drop
TypeDescription
void 
var tu = new TableUtils();
tu.dropAndClean("table_that_will_be_lost_forever");

Output:

dropping table table_that_will_be_lost_forever
Starting cache flush
Cache flush complete
TABLE DROP: admin dropped table table_that_will_be_lost_forever
*** Script: removing gauges for table_that_will_be_lost_forever
*** Script: removing forms for table_that_will_be_lost_forever
*** Script: removing styles for table_that_will_be_lost_forever
*** Script: removing forms sections for table_that_will_be_lost_forever
*** Script: removing lists for table_that_will_be_lost_forever
*** Script: removing related lists for table_that_will_be_lost_forever
*** Script: removing references to table_that_will_be_lost_forever
*** Script: removing dictionary entries for table_that_will_be_lost_forever
Background message, type:info, message: Table deleted

TableUtils - dropTableAndExtensions(String tableName)

Drops a database table, all of it's extended tables, and cleans up references to the tables.

Note: Use with extreme caution. Dropping a database table permanently deletes the table and all of its data.

NameTypeDescription
tableNameStringThe table to drop
TypeDescription
void 
var tu = new TableUtils();
tu.dropTableAndExtensions("table_that_will_be_lost_forever");

Output:

dropping table parent_table_that_will_be_lost_forever
Starting cache flush
Cache flush complete
TABLE DROP: admin dropped table ext_table_that_will_be_lost_forever
removing gauges for ext_table_that_will_be_lost_forever
removing forms for ext_table_that_will_be_lost_forever
removing styles for ext_table_that_will_be_lost_forever
removing forms sections for ext_table_that_will_be_lost_forever
removing lists for ext_table_that_will_be_lost_forever
removing related lists for ext_table_that_will_be_lost_forever
removing references to ext_table_that_will_be_lost_forever
removing dictionary entries for ext_table_that_will_be_lost_forever
Background message, type:info, message: Table deleted
dropping table parent_table_that_will_be_lost_forever
Starting cache flush
Cache flush complete
TABLE DROP: admin dropped table parent_table_that_will_be_lost_forever
removing gauges for parent_table_that_will_be_lost_forever
removing forms for parent_table_that_will_be_lost_forever
removing styles for parent_table_that_will_be_lost_forever
removing forms sections for parent_table_that_will_be_lost_forever
removing lists for parent_table_that_will_be_lost_forever
removing related lists for parent_table_that_will_be_lost_forever
removing references to parent_table_that_will_be_lost_forever
removing dictionary entries for parent_table_that_will_be_lost_forever
Background message, type:info, message: Table deleted

TableUtils - getAbsoluteBase()

Returns the base table name from which the table was extended.

Note: For any table under the cmdb_ci hierarchy, this method returns cmdb_ci and not cmdb, which is the actual base table.

NameTypeDescription
None  
TypeDescription
StringBase table name
var table = new TableUtils("cmdb_ci_server");
gs.print(table.getAbsoluteBase());

Output: cmdb_ci

TableUtils - getAllExtensions()

Returns the list of tables that extend a table, includes the base table.

NameTypeDescription
None  
TypeDescription
ArrayListA list of tables that extend the table, includes the base table.
var table = new TableUtils("task");
gs.print(table.getAllExtensions());

Output:

[task, incident, issue, kb_submission, sysapproval_group, change_request, change_request_imac, sc_task, 
problem, sc_req_item, ticket, ast_transfer_order, planned_task, change_task, change_phase, sc_request]

TableUtils - getHierarchy()

Returns a list of all classes participating in the hierarchy of the specified table.

NameTypeDescription
None  
TypeDescription
ArrayListA list of all classes in the specified table's hierarchy.
var table = new TableUtils("cmdb_ci_server");
gs.print(table.getHierarchy());

Output: [cmdb_ci_server, cmdb_ci_computer, cmdb_ci_hardware, cmdb_ci, cmdb_ci_mainframe, cmdb_ci_linux_server, cmdb_ci_mainframe_lpar, cmdb_ci_esx_server, cmdb_ci_unix_server, cmdb_ci_solaris_server, cmdb_ci_hpux_server, cmdb_ci_aix_server, cmdb_ci_osx_server, cmdb_ci_netware_server, cmdb_ci_win_server]

TableUtils - getTables()

Returns the table hierarchy.

NameTypeDescription
None  
TypeDescription
ArrayListA list of table names in the parent hierarchy.
// Get the hierarchy of tables
var table = new TableUtils("cmdb_ci_computer");
var tableArrayList = table.getTables();

// Use the j2js method to convert the Java ArrayList to JavaScript
gs.include("j2js");
var tableArray = j2js(tableArrayList);

// Write the value of each element in the JavaScript array
var i = 0;
while ( i < tableArray.length ) {
gs.print("Table with index " + i + ": " + tableArray[i]);
i++;
}

Output:

Table with index 0: cmdb_ci_computer
Table with index 1: cmdb_ci_hardware
Table with index 2: cmdb_ci
Table with index 3: cmdb

TableUtils - getTableExtensions()

Returns a list of tables that extend a table.

NameTypeDescription
None  
TypeDescription
ArrayListA list of table names that extend the table.

This example shows that 58 tables in this instance extend the Computer [cmdb_ci_computer] table. (Output condensed below.)

// Get the tables that extend the table
var table = new TableUtils("cmdb_ci_computer");
var tableArrayList = table.getTableExtensions();

// Use the j2js method to convert the Java ArrayList to JavaScript
gs.include("j2js");
var tableArray = j2js(tableArrayList);

// Write the value of each element in the JavaScript array
var i = 0;
while ( i < tableArray.length ) {
  gs.print("Table with index " + i + ": " + tableArray[i]);
  i++;
}

Output:

Table with index 0: cmdb_ci_mainframe_hardware
Table with index 1: cmdb_ci_handheld_computing
Table with index 2: cmdb_ci_ucs_blade
Table with index 3: cmdb_ci_storage_switch
Table with index 4: cmdb_ci_server
Table with index 5: cmdb_ci_hmc_server
…
Table with index 56: cmdb_ci_pc_hardware
Table with index 57: cmdb_ci_ucs_rack_unit

TableUtils - hasExtensions()

Determines if a table has been extended.

NameTypeDescription
None  
TypeDescription
BooleanTrue if the table has extensions.
var table = new TableUtils("cmdb_ci_server");
gs.print(table.hasExtensions());

Output:

true

TableUtils - isBaseClass()

Determines if a table is a base class, meaning it has no parents and has extensions.

For example, Task is a base class since it is not extended from another table and has tables extended from it. Sys_user is not a base class because it has no parents, but does not have extensions.

NameTypeDescription
None  
TypeDescription
BooleanFlag that indicates whether a table is a base class table meaning it has no parents but has extensions.Valid values: - true: Table is a base class. - false: Table is not a base class.
var table = new TableUtils("task");
gs.print("Task is base class: " + table.isBaseClass());

var table = new TableUtils("sys_user");
gs.print("User is base class: " + table.isBaseClass());

Output:

 Task is base class: true
User is base class: false

TableUtils - isSoloClass()

Determines if the table has no parents and no extensions.

NameTypeDescription
None  
TypeDescription
BooleanTrue if the table has no parent and no table is extended from it.
var table = new TableUtils("task");
gs.print("task is solo class: " + table.isSoloClass());

var table = new TableUtils("cmdb_ci_win_server");
gs.print("cmdb_ci_win_server is solo class: " + table.isSoloClass());

var table = new TableUtils("sys_user");
gs.print("sys_user is solo class: " + table.isSoloClass());

Output:

task is solo class: false
cmdb_ci_win_server is solo class: false
sys_user is solo class: true

TableUtils - tableExists()

Checks to see if a table exists.

NameTypeDescription
None  
TypeDescription
BooleanTrue if the table exists.
var table = new TableUtils("my_table");
gs.print("Does 'my_table' exist? " + table.tableExists());

Output: Does 'my_table' exist? false