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

This class is available to server-side scripts.

TableUtils - TableUtils(String tableName)

Creates an instance of a TableUtils class.

Table 1. Parameters
Name Type Description
tableName String The table name

Example

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.
Table 2. Parameters
Name Type Description
tableName String Name of the table to drop
Table 3. Returns
Type Description
void

Example

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.
Table 4. Parameters
Name Type Description
tableName String Name of the table to drop
Table 5. Returns
Type Description
void

Example

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.
Table 6. Parameters
Name Type Description
tableName String The table to drop
Table 7. Returns
Type Description
void

Example

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.
Table 8. Parameters
Name Type Description
None
Table 9. Returns
Type Description
String Base table name

Example

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.

Table 10. Parameters
Name Type Description
None
Table 11. Returns
Type Description
ArrayList A list of tables that extend the table, includes the base table.

Example

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.

Table 12. Parameters
Name Type Description
None
Table 13. Returns
Type Description
ArrayList A list of all classes in the specified table's hierarchy.

Example

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.

Table 14. Parameters
Name Type Description
None
Table 15. Returns
Type Description
ArrayList A list of table names in the parent hierarchy.

Example

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

Table 16. Parameters
Name Type Description
None
Table 17. Returns
Type Description
ArrayList A list of table names that extend the table.

Example

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.

Table 18. Parameters
Name Type Description
None
Table 19. Returns
Type Description
Boolean True if the table has extensions.

Example

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.

Table 20. Parameters
Name Type Description
None
Table 21. Returns
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.

Example

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.

Table 22. Parameters
Name Type Description
None
Table 23. Returns
Type Description
Boolean True if the table has no parent and no table is extended from it.

Example

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.

Table 24. Parameters
Name Type Description
None
Table 25. Returns
Type Description
Boolean True if the table exists.

Example

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

Output: Does 'my_table' exist? false