The variable manager is a super procedure which can replace the functionality usually provided by SHARED and GLOBAL-SHARED variables, as well as adding functionality such as access permissions.

In the following reference table {&vartype} is one of an integer, handle, character, date, decimal, logical, raw, rowid, and recid data types.

API Description
Variable Management
create-varmgr-{&vartype} Create a variable
set-varmgr-{&vartype} Set the variable's current value
get-varmgr-{&vartype} Get the variable's current value
push-varmgr-{&vartype} Push a value on the variable's stack
pop-varmgr-{&vartype} Pop the current value off the variable of type {&vartype}'s stack
delete-varmgr-variable Delete a variable
set-varmgr-variable-access-permissions Set the access permissions for a variable. Legal values are readonly, writeonly, or readwrite
get-varmgr-variable-access-permissions Get the current access permissions for the variable
Manager settings- these are controls for manager-wide settings
set-varmgr-error-handling Set the manager's behavior when an error is encountered
get-varmgr-error-handling Get the setting for how the manager behaves when an error is encountered
set-varmgr-error-handling-program Set the error handling program
get-varmgr-error-handling-program Get the name of the error handling program
set-varmgr-unknown-variable-handling Set how the manager handles unknown variables
get-varmgr-unknown-variable-handling Get the setting for how the manager handles unknown variables

The sample program utl/var/varmgr-test.p demonstrates how most of the variable manager's functionality can be used.

Questions, comments, kudos - drop me a mail at timk@tdkcs.waterloo.on.ca

Tim Kuehn
TDK Consulting Services