The AbstractDBObject script include provides common methods for classes based on records in the database.

Use this script include as a base class to create your own database object class.

AbstractDBObject - isValid()

Determines if the current database record is valid.

See also IPService - Global.

Table 1. Parameters
Name Type Description
None
Table 2. Returns
Type Description
Boolean True if the database record is valid, false otherwise.

Flag that indicates whether the database record is valid.

Valid values:
  • true: The database record is valid.
  • false: The database record is invalid.

Example

The following example shows how to get a list of valid instances using the IPService() class from the IP Services [cmdb_ip_service] table. The IPService class extends the AbstractDBObject() class.

/**
 * IPService class Encapsulates the notion of an IP Service. Instances in which isValid() returns true have the 
 * following properties initialized: 
 *  sysID:       sys_id of this record
 *  port:        the TCP or UDP port used by the service
 *  protocol:    protocol used by the service ("UDP", "TCP", or "TCP/UDP")
 *  name:        short name or handle
 *  serviceName: long, descriptive English name
 *  creates:     table that this service creates entries in
 *  description: description
 */

var result = [];
// Array of sys_id's from the IP Service class which we want to get the abstract details
var list = ['db9840e10ab3015500f5e3fe8f78da42', 'a1505ebc7782330099808d1168106179', 'abc05ebc7782330099808d1168106112'];

// query for the records on the list
var ipservice = new GlideRecord('cmdb_ip_service');
ipservice.addQuery('sys_id', 'IN', list.toString());
ipservice.query();
while (ipservice.next()) {
    var ip = new IPService(ipservice); // IPService class extends AbstractDBObject class and this class 
    if (ip.isValid())      // check whether the record is valid or not
        result.push(ip);   // if valid get the properties for 
}

gs.info(JSON.stringify(result, null, 2));

Output:

[
  {
    "valid": true,
    "sysID": "a1505ebc7782330099808d1168106179",
    "port": "8882",
    "protocol": "TCP",
    "name": "blkbry-uem-enroll",
    "serviceName": "Blackberry Enrollment Request",
    "creates": null,
    "description": null
  },
  {
    "valid": true,
    "sysID": "db9840e10ab3015500f5e3fe8f78da42",
    "port": "548",
    "protocol": "TCP",
    "name": "afp",
    "serviceName": "Apple File Protocol",
    "creates": null,
    "description": null
  }
]