A handle to the procedure file that contains the original invocation (RUN statement or function invocation) of the current internal procedure or user‑defined function.
SOURCE-PROCEDURE :attribute :methodThe SOURCE-PROCEDURE handle supports all the attributes of the procedure object handle. For a list of these attributes, see the reference entry for the Procedure object handle in this section.The SOURCE-PROCEDURE handle supports all the methods of the procedure object handle. For a list of these methods, see the reference entry for the Procedure object handle in this section.ExamplesThe following scenarios illustrate using SOURCE-PROCEDURE without procedure overriding, with procedure overriding, and with super and non‑super RUNs:
![]()
Within B’s proc1 (and within any proc1 that runs as a result of its original RUN statement), SOURCE-PROCEDURE is A.
![]()
Within any version of proc1 that runs as a result of its original RUN statement, SOURCE-PROCEDURE is X.The following scenario shows how the value of SOURCE-PROCEDURE changes when a non‑super RUN occurs:
Note: At this point, within any proc1 that runs as a result of its original RUN statement, the value of SOURCE-PROCEDURE is A.
Note: This is a non‑super RUN.
![]()
Within any proc1 that runs as a result of its original RUN statement, SOURCE-PROCEDURE is A.
![]()
Within any proc2 that runs as a result of its original RUN statement, SOURCE-PROCEDURE is C.For a sample program that uses SOURCE-PROCEDURE, see the reference entry for the RUN SUPER statement.
![]()
In the main block of a procedure, the value of SOURCE-PROCEDURE is the handle of the procedure that ran the current ABL source code or r‑code file. This allows any ABL program to identify its caller, and to perform a “callback” to its caller.
![]()
If an ABL or other client runs a procedure on an AppServer, then in the procedure running on the AppServer, the value of SOURCE-PROCEDURE is the Unknown value (?).
© 2012 Progress Software Corporation and/or its subsidiaries or affiliates. |