Record types

This topic explains the concept of a HCL Compass record type.

A record type is the format for a particular type of change request. It is roughly analogous to a table in a relational database. Each record type defines the data that can be collected for one type of change request. The information about an individual change request is called a record, and an individual piece of data about a change request is called a field.

Each record type is associated with its own state model, forms, and hooks, which collectively control the collection and viewing of data for that type of change request.

HCL Compass clients from earlier versions cannot display records with database identifiers (DBIDs) higher than the previous limit. For more information see Working with Records.

For more information about checking the version of HCL Compass clients, see Client version checking in the HCL Compass API reference pages.

State-based and stateless record types

Two record types are supported: state-based and stateless.

A state-based record type moves through a series of statuses or states (for example, Submitted, Assigned, and Resolved), as a result of user actions.

A stateless record type holds data, but does not change states. Examples include record types for users, projects, and customers. The only actions that you can perform on stateless record types are Submit, Modify, Delete, and Import.

State-based records can reference one or more stateless records. For example, a user might assign defects (a state-based record type) to a project (a stateless record type).

When you add a stateless record type to a schema, you must set one or more of its fields as the unique key. HCL Compass software uses this key to identify individual records of this type.

HCL Compass software maintains four stateless system record types: History, Attachments, Groups, and Users. You cannot delete system record types.

After you create a specific record type, you cannot change it to the other type; that is, you cannot change a stateless record type to state-based record type and vice versa.

Record type display names and DBIDs

Record types have display names and database identifiers that can be used to retrieve records.

A display name is the visible identifier (ID) of a record. A unique key is the same value as the display name for a record. The display name is composed of the unique key fields for any record type.
  • For state-based records the display name is the concatenation of the database set name (for example, RATLC) followed by the 8 digit number that is unique across stateful records. The display name is the ID field of all stateful records.
  • For stateless record types, the display name is composed of the unique key fields separated by spaces. The unique key is formed from the unique key fields defined by the schema developer. For each record, the display name is a concatenation of the values of the unique key fields for that record type (separated by spaces). For example:
    • if a Project record type has one unique key field called Name, then the unique key value for a Project record is the value of its Name field.
    • if a CustomerContact record type has unique key fields CustomerID, Name, and Location, the unique key value for a specific CustomerContact record is a string consisting of the values of the three fields - CustomerID/Name/Location - for that record, with spaces between each field value.

DisplayNames are unique within a kind of (either state-based or stateless) record.

The database identifier (DBID) of a HCL Compass record is an internal identifier for a record. The DBID is a unique number that is sequentially assigned to each record in a user database. For more information, see Working with Records.

For information on implementing a "Find Record" utility using the API, see the GetEntityDefOfDbId or GetEntityDefofName methods in the HCL Compass API reference pages.

Number of record types

A schema can contain more than one record type. For example, a schema might use separate record types for software enhancements and hardware enhancements. Or it might have different record types for issues, problem reports, change requests, defects, and enhancement requests.

Create separate record types when the change request types have a different process model or track different data. For example, if your organization uses different process models for software enhancements and hardware enhancements, create a record type for each. Alternatively, if the process model is the same for software and hardware enhancements, create an Enhancements record type with a field to specify the type of enhancement.

Consider which record types to create carefully. Having more record types permits you to capture more variations in process models; it also complicates administration and makes it more difficult to build queries and reports that include large numbers of change requests. You also want to think ahead; if two types of change requests have the same process model but you anticipate that the model will change, it is easier to create two record types than to try to split them up later.

Also, consider some of the same issues that arise when designing relational databases (or perhaps obtain assistance from a database administrator familiar with these issues). For example, instead of including the submitter, the submitter's e-mail address, and the submitter's phone number in the Defects record type, you might want to create a Submitters record type that contains all of the user's information. This approach allows users to enter only their user names each time they submit a defect. You can then use a REFERENCE field to create a link between the Defect and Submitter record types to include the submitter's e-mail address and phone number on forms and reports. See Linking records to create a parent/child hierarchy.

Default record type

Each schema must have a default record type. Default record types can be state-based or stateless. The default record type is used to create a shortcut button in the HCL Compass client for submitting records of that type. The default record type is used when no other record type is specified.