Progress
AppBuilder
Developer’s Guide
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:
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 © 2004 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |