IssueNet Online Help System

www.elsitech.com

Edit

1 What are Classes?

IssueNet takes an object-oriented approach to database access. Data is organized in the database as objects. Each object belongs to one class, which defines the properties and relationships objects of that class. Class information is stored in the database and is also referred to as metadata, because it is data that describes how user data is organized in the database.

Each class derives from a base class and inherits the properties and relationships of that base class. All classes derive either directly or indirectly from the AppObject class, which is the root class in the IssueNet class hierarchy. The AppObject class defines properties common to all objects such as ObjectID, Name, ParentID, and Description. Each class can extend its base class with new properties and relationships and it can also override properties defined in the base class.

For example, a user might want to create a new type of Issue called TroubleTicket that has a custom property called EquipmentType. The new TroubleTicket class would derive from the class Issue and define the EquipmentType property. This will add a new table called TroubleTicket to the database that contains a single column named EquipmentType. Objects of type TroubleTicket can now be added to the IssueNet database.

Edit

1.1 Object-Oriented to Relational Mapping

IssueNet objects are stored in a relational database management system (DBMS). Mapping objects onto tables and columns in a relational database is one of the functions of the class metadata. Each class maps onto a table in the database and each property of the class maps to a column. In addition, a database view is associated with each class that joins the table associated with the class and the tables associated with each base class.

Edit

2 Class Properties

Each class has properties that define the data contained by objects belonging to that class. Each property has a name, display name, data type, size, column name, item list, default value, and several flags to control its behavior. Derived classes can override a property defined in a base class in order to change certain attributes of the property such as display name, default value, and item list. The item list associated with a property defines a pick list of values that can be assigned to the property.

The name of a property must be unique within the scope of that class and all base classes. For example, if you define a property named MyProperty in a class named MyClass, then no class derived from MyClass is allowed to define a property named MyProperty . However, classes derived from MyClass are allowed to override the MyProperty property.

Each property maps to a column in the database. The ColumnName column specifies which column in the class table stores the data for the property.

Edit

3 The Class Form

Edit

3.1 The General Tab

The General Tab contains the following information about the class:

  • Display Name- This is the Display Name as it will appear in the User Interface.
  • Table Name- This is the table name of the Class. Once the Class is created and Saved, the Table Name cannot be edited.
  • Sequence Number-Sequence numbers are the sequential IDs assigned to every IssueNet object.
  • Name Mask- This allows the Sequence Number to be prepended with a unique value.
  • Derives From- This field displays the Class name from which the Class derives. For example, Defect derives from the Problem class.
  • Plugin-
  • Sealed-
  • Reportable-
  • Unique Names- When this item is selected, objects with the same name are prohibited from being inserted.
  • User-
  • Creatable-

Edit

3.2 The Inherited Properties Tab

The Inherited properties tab lists the properties of the class that are contained in the base class. For example, the class Defect will inherit the properties of Problem, which in turn inherits the properties of Issue.

Edit

3.3 The Local Properties Tab

The Local Properties tab displays the Properties that are unique to the class. You can also add local properties to a class. By adding a local property, you are adding a Column to the database. Local properties are most often used to create Custom Fields in a class. The Local Propertes tab contains the following columns:

  • Name- The name of the local property. When adding a new local property, be sure that the Name is one word, (ie: MyProperty).
  • Type- This defines the data type of the property.
  • Size- This column defines the size of the property, in most cases there is not a need to edit this column.
  • Format- This column defines the Format of the property, in most cases there is not a need to edit this column.
  • Display Name- This column defines the Display Name of the property as it will display in the user interface. As a best practice, this should match the Name column, but you can use spaces here, so if you created a Name that is one word, you can change it here (ie: My Property).
  • Item List- This column is used to bind a property to an item list, if applicable. If for example you are creating a property that will have multiple values in the form of a combo-box, you will use this column to bind the property to the ParamList you have created.
  • Column Name- This column defines the Column Name of the property, in most cases there is not a need to edit this column.
  • Default Value- This column allows you to set a default value for the property. This is useful if you have a ParamList associated with the property.
  • Nulls- If this column is checked, Null values will be allowed for this property.
  • Index-
  • Audit- If checked, this property will be audited.

Edit

3.4 The Overridden Properties Tab

This tab allows you to overrride an inherited property. A common use case for this is to change the Display name of a property or to use a custom item list. To add an override, simply click the Add button and select the property from the drop-down list in the Name column.

Edit

3.5 The Relationships Tab

A relationship between two classes describes how objects belonging to those classes can be linked together. A link can be thought of as an instance of a relationship that binds together two object instances. A relationship consists of a name, two class IDs, cardinality values, relational database mapping information, and several other columns that describe the behavior of the relationship.

Like properties, relationships have a name that must be unique within the scope of the class they belong to. The relationship has a ClassID column that specifies which class it belongs to. This class is also referred to as the “link from” class because the direction of the relationship is from the class specified by the ClassID column to another class. The “link to” class is specified in the RelatedClassID column.

Like properties, relationships contain metadata that map links onto a relational database. The TableName field specifies which table in the database contains the link information. The table specified by the TableName column is referred to as the “link table”. The link table must at a minimum contain two object ID columns: one for the link from ID and one for the link to ID. The relationship has a two columns, LinkFromIDColumn and LinkToIDColumn, that specify which columns in the link table contain the link-from ID and link-to ID. IssueNet uses the relationship metadata to read and write object links to and from the database. The direction of a relationship is important when navigating the links that belong to the relationship. A link does not have a direction, so it is possible to navigate it from either of the two objects involved. However, a relationship is needed in order to navigate links. Since a relationship has only one direction, two relationships must be defined in order to navigate the same link in either direction. This is the purpose of the LinkKey field in the relationship. The LinkKey field allows two different relationships to share the same set of links. The LinkKey can defaults to the name of the relationship, but it can be set to any string value. Relationships that have the same LinkKey will share the same set of links.

Edit

3.6 The Icons Tab



Each class can have several icons associated with it. The icons are used in the IssueNet client to represent objects that belong to the class, lists of objects, and other user interface elements that are associated with the class. The DefaultIcon is used to represent individual objects that belong to the class. The ListIcon is used to represent multiple objects belonging to the class. The SelectedIcon is used to represent an individual object that belongs to the class and is selected in the user interface.