Release 10.1A: OpenEdge Development:
Progress Dynamics Administration

> ## Cache operation

> The SmartDataField cache is dynamically built at run time; therefore, the benefits of having the cache increase with use of the application. Whenever a container runs with dynamic lookups or combos on a viewer, a record is created in a temp-table on the client machine where data retrieved from the server is stored. Whenever the same container reruns, it reuses this cached data when other containers having the same type of SDF also run. The cache therefore provides benefit only on subsequent uses of the same data.

> For a practical example of where the SDF cache benefits an application, suppose there is a container with a SmartToolbar, dynamic SDO, dynamic browser, and dynamic viewer, and that these objects operate on the `Customer` table in the `Sports2000` database with the SDF cache configured for use.

> This viewer contains a dynamic lookup on the `State` field and a dynamic combo on the `SalesRep` field. The first time the container runs, the application makes an extra AppServer request to populate the value for the lookup’s displayed field as well as for populating the list-items for the `SalesRep` combo. If the user clicks on the next record, the application will make an AppServer request to get the displayed field information for the `State` lookup only if the state of the second selected record is different from that of the previously selected record. If the user selects the previously selected record again, there is no AppServer request, because the lookup data is retrieved from the SDF cache. If this viewer only had a dynamic combo, there would not be another AppServer request when the second record was selected, because the combo’s data were cached on the first AppServer request. If the user closes the container and reruns it, no AppServer request is required, because the data is already cached. As the user selects records in the browser where the data is not yet cached from the first run, the application makes an AppServer request to retrieve the data and caches it. After values have been cached for all query states, no more AppServer requests are required.

> If another container that also has a dynamic combo for the `SalesRep` field runs, and the base query of the dynamic combo is the same as the base query used to build the list items of the `SalesRep` combo used in the initial `Customer` maintenance viewer, the cached information for the first combo is reused for this other combo also.

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