TableUtils - Global

  • Release version: Zurich
  • Updated July 31, 2025
  • 5 minutes to read
  • 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
    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
    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
    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
    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
    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.
    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.
    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.
    // 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.

    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.
    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.
    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.
    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.
    var table = new TableUtils("my_table");
    gs.print("Does 'my_table' exist? " + table.tableExists());

    Output: Does 'my_table' exist? false