TableUtils - Global

concept brazil Updated Sep 10, 2026 6 min read c_TableUtilsAPI.md
Raw file servicenow.com

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.

Name Type Description
tableName String The table name
JavaScript
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.

Name Type Description
tableName String Name of the table to drop
Type Description
void
JavaScript
var tu = new TableUtils();tu.drop("table_that_will_be_lost_forever");

Output:

Text
dropping table table_that_will_be_lost_foreverStarting cache flushCache flush completeTABLE 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.

Name Type Description
tableName String Name of the table to drop
Type Description
void
JavaScript
var tu = new TableUtils();tu.dropAndClean("table_that_will_be_lost_forever");

Output:

YAML
dropping table table_that_will_be_lost_foreverStarting cache flushCache flush completeTABLE 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_foreverBackground 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.

Name Type Description
tableName String The table to drop
Type Description
void
JavaScript
var tu = new TableUtils();tu.dropTableAndExtensions("table_that_will_be_lost_forever");

Output:

SQL
dropping table parent_table_that_will_be_lost_foreverStarting cache flushCache flush completeTABLE DROP: admin dropped table ext_table_that_will_be_lost_foreverremoving gauges for ext_table_that_will_be_lost_foreverremoving forms for ext_table_that_will_be_lost_foreverremoving styles for ext_table_that_will_be_lost_foreverremoving forms sections for ext_table_that_will_be_lost_foreverremoving lists for ext_table_that_will_be_lost_foreverremoving related lists for ext_table_that_will_be_lost_foreverremoving references to ext_table_that_will_be_lost_foreverremoving dictionary entries for ext_table_that_will_be_lost_foreverBackground message, type:info, message: Table deleteddropping table parent_table_that_will_be_lost_foreverStarting cache flushCache flush completeTABLE DROP: admin dropped table parent_table_that_will_be_lost_foreverremoving gauges for parent_table_that_will_be_lost_foreverremoving forms for parent_table_that_will_be_lost_foreverremoving styles for parent_table_that_will_be_lost_foreverremoving forms sections for parent_table_that_will_be_lost_foreverremoving lists for parent_table_that_will_be_lost_foreverremoving related lists for parent_table_that_will_be_lost_foreverremoving references to parent_table_that_will_be_lost_foreverremoving dictionary entries for parent_table_that_will_be_lost_foreverBackground 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.

Name Type Description
None
Type Description
String Base table name
JavaScript
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.

Name Type Description
None
Type Description
ArrayList A list of tables that extend the table, includes the base table.
JavaScript
var table = new TableUtils("task");gs.print(table.getAllExtensions());

Output:

Text
[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.

Name Type Description
None
Type Description
ArrayList A list of all classes in the specified table's hierarchy.
JavaScript
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.

Name Type Description
None
Type Description
ArrayList A list of table names in the parent hierarchy.
JavaScript
// Get the hierarchy of tablesvar table = new TableUtils("cmdb_ci_computer");var tableArrayList = table.getTables();
// Use the j2js method to convert the Java ArrayList to JavaScriptgs.include("j2js");var tableArray = j2js(tableArrayList);
// Write the value of each element in the JavaScript arrayvar i = 0;while ( i < tableArray.length ) {gs.print("Table with index " + i + ": " + tableArray[i]);i++;}

Output:

SQL
Table with index 0: cmdb_ci_computerTable with index 1: cmdb_ci_hardwareTable with index 2: cmdb_ciTable with index 3: cmdb

TableUtils - getTableExtensions()

Returns a list of tables that extend a table.

Name Type Description
None
Type Description
ArrayList A 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.)

JavaScript
// Get the tables that extend the tablevar table = new TableUtils("cmdb_ci_computer");var tableArrayList = table.getTableExtensions(); // Use the j2js method to convert the Java ArrayList to JavaScriptgs.include("j2js");var tableArray = j2js(tableArrayList); // Write the value of each element in the JavaScript arrayvar i = 0;while ( i < tableArray.length ) {  gs.print("Table with index " + i + ": " + tableArray[i]);  i++;}

Output:

SQL
Table with index 0: cmdb_ci_mainframe_hardwareTable with index 1: cmdb_ci_handheld_computingTable with index 2: cmdb_ci_ucs_bladeTable with index 3: cmdb_ci_storage_switchTable with index 4: cmdb_ci_serverTable with index 5: cmdb_ci_hmc_server…Table with index 56: cmdb_ci_pc_hardwareTable with index 57: cmdb_ci_ucs_rack_unit

TableUtils - hasExtensions()

Determines if a table has been extended.

Name Type Description
None
Type Description
Boolean True if the table has extensions.
JavaScript
var table = new TableUtils("cmdb_ci_server");gs.print(table.hasExtensions());

Output:

Text
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.

Name Type Description
None

Type

Description

Boolean

Flag 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());

Text
Output:

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

Text
## TableUtils - isSoloClass\(\)
Determines if the table has no parents and no extensions.
|Name|Type|Description||----|----|-----------||None| | |
|Type|Description||----|-----------||Boolean|True 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());

Text
Output:

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

Text
## TableUtils - tableExists\(\)
Checks to see if a table exists.
|Name|Type|Description||----|----|-----------||None| | |
|Type|Description||----|-----------||Boolean|True if the table exists.|

var table = new TableUtils("my_table"); gs.print("Does 'my_table' exist? " + table.tableExists());

Text
Output: Does 'my\_table' exist? false
Search documentation
Search document titles and file paths on the brazil branch