Release 10.1A: OpenEdge Development:
AppBuilder

> ## SmartBusinessObject

> The SmartBusinessObject allows you to neatly package and fully synchronize—including the ability to update in a single, server-side transaction—up to twenty SmartDataObjects. Figure 4–2 illustrates the place of a SmartBusinessObject in a Web-enabled application.

> Figure 4–2: SmartBusinessObject in a Web environment

> Each static SmartDataObject produces and manages a single data stream. The nature and composition of that data stream is dependent on the query that you define within the object. Although you can cause a single SmartDataObject to produce a data stream of great complexity by the skillful use of `JOINs`, the result is often messy and difficult to use for business purposes.

> One way to reduce complexity is to create a number of SmartDataObjects, each with a more simple query, and then synchronize them at the application level. For example, you might create five SmartDataObjects that respectively supply:

> 1. `Customer` records.

> 2. `Order` records for a particular `Customer`.

> 3. `OrderLine` records from a particular `Order`.

> 4. `Item` records related to a particular `OrderLine`.

> 5. `Inventory` records related to a particular `OrderLine`.

> Figure 4–3 illustrates these relationships.

> Figure 4–3: Data relationship among five tables

> Synchronizing their read operations is not difficult. You can use `DATA` SmartLinks for that purpose regardless of whether you use a SmartBusinessObject.

> The difficult task is synchronizing updates. In general, there is no simple way to update multiple, standalone SmartDataObjects in a single transaction, if the objects run in a distributed environment. Such objects operate independently of one another on an AppServer.

> The new SmartBusinessObject solves this problem by providing a single context for all the SmartDataObjects you embed in it. Because the code you write in the SmartBusinessObject can operate on all the `RowObject` temp-tables belonging to its subordinate SmartDataObjects, the SmartBusinessObject allows you to perform updates in a single server-side transaction. With the SmartBusinessObject, you can create and manage integrated data streams that are as complex and powerful as your customers’ business needs demand.

> The SmartBusinessObject presents a single point of contact for external modules such as Smart data-display objects. Internally, it uses its `CONTAINER` links to connect those external objects with the SmartDataObjects it contains—communicating navigation instructions from a SmartPanel, for example, or sending data out to a SmartDataViewer for visualization. This all happens automatically; you need do nothing to make it work. The SmartDataObjects synchronize themselves using `DATA` links that you create.

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095