Release 10.1A: OpenEdge Development:
ADM and SmartObjects

> ## Super procedures in the ADM

> In the ADM, a super procedure is a persistent procedure that contains versions of internal procedures or functions designed to be run remotely on behalf of SmartObjects. The use of super procedures provides a measure of inheritance and the ability to customize each internal procedure or function. Figure 1–4, which illustrates the inheritance process, shows how different versions of the same internal entry (in this example, the `initializeObject` procedure) exist in different super procedures.

> Figure 1–4: Inheritance and the super procedure stack

> The super procedures designed for SmartObjects are designed to be shared and stateless. This means that a given super procedure such as `viewer.p` is run only once in a session, no matter how many SmartDataViewers there are; each SmartDataViewer designates the same instance of the compiled code for `viewer.p` as its super procedure.

> ADM super procedures use the Progress 4GL `SOURCE-PROCEDURE` and `TARGET-PROCEDURE` functions to provide information to their routines about who called them and for whom:

> - The `SOURCE-PROCEDURE` function allows a routine in a super procedure to know who ran it, eliminating the need to pass `TARGET-PROCEDURE` as a handle to the routine.

> - The `TARGET-PROCEDURE` function allows a routine in a super procedure to know on whose behalf it was invoked.

> For more information on the `SOURCE-PROCEDURE` and `TARGET-PROCEDURE` functions, see OpenEdge Development: Progress 4GL Reference .

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