Understanding business objects
iMIS ships with an extensive collection of business objects that can be customized and extended. They can also be used as models for new business objects.
A general definition, from the Object Management Group:
A business object is a representation of a thing active in the business domain, including at least its business name and definition, attributes, behavior, and relationships. A business object might represent, for example, a person, place or concept. The representation can be in a natural language, a modeling language, or a programming language.
An iMIS-specific definition, in terms of the Business Object Designer:
A business object is an iMIS system construct representing the data elements and business rules of a business concept, like a contact. It is implemented using a combination of business rules, a schema definition that describes the data structures of the object's properties, and a database view. Business objects are behind all of the controls within the iMIS database.
The following are the basic elements of an iMIS business object:
- Properties – Attributes of the object (typically map to database columns). For example, Contact.LastName.
- Branches – Used to provide inheritance-like functionality for similar objects, for example, objects similar enough to be represented within a single object definition.
Business objects are used throughout the iMIS application to model business concepts and rules. They represent database tables, and can add additional logic to operations performed on the database tables. Business objects allow for runtime customization of iMIS behavior without access to source code.
Business objects are more than just the tables where data is stored. They enable you to present data from within the database in a way that is user-friendly and used by queries, windows, and other objects within iMIS.
After a business object is defined using BOD, its definition is stored and made available to the runtime environment.
When an instance of a business object is created (instantiated), the business object definition is used to create an in-memory table structure (a .NET DataTable). This structure stores all data related to the instance of the object.
As the instance of the business object is changed, changes are made to the in-memory structure. Changes are not written to the database until an explicit commit is performed.
A business object is composed of many elements such as database tables, a schema definition, and a database view.
At the lowest level, business objects represent database tables. Business objects can represent one table or multiple tables. The Business Object Designer (BOD) builds lists of tables that exist in the database. BOD does not create tables initially.
Note:
The schema definition of a business object is stored in the iMIS database. You access the business object using the Document system. The schema definition defines all properties and their types, and is used to create the in-memory runtime representation of the object.
Note: ASI does not publish database schema.
The schema changes regularly as ASI adds new features to iMIS. Clients should use Cloud-friendly development practices to interact with iMIS data; this includes programming using the iMIS API, as well as using business objects and IQA queries to read iMIS data.
As the database schema is subject to change due to ongoing development, using iMIS tools to work with iMIS data protects from schema changes that can result in process breaks or corrupt data.
A database view is created to represent data access for a business object, containing all the necessary tables, columns, and joins. The view is used when running queries against business objects. The naming convention is vBo<BusinessObjectName>. For example, vBoAccessArea is the view associated with the AccessArea business object.
A business object is an iMIS system construct representing the data elements and business rules of a business concept like a contact. The business object is implemented using a combination of business rules, a schema definition that describes the data structures of the object’s properties, and a database view.
The iMIS business object model sets the framework and foundation for most significant iMIS application objects such as customers, orders, products, inventory, tasks, and so forth. All iMIS business objects share a common construction methodology and standard ways of expressing their properties, attributes, and methods. iMIS business objects are extensible and customizable through the BOD.
The iMIS business object base classes are based upon the .NET DataSet object model. The .NET DataSet is the main target for data handling as created by the .NET design engineers. Modeling over the .NET DataSet and constituent components has a number of advantages and implications:
- iMIS business objects appear similar to .NET DataTables.
- iMIS business objects support automatic binding in the development and runtime environment.
- All objects automatically have an XML representation.
- iMIS business objects utilize the standard DataSet constructs to share and express data and metadata.
- The term metadata is frequently defined as data about data. In the context of iMIS business objects, metadata is the structured, persistent data about business object resources, their characteristics, and their behavior.
- All of the properties are exposed to the outside world in the DataSet table/column/row object model.
Business objects are implemented by inheritance from core .NET classes, specific to ADO.NET. This means that the features and power of the base class are available to the business object base classes:
- BusinessContainer – Container of business objects and their instances. Corresponds to a .NET DataSet (System.Data.DataSet class).
- BusinessController – Collection of business object instances and implementer of business logic. Corresponds to a DataTable (System.Data.DataTable class).
- BusinessItem – Contains a single instance of a business object. Corresponds to a DataRow (System.Data.DataRow class).
This table summarizes the significant gains that business objects bring to the management and protection of both data and business rules.
Feature/Benefit | Example |
---|---|
.Net centric |
|
Automatically implements standardized object and column security for all objects | Keep sensitive data from entire staff or user population |
New types of objects | Surveys, application forms, and so forth |
New columns | Extend product, order, referral, opportunities, issue management definitions |
Standard interface for all objects | Can be used directly by query tools, workflow, screen painters, export utilities, mail merge utilities, and so forth |
iMIS business rules provide the editable metadata to iMIS business objects. Non-visual classes and visual editors are provided for editing metadata. iMIS business rules provide a technical architectural model for object extensibility as well as a recognizable business concept. The following types of business rules and metadata are supported:
- Column definitions
- Property definitions:
- Property type: virtual or persistent
- Data type, length, and so forth
- Captions, default values
- Descriptive dictionary type of information