This function modifies a co-owner protection rule in a rule container (guard).
Which rule part is modified and which remains unchanged depends on whether or not the associated operand is specified at the time of the interface call. If the operand is not specified, the value represented by this operand remains unchanged (UNCHANGED). If the operand is specified, the value represented by the operand is affected by the modification.
Users can only modify rule containers under their own user IDs. Guard administrators may modify rule containers belonging to different user IDs.
Macro | Operanden |
MODCOO | MF = C / D / L / M / E ,PREFIX = C / <name 1> ,MACID = OOM / <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> ,NEWNAM = *SAME / <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 / <c-string 1..80: filename 1..41 without-cat-gen-user-vers with-wild(80)> / <var: char:80> (2) objtype: *FILE / <var: enum-of _object_type_s:1> ,CONDGUA = *NONE / <c-string 1..18: filename 1..18 without-cat-gen-vers> / <var: char:18> ,TSOSACC = *SYSSTD / *RESTRICTED / <var: enum-of _tsos_access_s:1> ,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 function 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 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 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 the rule container in which a rule is to be modified.Although the container name is user-definable, only rule containers with fixed, predefined names are consulted for co-owner access control.
If wildcards are used in the name of a rule container, the rules are modified 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.
A value must be specified for this operand. Only uppercase characters may be used.
NEWNAM
New rule name
This operand can be used to rename the rule which is to be processed.
Only uppercase characters may be used!
=*SAME
The name remains unchanged
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 checking of co-owner access attempts.
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 by the NAME operand.
posnam
Name of the rule for 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 function is rejected if no rule with this name exists.
A value must be specified for this operand if the “target” partial specification in the RULEPOS operand has the value *BEFORE. Only uppercase characters may be used!
OBJECT
Object
This operand designates 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 may contain wildcards or may be partially qualified. It must 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!
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
*FILE
The file has the SDF data type <filename>.
CONDGUA
Access conditions
This operand designates the name of a guard of type STDAC which contains the access conditions. 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 access conditions are defined. Co-owner protection is deactivated for the object and co-owner accesses are rejected.
TSOSACC
Specifies the co-ownership of the user ID TSOS.
= *SYSSTD
The user ID TSOS receives the unrestricted co-ownership of the object.
= *RESTRICTED
The user ID TSOS receives restricted co-ownership of the object.
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 guard is checked. If the guard does not exist or if the owner of the rule container specified in the COGUARD operand is not authorized to use the guard, 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 function is executed independently of whether a named guard is available and whether it can be used by the owner of the rule container which is specified in the COGUARD operand.
Macro return code
SC2 | SC1 | Maincode | Meaning |
X’00’ | X’00’ | X’0000’ | class A: CMD0001 |
X’02’ | X’00’ | X’3000’ | class A: COO3000 |
X’02’ | X’00’ | X’3003’ | class A: COO3003 |
X’01’ | X’3100’ | class B: COO3100 | |
X’00’ | Invalid parameter address | ||
X’00’ | X’20’ | X’3200’ | class C: COO3200 |
X’00’ | X’40’ | X’3300’ | class D: COO3300 |
X’00’ | X’40’ | X’3302’ | class D: COO3302 |
X’00’ | X’40’ | X’3303’ | class D: COO3303 |
X’00’ | X’40’ | X’3304’ | class D: COO3304 |
X’00’ | X’40’ | X’3305’ | class D: COO3305 |
X’00’ | X’40’ | X’3306’ | class D: COO3306 |
X’00’ | X’40’ | X’3307’ | class D: COO3307 |
X’00’ | X’40’ | X’3308’ | class D: COO3308 |
X’00’ | X’40’ | X’3309’ | class D: COO3309 |
X’00’ | X’40’ | X’3310’ | class D: COO3310 |
X’00’ | X’40’ | X’3311’ | class D: COO3311 |
X’00’ | X’40’ | X’3313’ | class D: COO3313 |
X’00 | X’40 | X’3314’ | class D: COO3314 |
X’00’ | X’40’ | X’3315’ | class D: COO3315 |
X’00’ | X’80’ | X’3900’ | class E: COO3900 |
X’00’ | X’80’ | X’3901’ | class E: COO3901 |
X’00’ | X’80’ | X’3902’ | class E: COO3902 |
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 COO3902.