$Setg Sys: Difference between revisions

From m204wiki
Jump to navigation Jump to search
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 [[to be entered]].</p>
<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 ("?&amp.") 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 $GETG function or dummy string ("?&amp.") 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 $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:


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 FLOAT
%X = $Setg_Sys('BOSS', 'Mr. Homer J. Simpson')
    %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:


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:


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:


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.  


For an explanation of $SIRPARM, see [[$SirParm]].  
See [[$SirParm]] for more information.
 
This $function is new in Version 5.5 of the ''[[Sirius Mods]]''.<p>
 
<ul>
 
<li>&SFUNC


<li>&JWEBS
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>
<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 ("?&amp.") 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" />

$Setg_Sys Function

%RC is set to 0 or to an error indicator.

0 - No errors 1 - Not system administrator 2 - Insufficient storage

$Setg_Sys return codes

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 '?&amp.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.

Products authorizing $Setg_Sys