$Setg Sys: Difference between revisions
m (1 revision) |
mNo edit summary |
||
Line 2: | Line 2: | ||
<span class="pageSubtitle"><section begin="desc" />Set system-wide global<section end="desc" /></span> | <span class="pageSubtitle"><section begin="desc" />Set system-wide global<section end="desc" /></span> | ||
<p class="warning">Most Sirius $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $Setg_Sys function is [[ | <p class="warning">Most Sirius $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $Setg_Sys function is [[SetGlobal (System/Subsystem subroutine)]].</p> | ||
This function allows a user to set the value of a ''Model 204'' "global variable" which has a system-wide scope. These are used for the value of the $GetG function or dummy string ("?&.") substitution. The order in which the different scopes of global variables are searched can be controlled using $SirParm arguments: for $GETG, with 'GETGSYS', and for dummy strings, with 'DUMMYSYS'. | |||
This function allows a user to set the value of a ''Model 204'' "global variable" which has a system-wide scope. These are used for the value of the $ | |||
The $Setg_Sys function accepts two arguments and returns zero, indicating success, or a number indicating the cause of error, if there is one. | The $Setg_Sys function accepts two arguments and returns zero, indicating success, or a number indicating the cause of error, if there is one. | ||
Line 29: | Line 27: | ||
</p> | </p> | ||
This function can be used to set a global variable which is used for all ''Model 204'' users. The value can be set during ''Model 204'' initialization (that is, in the CCAIN stream), so values can be calculated once, rather than coding it in the login proc of all subsystems, in which case it is calculated every time a user enters the subsystem, or rather than using some kind of "setup" subsystem that every user is forced into at user login time. For example, the following request can be run from CCAIN: | |||
<p class="code"> BEGIN | <p class="code"> BEGIN | ||
%X FLOAT | |||
%X = $Setg_Sys('BOSS', 'Mr. Homer J. Simpson') | |||
END | END | ||
</p> | </p> | ||
Line 42: | Line 40: | ||
The order in which the different scopes of global variables are searched can be controlled using $SirParm parameters: for $GETG, with 'GETGSYS', and for dummy strings, with 'DUMMYSYS'. | The order in which the different scopes of global variables are searched can be controlled using $SirParm parameters: for $GETG, with 'GETGSYS', and for dummy strings, with 'DUMMYSYS'. | ||
Here is an example to show the effects of DUMMYSYS and GETGSYS; assume the following procedure is executed in the CCAIN input stream, and that there are no $Setg_Subsys invocations for the global variable named 'JUNK': | Here is an example to show the effects of DUMMYSYS and GETGSYS; assume the following procedure is executed in the CCAIN input stream, and that there are no $Setg_Subsys invocations for the global variable named 'JUNK': | ||
<p class="code"> BEGIN | <p class="code"> BEGIN | ||
%X FLOAT | %X FLOAT | ||
Line 49: | Line 48: | ||
and the procedure TESTIT contains the following requests: | and the procedure TESTIT contains the following requests: | ||
<p class="code"> BEGIN | <p class="code"> BEGIN | ||
%Y = $SETG('JUNK', 'GOODBYE') | %Y = $SETG('JUNK', 'GOODBYE') | ||
Line 57: | Line 57: | ||
END | END | ||
</p> | </p> | ||
Then here are various command streams, and their results: | Then here are various command streams, and their results: | ||
1. DUMMYSYS=0, GETGSYS=0: | |||
<p class="code"> BEGIN | <p class="code"> BEGIN | ||
%X FLOAT | %X FLOAT | ||
Line 73: | Line 74: | ||
GOODBYE | GOODBYE | ||
</p> | </p> | ||
1. DUMMYSYS=0, GETGSYS=1: | 1. DUMMYSYS=0, GETGSYS=1: | ||
Line 90: | Line 89: | ||
</p> | </p> | ||
1. DUMMYSYS=1, GETGSYS=0: | |||
<p class="code"> BEGIN | <p class="code"> BEGIN | ||
%X FLOAT | %X FLOAT | ||
Line 106: | Line 104: | ||
</p> | </p> | ||
1. DUMMYSYS=1, GETGSYS=1: | |||
<p class="code"> BEGIN | <p class="code"> BEGIN | ||
%X FLOAT | %X FLOAT | ||
Line 121: | Line 118: | ||
HELLO | HELLO | ||
</p> | </p> | ||
Retrieval of system global variables is highly efficient; updates, however, are not, so use this $function appropriately. | Retrieval of system global variables is highly efficient; updates, however, are not, so use this $function appropriately. | ||
Line 127: | Line 123: | ||
The current values of system globals can be retrieved using $Setg_Sys_List. | The current values of system globals can be retrieved using $Setg_Sys_List. | ||
See [[$SirParm]] for more information. | |||
This $function is new in Version 5.5 of the ''[[Sirius Mods]]''. | |||
<ul class="smallAndTightList"> | |||
<li>[[Sirius $Functions]] | |||
<li>[[Janus Web Servert]] | |||
</ul> | </ul> | ||
<p class="caption">Products authorizing $Setg_Sys | <p class="caption">Products authorizing $Setg_Sys | ||
</p> | </p> | ||
[[Category:$Functions|$Setg_Sys]] | [[Category:$Functions|$Setg_Sys]] |
Revision as of 18:24, 8 February 2011
<section begin="desc" />Set system-wide global<section end="desc" />
Most Sirius $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $Setg_Sys function is SetGlobal (System/Subsystem subroutine).
This function allows a user to set the value of a Model 204 "global variable" which has a system-wide scope. These are used for the value of the $GetG function or dummy string ("?&.") substitution. The order in which the different scopes of global variables are searched can be controlled using $SirParm arguments: for $GETG, with 'GETGSYS', and for dummy strings, with 'DUMMYSYS'.
The $Setg_Sys function accepts two arguments and returns zero, indicating success, or a number indicating the cause of error, if there is one.
The first argument is the name of the global variable to be set. This is an optional argument; it defaults to the null string.
The second argument is the value to which the global variable is to be set. This is an optional argument; it defaults to the null string.
System administrator privileges are required to invoke this $function.
Syntax
<section begin="syntax" /> %RC = $Setg_Sys(glob_name, value) <section end="syntax" />
0 - No errors 1 - Not system administrator 2 - Insufficient storage
This function can be used to set a global variable which is used for all Model 204 users. The value can be set during Model 204 initialization (that is, in the CCAIN stream), so values can be calculated once, rather than coding it in the login proc of all subsystems, in which case it is calculated every time a user enters the subsystem, or rather than using some kind of "setup" subsystem that every user is forced into at user login time. For example, the following request can be run from CCAIN:
BEGIN %X FLOAT %X = $Setg_Sys('BOSS', 'Mr. Homer J. Simpson') END
Then the global variable BOSS can be used to obtain the name of the latest boss.
Also, since there is one shared system global table for the entire system, a smaller GTBL value for each user can be achieved than if the global values are set with user global variables.
The order in which the different scopes of global variables are searched can be controlled using $SirParm parameters: for $GETG, with 'GETGSYS', and for dummy strings, with 'DUMMYSYS'. Here is an example to show the effects of DUMMYSYS and GETGSYS; assume the following procedure is executed in the CCAIN input stream, and that there are no $Setg_Subsys invocations for the global variable named 'JUNK':
BEGIN %X FLOAT %X = $Setg_Sys('JUNK', 'HELLO') END
and the procedure TESTIT contains the following requests:
BEGIN %Y = $SETG('JUNK', 'GOODBYE') END BEGIN PRINT '?&.JUNK' PRINT $GETG('JUNK') END
Then here are various command streams, and their results:
1. DUMMYSYS=0, GETGSYS=0:
BEGIN %X FLOAT %X = $SirParm('DUMMYSYS', 0) %X = $SirParm('GETGSYS', 0) END I TESTIT produces the following print lines: GOODBYE GOODBYE
1. DUMMYSYS=0, GETGSYS=1:
BEGIN %X FLOAT %X = $SirParm('DUMMYSYS', 0) %X = $SirParm('GETGSYS', 1) END I TESTIT produces the following print lines: GOODBYE HELLO
1. DUMMYSYS=1, GETGSYS=0:
BEGIN %X FLOAT %X = $SirParm('DUMMYSYS', 1) %X = $SirParm('GETGSYS', 0) END I TESTIT produces the following print lines: HELLO GOODBYE
1. DUMMYSYS=1, GETGSYS=1:
BEGIN %X FLOAT %X = $SirParm('DUMMYSYS', 1) %X = $SirParm('GETGSYS', 1) END I TESTIT produces the following print lines: HELLO HELLO
Retrieval of system global variables is highly efficient; updates, however, are not, so use this $function appropriately.
The current values of system globals can be retrieved using $Setg_Sys_List.
See $SirParm for more information.
This $function is new in Version 5.5 of the Sirius Mods.