Mit dieser Funktion wird eine Miteigentümerschutzregel in einen Regelbehälter (Guard) eingetragen. Handelt es sich dabei um den ersten Regeleintrag, wird der Regelbehälter neu angelegt, wobei im Guard-Verwaltungsteil der SCOPE auf *USER-ID gesetzt wird.
Gibt es den Regelbehälter bereits, bleibt der SCOPE unverändert und die Regel wird an die angegebene Position im Regelbehälter eingefügt.
Ein Anwender kann nur Regelbehälter unter seiner eigenen Benutzerkennung einrichten. Ein Guard-Administrator kann Regelbehälter unter fremden Benutzerkennungen einrichten.
Makro | Operanden |
ADDCOO | MF = C / D / L / M / E ,PREFIX = C / <name 1> ,MACID =OOA / <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: ’ ’ / <c-string 1..80: filename 1..41 without-catgen-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> |
Die Beschreibung der Parameter MF, PREFIX, MACID, PARAM finden Sie im Handbuch „Makroaufrufe an den Ablaufteil“ [16].
DIALOG
Dialogführung
Der Anwender kann die Schnittstelle mit Kontrolldialog benutzen, wobei die Art der Dialogführung steuerbar ist. Die Dialogführung ist im Batchbetrieb wirkungslos, was der Angabe DIALOG-CONTROL=*NO entspricht.
=*STD
Der Anwender kann für jeden ausgewählten Behälter im Dialog entscheiden, ob das Kommando angewendet wird oder nicht. Die Dialogführung erfolgt jedoch nur dann, wenn der Name des Regelbehälters mit Hilfe von Musterzeichen spezifiziert ist.
Ein Funktionsabbruch ist möglich.
=*NO
Die Funktion wird ohne Rückfrage auf jeden Regelbehälter angewendet.
=*COGUARD
Der Anwender kann für jeden ausgewählten Behälter im Dialog entscheiden, ob die Funktion angewendet wird oder nicht. Die Dialogführung erfolgt unabhängig davon, ob der Name des Regelbehälters mit Hilfe von Musterzeichen spezifiziert ist oder nicht.
Ein Funktionsabbruch ist möglich.
=*USERID
Diesen Kontrolldialog kann nur ein Guard-Administrator verwenden.
Ein Guard-Administrator kann für jede ausgewählte Benutzerkennung im Dialog entscheiden, ob die Funktion angewendet wird oder nicht. Die Dialogführung erfolgt jedoch nur dann, wenn die Benutzerkennung im Namen des Regelbehälters mit Hilfe von Musterzeichen spezifiziert ist.
Ein Funktionsabbruch ist möglich.
=*CATALOG
Der Anwender kann für jede ausgewählte Katalogkennung im Dialog entscheiden, ob die Funktion angewendet wird oder nicht. Die Dialogführung erfolgt jedoch nur dann, wenn die Katalogkennung im Namen des Regelbehälters mit Hilfe von Musterzeichen spezifiziert ist.
Ein Funktionsabbruch ist möglich.
ERRMSG
Meldungsausgabe
Der Anwender kann angeben, ob aufgetretene Fehler als Meldung angezeigt werden. Das kann erwünscht sein, wenn zum Beispiel eine Positionsregel nicht vorhanden ist und eine Bearbeitung darum nicht möglich war.
=*NO
Es werden keine Meldungen ausgegeben.
=*YES
Es werden Meldungen ausgegeben.
COGUARD
Name des Regelbehälters
Dieser Operand bezeichnet den Namen des Regelbehälters, in den eine erste oder weitere Regeln eingetragen werden. Der Behälter wird neu eingerichtet sofern es ihn noch nicht gibt.
Der Behältername kann zwar beliebig gewählt werden, für die Miteigentümerzugriffskontrolle wird jedoch ausnahmslos Regelbehälter mit fest vorgeschriebenen Namen verwendet.
Musterzeichen im Namen des Regelbehälters bewirken, dass die Regel in mehrere Behälter eingetragen wird, sofern diese zugreifbar sind.
Musterzeichen in der Benutzerkennung darf nur ein Guard-Administrator spezifizieren.
Der Operand muss mit einem Wert versehen werden. Es dürfen nur Großbuchstaben verwendet werden!
RULENAM
Name der Regel
Dieser Operand bezeichnet den Namen der zu bearbeitenden Regel. Doppelte Namen in einem Behälter sind nicht erlaubt.
Der Operand muss mit einem Wert versehen werden. Es dürfen nur Großbuchstaben verwendet werden!
RULEPOS
Position
Dieser Operand bezeichnet die Position innerhalb eines Regelbehälter, an die die zu bearbeitende Regel gestellt wird. Die Reihenfolge der Regeln ist ausschlaggebend bei der Zugriffsüberprüfung der Miteigentümer.
target
Angabe zur Zielposition im Regelbehälter.
*LAST
Die Regel wird an die letzte Position im Regelbehälter gestellt.
*BEFORE
Die Regel wird vor die durch den Operand RULENAM benannte Regel gestellt .
posnam
Name der Regel zur Positionsangabe
Dieser Operand bezeichnet eine im Regelbehälter eingetragene Regel, vor die die zu bearbeitende Regel gestellt wird, wenn die Angabe target des Operanden RU-LEPOS den Wert *BEFORE hat. Die Funktion wird abgewiesen, wenn es eine Regel dieses Namens nicht gibt.
Der Operand muss mit einem Wert versehen werden, wenn die Teilangabe target des Operanden RULEPOS den Wert *BEFORE hat. Es dürfen nur Großbuchstaben verwendet werden!
OBJECT
Objekt
Dieser Operand bezeichnet das Objekt, für das die zu bearbeitende Regel gilt.
objnam
Objektname
Angaben über den Namen des Objektes.
Der Name kann Musterzeichen enthalten oder teilqualifiziert angegeben werden. Er darf keine Katalog- und Benutzerkennung enthalten.
Aliasnamen und vereinbarte Präfixe sind nicht erlaubt, der spezifizierte Objektname wird unverändert verwendet.
Es dürfen nur Großbuchstaben verwendet werden!
objtype
Typ des Objektnamens entsprechend der SDF-Syntaxbeschreibung (siehe Handbuch „Kommandos“ [4]).
Angaben über den SDF-Namenstyp des Objektes. Zur Zeit wird nur der SDF-Namenstyp <filename> (*FILE) unterstützt, der sowohl für Dateinamen als auch für Jobvariablennamen gibt.
*FILE
Der Objektname hat den SDF-Datentyp <filename>.
CONDGUA
Zugriffsbedingungen
Dieser Operand bezeichnet den Namen eines Guards vom Typ STDAC, das die Zugriffsbedingungen enthält. Der Name darf keine Katalogkennung enthalten. Ist das genannte Guard zum Zeitpunkt des Funktionsaufrufes nicht zugreifbar, weil es noch nicht eingerichtet ist, oder der SCOPE die Verwendung des Guards untersagt, bricht die Funktion mit Fehler ab.
Es dürfen nur Großbuchstaben verwendet werden!
=*NONE
Es werden keine Zugriffsbedingungen festgelegt. Der Miteigentümerschutz ist für das Objekt außer Kraft gesetzt, und ein Miteigentümerzugriff wird abgelehnt.
TSOSACC
Angabe über die Miteigentümerschaft der Benutzerkennung TSOS.
= *SYSSTD
Die Benutzerkennung TSOS erhält die uneingeschränkte Miteigentümerschaft für das Objekt.
= *RESTRICTED
Die Benutzerkennung TSOS erhält eine eingeschränkte Miteigentümerschaft für das Objekt.
GUACHK
Guardprüfung
Bei der Funktionsdurchführung kann wahlweise die Verfügbarkeit der in der Regel namentlich genannten Guards überprüft werden.
=*YES
Die Guardprüfung wird eingeschaltet. Es wird geprüft, ob das namentlich angesprochene Guard verfügbar ist. Gibt das Guard nicht, oder ist der Eigentümer des unter dem Operanden COGUARD angegebenen Regelbehälters nicht berechtigt, das Guard zu verwenden, bricht die Funktion mit einem entsprechenden Returncode ab.
Es ist zu beachten, dass die Prüfung nur eine „Momentaufnahme“ sein kann, die unmittelbar nach Funktionsdurchführung von anderen Tasks durch entsprechende Guardmodifikationen verändert sein kann.
=*NO
Die Guardprüfung wird ausgeschaltet.
Die Funktion wird durchgeführt, unabhängig davon, dass ein genanntes Guard nicht verfügbar ist oder vom Eigentümer des unter dem Operanden COGUARD angegebenen Regelbehälters nicht verwendet werden darf.
Makro-Returncode
SC2 | SC1 | Maincode | Erläuterung |
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’ | ungültige Parameteradresse | ||
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’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 |
Die genaue Fehlerursache kann durch Aufruf des Kommandos /HELP-MSG mit der in der Tabelle angegebenen Fehlernummer ermittelt werden, z.B. /HELP-MSG COO3902.