![]() ![]() |
Reference Type: Supported, Category: Signon/Security, ICR#: 10052
The KILL^XUSCLEAN API clears the partition of all but key variables essential to
Kernel. Application developers are allowed to use this call to clean up
application variables and leave the local symbol table unchanged when returning
from an option or as otherwise required by SAC Standards.
In the past, options that have called KILL^XUSCLEAN have occasionally created problems for
other options that had defined software-wide variables. For example, a user
might enter the top-level menu for a software application, which could have an
entry action that retrieved site parameters into a local variable that is
supposed to remain defined while in any menu of that software application,
between options. But if the user could then reach a secondary menu option that
happened to call KILL^XUSCLEAN, a side effect would be the KILLing off the
previously defined software-wide variable.
KILL^XUSCLEAN now provides a
way for sites and developers to work around this problem. For any menu-type
option, the PROTECTED VARIABLES (#1840) field in the OPTION (#19) file allows you to
enter a comma-delimited list of variables to protect from being KILLed by
KILL^XUSCLEAN. Once a user enters a menu subtree descendent from the protected
menu, the variables are protected until the menu subtree is exited.
So, for example, to protect a software-wide variable for an entire software
application, you can enter that variable in the PROTECTED VARIABLES (#1840) field for
the top-level menu in the software application. As long as a user does not exit
the top-level menu of the software application's menu tree, the software-wide
variable is protected from all calls to KILL^XUSCLEAN. "Up-arrow Jumps"
(using a caret; ^) into a menu tree also work fine, as long as the menu that has been
protected is in the menu path made by the jump.
KILL^XUSCLEAN
none. |
|
none. |
|