About IDOs

An Intelligent Data Object (IDO) is a business object that encapsulates units of information and logic that are called from the client layer to interact with data in the database. The basic job of the IDO is to transport collections of data back and forth between the client and the database, with any validation or rules needed.

IDO elements

An IDO consists of these elements:

  • A set of one or more SQL tables

    Each table contains the data for a specified part of the application and must include columns (representing properties) that the application requires to work properly.

  • A set of properties

    A property may represent persistent data stored in the application database, derived data, or temporary data used to communicate information to the middle tier. A property may also represent a whole subcollection of data.

  • A set of standard methods

    All IDOs implement these methods:

    • LoadCollection: Retrieves a collection of rows from the database
    • UpdateCollection: Takes a set of rows marked for insert, update, or delete, and executes the appropriate SQL code on the database
    • GetPropertyInfo: Returns detailed information about the properties supported by the IDO
    • Invoke: Allows the application to call and execute a custom method

Using "configurations", Application Databases are linked with an Objects Database and a Forms Database.

Note: These three types of data might be contained within a single "All-in-One" database.

Defining an IDO

The IDO forms serve as the development environment for the definitions of IDOs. IDO definitions are stored as metadata in the Objects Database. You can create and edit this metadata using the IDO forms.

The IDOs form is commonly used as the starting point to define an IDO. IDO definitions include these elements:

  • Attributes for the IDO itself
  • References to tables in the Application Database
  • Property definitions for table columns
  • Metadata about methods defined for the IDO

You can access and develop all of these elements from the IDOs form. You can also access the row-level security that can be defined for IDOs.

The metadata that you edit in the IDOs form is stored in the Objects Database (or its equivalent in the All-in-One database).

Existing IDOs must be checked out before they can be edited. You can only check out IDOs that have the same Access As setting as your development environment.

You can also perform these tasks using the IDOs form:

  • Add, edit, or delete an IDO.
    Note: You can use deletion rules to determine what is to happen when one or more records meet specified criteria for other IDOs that reference properties in the one you want to delete. Define these deletion rules on the Rules tab.
  • View the elements and attributes of an IDO.
  • Edit or remove an IDO table.
  • Add a base or secondary table to an IDO.
  • Add a property to an IDO.
  • Edit an IDO property.
  • Add a method to an IDO.
  • Edit an IDO method.

How IDOs are used

Forms use IDOs in multiple ways. Forms that interact with the data in the Application Database define collections based on IDOs. Many types of validators and list sources are built over IDOs.

The Application Event System (AES) also leverages IDOs. Many of the framework AES events are generated as the application operates on IDOs. Many of the actions that are provided in the AES operate on IDOs. This allows you to quickly define business processes, automation rules, or general server-side logic in your application.

Note: You can view the AES events that are associated with an IDO on the Workflow Summary tab.