Table of Contents
< All Topics
Print

Item Types

The main building block of the Gnosis Application is the Item Type, which represents a business model and logic.

An Item Type is like a database table comprising Properties (columns) and Items (rows).

Gnosis Item Types provides a Lifecycle-driven Object-oriented data modeling system for defining your business entities and their behavior.

To manage Item Types, log into the Gnosis No-code App as a user with either Administrator or Developer Roles, and open the Gnosis Solutions App:

/#dashboard:app:solutions

Double-click on the Solution Tile to open the Solution Configuration App:

/#configure:{SolutionName}

Item Type

Click the New Item Type toolbar menu button to select the kind of Item Type to create.

You can create new Item Types and Property Types from the root Solution node.

The new Relationship Type and Link Type menu items are available when selecting an Item Type sub-node.

The selected Item Type node will automatically be the Parent for the new Relationship and Link Type.

Property Type

Click the Property Type menu item to open the New Item Type dialog.

Property Types are added to the Solution Schema in the Properties Types tree node.

  • Name—The Item Type Name. The Name can contain only letters, digits, and underscore symbols, starting with a letter or underscore.
  • Extends—Select the Item Type as the base for the new Item Type.
  • Lifecycle—Select the existing Lifecycle for the new Item Type.
  • Clone Lifecycle—Clone the Lifecycle as the Lifecycle for the new Item Type.
  • Description—A description that can contain markup.

Property Types are like abstract Item Types in that they are not used directly to create items.

Item Type Complex-type properties reference Property Types.

The only reserved properties for Property Types are the Summary and LimitedTo properties.

Property Types do not have an ID, so they cannot be referenced.

Property Types can have a Lifecycle, but only the Item Events are triggered.

Property Types referenced by Complex Properties are One-To-One relationships between the Item and the Complex property values.

Relationship Type

Relationship Types extend the Item Type with an additional reserved Parent reference-type property for specifying the Parent Item Type in the relationship.

The Parent Item is the master in the relationship. Therefore, Relationship Items are deleted when the Parent Item is deleted.

Relationship Types can have a distinct Lifecycle from the Parent Item Type.

The Relationship Type referenced by the reserved Parent property is a One-to-Many relationship.

Link Type

Link Type extends the Relationship Type with an additional reserved Child reference-type property for specifying the Child Item Type in the relationship.

Since the Link Type extends the Item Type, you can define properties on the link itself.

The Parent is the master in the relationship, so Linked items are deleted when the Parent Item is deleted; however, the Child Item is not deleted.

Link Types can have a distinct Lifecycle from the Parent Item Type.

The Link Type referenced by the Parent and Child properties is a Many-To-Many relationship (many parents can use any child.)

List of Values (LOV)

List-of-Values Types derive from the Platform Gnosis.LOV Item Type.

They are shown in the Solution Schema tree as the LOV Types node.

Select the LOV node to open the LOV Editor to add, update, and reorder list values.

LOV Item Types are referenced by PickList properties just like any other. Except that, because they derive from LOVs, the No-code App shows them as a simple dropdown control because they are lists of values.

Conversely, the dropdown for ordinary Item Types is more robust, allowing for grouping, searching, editing, and creating new items.

Each Item Type, including LOV, can be configured to show any action icons you want.

New LOV

Click the New LOV toolbar button to open the New LOV Type dialog.

  • Name—The LOV Type Name. The Name can contain only letters, digits, and underscore symbols, starting with a letter or underscore.
  • Description—A description that can contain markup.

Edit LOV

Click the Edit toolbar button to open the Item Type Configuration dialog. The same User Interface appears when you select the LOV Type on the Solution Schema tree.

Remove LOV

Select the LOV and click the Remove toolbar button to delete the LOV Type. You will not be able to delete it if it is in use.

Details

Select the Item Type node on the Solution Schema tree to open the Item Type Details.

  • Name—The Item Type Name is required and may contain only letters, digits, and underscore symbols, starting with a letter or underscore.
  • Label—The Item Type Label.
  • Collection Name – The database collection name.
  • Plural—The plural Label for the Item Type.
  • Extends—The base Item Type for the Item Type.
  • Abstract—If true, the Item Type is not used directly but as a base for other Item Types.
  • Polymorphic—If true, allow Items derived from this Item Type to be interchangeable and change Type.
  • Include Derived—If true, ???
  • History—If true, automatically keep a history of the Item changes.
  • Skip Affected—If true, ???
  • Case Insensitive—If true, ???
  • Description—A description for the Item Type and can contain markup.
  • Indexes—Property indexes. Put indexes on separate lines. Use comma-delimited property names for multi-property indexes.

Save Changes

Click the Save toolbar button to save the Item Type detail changes.

Remove

Click the Remove toolbar button to delete the Item Type. The Item Type will not be deleted if referenced.

Purge Archived Items

Click the Purge Archived toolbar button to permanently delete the Items in the Archived State.

Move Item Type

Click the Move to Solution toolbar button to relocate the Item Type to a different Solution.

Convert to Relationship Type

Click the Convert to Relationship toolbar button to open the Convert to Relationship dialog. Required PickList-type properties for the Item Type are candidates to become the Parent reference property. Alternatively, you must select the Item Type as the Parent for the new Relationship Type.

Convert to Link Type

Click the Convert to Link toolbar button to open the Convert to Link dialog. The required PickList-type properties for the Item Type are candidates to become the Parent or Child reference properties. Alternatively, you must select the Item Type as the Parent and Child for the new Link Type.

Convert to Property Type

Click the Convert to Property Type toolbar button to open the Convert to Property Type dialog.

UI Config

You can configure how the Item Type appears in the No-code App.

  • Main Nav—The Item Type will appear in the main navigation menu.
  • All Tabs—Show the All tab when it derives from another Item Type.
  • Font Icon—An icon for the Item Type.

PickList Control Options

You can configure how the dropdown control will appear for PickList properties in the No-code auto-format Views for the Item Type:

  • Dropdown—Show the Items in a dropdown.
  • Search—Show the search icon to open a Search dialog.
  • New—Show the add icon to open a New Item dialog.
  • Expand—Show the expand icon to open the Item inline.
  • Edit—Show the edit icon to open the Update Item dialog.

Model

The properties of an Item Type represent its data model.

A Property is like a data type describing the stored data but has a Name, Label, Description, Constraints, and other attributes specific to the data type.

Item Types can have as many properties as needed to describe and model the business item. But there is a set of reserved properties that every Item Type has:

ID

The Item ID is a unique 32-character GUID (globally unique identifier) string. It is automatically generated when the Item is created and cannot be changed.

The ID is indexed and is the primary key for referencing the Item.

Name

The Item Name property is a String used to name the Item.

The Name property is non-unique by default. However, you can configure it to be unique across archived items, Relationship items, and all items derived from the same base Item Type.

The Name Property is indexed.

Summary

The Item Summary property is an Expression data type used to label the Item.

The default Summary expression is:

$ItemType.Relationship == 'Link' 
    ? $Item.Child.Summary 
    : $ItemType.Properties?.Name 
        ? $Item.Name 
        : $ItemType.Label

This expression says to use the Summary from the Child Item if the Item is a Link Type. Otherwise, use the Name for the Item if the property exists (Property Types do not have a Name by default); otherwise, use the Label of the Item Type for the Item.

You can return anything you want from the Summary expression, including JSON or HTML markup:

var color = $Item.$ItemType.Name == "PriorityEntity" ? "FF6600" : "00CCFF";
var weight = $Item.$ItemType.Name == "PriorityEntity" ? "800" : "500";

"<font style='font-weight:{weight}; color:#{color};'>{Name}</font>
- {CreatedBy} on {CreatedOn.ToString('MMM. dd, yyyy')}"

Sequence

The Item Sequence property is a Float data type used to order items. It is the default sort order for Relationship and Link Type items.

The user or Application Logic can change the value.

Created On

The CreatedOn property is a DateTime data type set to the date and time the Item was created.

The value cannot be changed.

Created By

The CreatedBy is a User data type referencing who created the Item.

The value cannot be changed.

Status

The Status is the Item’s current Lifecycle State and is changed by Promoting the Item to its next State.

Limited To

The LimitedTo is an Identity referencing a User or Team with access to the Item.

This provides a level of access control over Solution Permissions.

A user may be a member of an Identity granted permission at the Solution Level but must also be a member of the Identity for the LimitedTo property on the Item.

Behavior

Views

Permissions

Schema Diagram

Import

History