This function is used to enter a rule for the assignment of default values to files and job variables in a rule container (guard). If this is the first rule to be entered then a new rule container is created. The SCOPE is set to *USER-ID in the administrative part of the guard.
If the rule container already exists, the SCOPE remains unchanged and the rule is inserted at the specified position in the rule container.
Users can only create rule containers under their own user ID. Guard administrators may create rule containers under different user IDs.
A rule container for pubset-global default protection can only be created by TSOS or a guard administrator. It must be stored under the user ID TSOS.
Macro | Operands |
ADDDEF | MF = C / D / L / M / E ,PREFIX = D / <name 1> ,MACID = EFA / <name 3> ,PARAM = <name 1..8> ,DIALOG = *STD / *NO / *COGUARD / *USERID / *CATALOG / <var: enum-of _dialog_s:1> ,ERRMSG = *NO / *YES / <var: bit:1> ,COGUARD = ’ ’ / <c-string 1..40: filename 1..24 without-gen-vers with-wild(40)> / <var: char:40> ,RULENAM = ’ ’ / <c-string 1..12: alphanumeric name 1..12> / <var: char:12> ,RULEPOS = structure(2): (1) target: *LAST / *BEFORE / <var: enum-of _target_s:1> ,OBJECT = structure(2): (1) objnam: ’ ’ / *TEMP / (2) objtype: *FILE / <var: enum-of _object_type_s:1> ,ATTRGUA=*NONE / <c-string 1..18: filename 1..18 without-cat-gen-vers> / <var: char:18> ,UIDGUA=*ANYUID / <c-string 1..18: filename 1..18 without-cat-gen-vers>/ <var: char:18> ,GUACHK = *YES / *NO / <var: enum-of _guard_check_s:1> |
For a description of the parameters MF, PREFIX, MACID, PARAM see the “Executive Macros” manual [ 16 ].
DIALOG
Dialog control
The user can use the interface in a guided dialog and can define the type of dialog that is to be performed. Dialog control has no effect in batch mode and thus corresponds to the setting DIALOG-CONTROL=*NO.
=*STD
For each selected rule container, the user can decide in interactive mode whether or not the command should be executed. However, dialog control is only performed if the name of the rule container is specified using wildcards.
It is possible to abort the command.
=*NO
The function is executed for every selected rule container without any query being issued.
=*COGUARD
For each selected rule container, the user can decide in interactive mode whether or not the function should be executed. Dialog control is performed regardless of whether or not the name of the rule container is specified using wildcards.
It is possible to abort the function.
=*USERID
This guided dialog can only be used by system administrators.
For each selected user ID, the guard administrator can decide in interactive mode whether or not the function should be executed. However, dialog control is only performed if the user ID in the name of the rule container is specified using wildcards
It is possible to abort the function.
=*CATALOG
For each selected catalog ID, the user can decide in interactive mode whether or not the function should be executed. However, dialog control is only performed if the catalog ID in the name of the rule container is specified using wildcards.
It is possible to abort the function.
ERRMSG
Message output
The user can specify whether any errors which occur should be reported in a message. This may be required if, for example, a positioning rule is not available and processing is impossible as a consequence.
=*NO
No messages are output.
=*YES
Messages are output.
COGUARD
Name of the rule container
This operand designates the name of a rule container in which a first or subsequent rule is to be entered. If the container does not already exist, it is newly created.
The container name is user-definable. However, only active rule containers are used in order of priority for the search for matching default values. These must have a predefined name.
If wildcards are used in the name of a rule container, the rule is entered in multiple containers, provided that these are accessible.
Only guard administrators are able to specify wildcards in the user ID.
A value must be specified for this operand. Only uppercase characters may be used!
RULENAM
Name of the rule
This operand designates the name of the rule which is to be processed. Duplicated names are not permitted in a container.
A value must be specified for this operand. Only uppercase characters may be used!
RULEPOS
Position
This operand designates the position within a rule container at which the rule which is to be processed should be inserted. The sequence of rules is decisive for the determination of the protection attribute default values.
target
Specifies the target position in the rule container
*LAST
The rule is to be appended at the final position in the rule container.
*BEFORE
The rule is to be entered in front of the rule named with RULENAM.
posnam
Name of the rule for the position specification
This operand designates the name of an existing rule in the rule container in front of which the rule which is to be processed should be positioned, if the target specification of the RULEPOS operand has the value *BEFORE. The command is rejected if no rule with this name exists.
A value must be specified for this operand if the “target” partial specification in RULEPOS has the value *BEFORE. Only uppercase characters may be used!
OBJECT
Object
This operand designates the name of the object to which the rule which is to be processed is to apply.
objnam
Object name
Specifications concerning the name of the object.
The name specification may contain wildcards or may be partially qualified. It may not contain a catalog or user ID.
Alias names and declared prefixes are not permitted; the specified object name is used unchanged.
Only uppercase characters may be used!
*TEMP
The rule applies to all temporary objects.
objtype
Type of object name in accordance with the SDF syntax description (see the “Commands” manual [4]).
Specifications concerning the object’s SDF name type. Currently only the SDF name type <filename> (*FILE) is supported. This is available for both files and job variables
ATTRGUA
Attributes
This operand designates the name of a guard of type STDAC which contains the attributes. The name must not contain a catalog ID. If the named guard is inaccessible at the time the function is called - because it has not been created yet or because the SCOPE prohibits the use of the guard - then the function aborts with an error message.
Only uppercase characters may be used!
=*NONE
No attributes are defined in this rule. The default values for the attributes are determined from the next higher level in the hierarchy when default value assignment is performed (pubset-global or usual system default).
UIDGUA
User IDs
Name of a guard of type DEFPUID which contains the user IDs for path completion in the case of pubset-global default protection. The name must not contain a catalog ID. If the named guard is inaccessible at the time the function is called - either because it has not been created or because the SCOPE prohibits the use of the guard - then the function aborts with an error message.
This operand may be specified only by TSOS or a guard administrator. Only uppercase characters may be used!
=*ANYUID
No guard for user IDs is specified. The name of the object applies to all the user IDs in a pubset.
GUACHK
Guard check
When the function is executed, the availability of the guards named in the rule can be checked if required.
=*YES
The guard check is activated. The availability of the named guards is checked. If one of the guards does not exist or if the owner of the rule container specified in the COGUARD operand is not authorized to use one of the guards, the function aborts with a corresponding return code.
It should be noted that this check is simply a ‘snapshot’ which can be invalidated if other tasks modify the guard immediately after the function has been executed.
=*NO
The guard check is deactivated.
The command is executed independently of whether the named guards are available and whether they can be used by the owner of the rule container specified in the COGUARD operand.
Macro return codes
SC2 | SC1 | Maincode | Meaning |
X’00’ | X’00’ | X’0000’ | class A: CMD0001 |
X’02’ | X’00’ | X’3000’ | class A: DEF3000 |
X’02’ | X’00’ | X’3003’ | class A: DEF3003 |
X’01’ | X’3100’ | class B: DEF3100 | |
X’00’ | Invalid parameter address | ||
X’00’ | X’20’ | X’3200’ | class C: DEF3200 |
X’00’ | X’40’ | X’3300’ | class D: DEF3300 |
X’00’ | X’40’ | X’3302’ | class D: DEF3302 |
X’00’ | X’40’ | X’3303’ | class D: DEF3303 |
X’00’ | X’40’ | X’3304’ | class D: DEF3304 |
X’00’ | X’40’ | X’3305’ | class D: DEF3305 |
X’00’ | X’40’ | X’3306’ | class D: DEF3306 |
X’00’ | X’40’ | X’3307’ | class D: DEF3307 |
X’00’ | X’40’ | X’3308’ | class D: DEF3308 |
X’00’ | X’40’ | X’3309’ | class D: DEF3309 |
X’00’ | X’40’ | X’3313’ | class D: DEF3313 |
X’00 | X’40 | X’3314’ | class D: DEF3314 |
X’00’ | X’40’ | X’3315’ | class D: DEF3315 |
X’00’ | X’40’ | X’3318’ | class D: DEF3318 |
X’00 | X’40 | X’3319’ | class D: DEF3319 |
X’00’ | X’40’ | X’3320’ | class D: DEF3320 |
X’00’ | X’80’ | X’3900’ | class E: DEF3900 |
X’00’ | X’80’ | X’3901’ | class E: DEF3901 |
X’00’ | X’80’ | X’3902’ | class E: DEF3902 |
The precise cause of the error can be determined by calling the /HELP-MSG command with the error number specified in the table, e.g. /HELP-MSG DEF3902.