skip to main content
OpenEdge Development: ADM and SmartObjects
Developing Your Application's Business Logic : SmartDataObject features and operating characteristics
 
SmartDataObject features and operating characteristics
Progress applications require an object that can manage a database query and the associated data update logic. The SmartDataObject serves this purpose. It is designed to meet several key ADM goals:
*User-interface‑independence — SmartObjects that manage the user interface do not manage data and, conversely, SmartDataObjects that manage data do not manage the user interface.
*Open interface — SmartDataObjects can function in an Open4GL environment with non‑Progress objects and applications.
*Distributed — SmartDataObjects can function appropriately and efficiently “close to the user interface” or “close to the data”; that is, they can function competently at any location within a distributed application.
The SmartDataObject provides the following features:
*A basic database query definition that can be refined at run time
*Query management logic such as open query, repositions, key finds, and sending rows or batches of rows between client and server
*Formatting and other logic in support of one visualization or many separately defined visualizations
*Validation and other data‑checking code and business rules
*Database update logic
You can associate business rules or any other required logic with the SmartDataObject.
The operating characteristics of the SmartDataObject make it suitable for heterogeneous environments:
*The SmartDataObject is the only SmartObject that connects directly to the database.
*The SmartDataObject takes a database query and turns it into a temp-table representation used by all other SmartObjects.
*The SmartDataObject can be transparently and efficiently distributed using the AppServer.
*The SmartDataObject handles batching rows, performing updates, and reporting errors.