Mit dieser Anweisung können für den angegebenen Typ bestimmte Attribute eingestellt/geändert werden:
der Supertyp
die geltende Versionskonvention
die Speicherungform der Elemente
Zusatzprüfungen beim Erzeugen oder Überschreiben von Elementen
der Berechtigtenkreis zum Erzeugen, Löschen und Umbenennen von Elementen und
der initiale Elementschutz
Zu Beginn des LMS-Laufs gelten die unmittelbar auf *UNCHANGED folgenden Werte. Die Standardwerte bzw. die aktuellen Werte können mit der entsprechenden SHOW-Anweisung ausgegeben werden.
MODIFY-TYPE-ATTRIBUTES | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
LIBRARY = *STD / <filename 1..54 without-vers> / *LINK(...)
Angabe der Bibliothek, in der die Typattribute festgelegt werden sollen.
LIBRARY = *STD
Die durch OPEN-LIBRARY eröffnete Bibliothek.
LIBRARY = <filename 1..54 without-vers>
Name der Bibliothek, in der die Typattribute festgelegt werden sollen.
LIBRARY = *LINK(...)
Die über den Dateikettungsnamen zugewiesene Bibliothek.
LINK-NAME = <structured-name 1..8>
Dateikettungsname der Bibliothek, der vor dem Aufruf von LMS mit einem /ADD-FILE-LINK-Kommando vereinbart wurde.
TYPE = *LMS-DEFAULT / <alphanum-name 1..8>
Elementtyp, dessen Attribute eingestellt oder geändert werden sollen.
SUPER-TYPE = *UNCHANGED / *NONE / <alphanum-name 1..8>
Name des übergeordneten Typs
SUPER-TYPE = *NONE
Es gibt keinen übergeordneten Typ.
SUPER-TYPE = <alphanum-name 1..8>
Name des übergeordneten Typs. Der entstehende Graph muss zyklenfrei (Baum) sein. Für Standardtypen (ein Zeichen lang bzw. Typen, die mit $ oder SYS beginnen) kann kein SUPER-TYPE vereinbart werden. Die Werte R, C und L sind nicht als SUPER-TYPE erlaubt.
CONVENTION = *UNCHANGED / *NONE / *STD-TREE / *STD-SEQUENCE(...) / *MULTI-SEQUENCE(...)
Versionskonvention, die von nun an für den spezifizierten Typ gelten soll.
CONVENTION = *NONE
Die Versionskonvention wird von dem spezifizierten Typ entfernt. Dies ist jederzeit möglich.
CONVENTION = *STD-TREE
Die Versionskonvention *STD-TREE gilt für den betreffenden Typ. Es ist nicht erlaubt, *STD-TREE anzugeben, wenn ein Element unter dem spezifizierten Typ existiert.
CONVENTION = *STD-SEQUENCE(...)
Die Versionskonvention *STD-SEQUENCE gilt für den betreffenden Typ. Alle Elemente des Typs besitzen das gleiche Versionsformat, das durch ein Beispiel spezifiziert wird.
Es ist nicht erlaubt, *STD-SEQUENCE anzugeben, wenn ein Element unter dem spezifizierten Typ existiert.
EXAMPLE = 001 / <composed-name 1..24 with-under>
Beispiel für das Versionsformat. Das Format besteht aus einem, eventuell leeren, führenden Teil und der maximal langen abschließenden Zifferngruppe, die nicht leer sein darf. Bei allen Versionen unter dem betreffenden Typ müssen diese beiden Teile die gleiche Länge haben wie das Beispiel. Die abschließende Zifferngruppe wird für die automatische Versionserhöhung verwendet.
Wird hier keine explizite Angabe gemacht, wird der Wert „001“ als Beispiel für das Versionsformat verwendet.
CONVENTION = *MULTI-SEQUENCE(...)
Die Versionskonvention *MULTI-SEQUENCE gilt für den betreffenden Typ. Alle Elemente des Typs besitzen das gleiche Versionsformat, das durch ein Beispiel spezifiziert wird.
Es ist nicht erlaubt, *MULTI-SEQUENCE anzugeben, wenn ein Element unter dem spezifizierten Typ existiert.
EXAMPLE = <composed-name 1..24 with-under>
Beispiel für das Versionsformat. Das Format besteht aus einem eventuell leeren, führenden Teil und der maximal langen abschließenden Zifferngruppe, die nicht leer sein darf. Bei allen Versionen unter dem betreffenden Typ müssen diese beiden Teile die gleiche Länge haben wie das Beispiel. Die abschließende Zifferngruppe wird für die automatische Versionserhöhung verwendet.
STORAGE-FORM = *UNCHANGED / *NONE / *STD / *FULL / *DELTA
Zulässige Speicherform für Elemente dieses Typs. Alle Elemente eines Typs und Namens müssen die gleiche Speicherform haben.
STORAGE-FORM = *NONE
Es ist sowohl Voll- als auch Deltaspeicherung zulässig.
STORAGE-FORM = *STD
Sowohl Voll- als auch Deltaspeicherung sind zulässig.
STORAGE-FORM = *FULL
Es ist nur Vollspeicherung zulässig.
STORAGE-FORM = *DELTA
Nur Deltaspeicherung ist zulässig.
WRITE-CONTROL = *UNCHANGED / *NONE / *DEACTIVATE / *ACTIVATE
Attribut zur Steuerung zusätzlicher Prüfungen.
WRITE-CONTROL = *NONE
Es wirkt die Einstellung von WRITE-CONTROL für die Bibliothek.
WRITE-CONTROL = *DEACTIVATE
Es gibt keine zusätzlichen Prüfungen beim Erzeugen oder Überschreiben von Versionen.
WRITE-CONTROL = *ACTIVATE
Eine Version darf nur geschrieben werden, wenn
die USERID desjenigen, der schreiben will, bei der explizit oder implizit immer gegebenen Basisversion als HOLDER eingetragen ist, und
entweder eine neue Version erzeugt oder die Basisversion überschrieben wird.
Bei der ersten Version eines Namens gibt es noch keine Basis; sie kann nur von ADMIN-Berechtigten erzeugt werden. Beim Erzeugen oder Überschreiben von Versionen wird automatisch ein Satz der Satzart 2 zugefügt, der HOLDER=Schreiber, DATE und TIME des Vorgangs dokumentiert. Ferner werden die Attribute STATE, HOLDER und alle Rechte auf die neue Version übernommen, falls durch die aktuelle Anweisung nicht das Eintragen anderer Werte verlangt wird.
ADMINISTRATION = *UNCHANGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)Administrationsrecht. Der Kreis der Administrationsberechtigten wird für diesen Typ explizit festgelegt. Nur diese dürfen Elemente anlegen, löschen und umbenennen.
ADMINISTRATION = *NONE
Es wird kein Administrationsrecht für diesen Typ vergeben. Es gilt die Einstellung für die Bibliothek.
ADMINISTRATION = *BY-GUARD(...)
Das Verwaltungsrecht für diesen Typ wird über einen GUARD geregelt.
GUARD-NAME = <filename 1..18 without-cat-gen-vers>
Name des GUARDs.
ADMINISTRATION = *PARAMETERS(...)
Angabe der Benutzerkreise und evtl. eines Kennwortes für die Verwaltung des angegebenen Typs.
USER = *UNCHANGED / *NONE / *ALL / list-poss(3): *OWNER / *GROUP / *OTHERS
Der Kreis der Verwaltungsberechtigten wird explizit aufgezählt.
USER = *NONE
Keiner darf verwalten.
USER = *ALL
Alle dürfen verwalten (komplette Aufzählung).
USER = *OWNER
Nur der Eigentümer der Bibliotheksdatei darf verwalten.
USER = *GROUP
Die Angehörigen der Gruppe des Eigentümers der Bibliotheksdatei dürfen verwalten.
USER = *OTHERS
Alle anderen dürfen verwalten.
PASSWORD = *UNCHANGED / *SECRET / *NONE / <c-string 1..4> /
<x-string 1..8> / <integer -2147483648..2147483647>
Der Kreis der Berechtigten wird weiter eingeschränkt. Zusätzlich zum notwendigen Zugriffsrecht wird das richtige Kennwort verlangt. Die Angabe 0 bzw. X’00000000’ führt nicht zu einer Änderung des letzten Wertes.
Die Angabe von *SECRET bzw. ^ ermöglicht die verdeckte Eingabe des gewünschten Kennwortes. Wird der „geheime“ Wert als c-string eingegeben, muss er in Hochkommata stehen. Wird er als x-string eingegeben, muss er ebenfalls in Hochkommata angegeben und ein X vorangestellt werden.
INIT-ELEM-PROTECTION = *UNCHANGED / *NONE/ *PARAMETERS(...)
Angabe des initialen Elementschutzes, der bei den unter obigen Typ neu angelegten Elementen eingetragen werden soll.
INIT-ELEM-PROTECTION = *NONE
Es wird kein initialer Schutz für diesen Elementtyp vereinbart.
INIT-ELEM-PROTECTION = *PARAMETERS(...)
Angabe der Schutzrechte, die der oben spezifizierte Typ erhalten soll.
READ = *UNCHANGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)
Ein initiales Leserecht wird explizit festgelegt.
READ = *NONE
Es wird keine weitere Zugriffseinschränkung vorgesehen.
READ = *BY-GUARD(...)
Angabe des GUARDs für das Leserecht.
GUARD-NAME = <filename 1..18 without-cat-gen-vers>
Name des GUARDs.
READ = *PARAMETERS(...)
Angabe der Benutzerkreise für das Leserecht.
USER = *UNCHANGED / *NONE / *ALL/ list-poss(3): *OWNER / *GROUP / *OTHERS
Der Kreis der Leseberechtigten wird explizit aufgezählt.
USER = *NONE
Keiner darf in der angegebenen Art zugreifen.
USER = *ALL
Alle dürfen in der angegebenen Art zugreifen (komplette Aufzählung).
USER = *OWNER
Der Eigentümer der Bibliotheksdatei darf zugreifen.
USER = *GROUP
Die Angehörigen der Gruppe des Eigentümers der Bibliotheksdatei dürfen zugreifen.
USER = *OTHERS
Alle anderen dürfen zugreifen.
PASSWORD = *UNCHANGED /*SECRET / *NONE / <c-string 1..4> /
<x-string 1..8> / <integer -2147483648..2147483647>
Der Kreis der Berechtigten wird weiter eingeschränkt. Zusätzlich zum notwendigen Zugriffsrecht wird das richtige Kennwort verlangt.
Die Angabe von *SECRET bzw. ^ ermöglicht die verdeckte Eingabe des gewünschten Kennwortes. Wird der „geheime“ Wert als c-string eingegeben, muss er in Hochkommata stehen. Wird er als x-string eingegeben, muss er ebenfalls in Hochkommata angegeben und ein X vorangestellt werden.
WRITE = *UNCHANGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)Ein initiales Schreibrecht wird explizit festgelegt.
Beschreibung der Operanden analog zu READ (siehe "MODIFY-TYPE-ATTRIBUTES Typattribute ändern").
EXEC = *UNCHANGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)Ein initiales Ausführungsrecht wird explizit festgelegt.
Beschreibung der Operanden analog zu READ.
HOLD = *UNCHANGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)Ein initiales Ausleihrecht wird explizit festgelegt.
Beschreibung der Operanden analog zu READ.
Anweisungs-Returncode
(SC2) | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler |
Notwendige Zugriffsrechte
Lese- und Schreibrecht für LIBRARY
Nur der Eigentümer der Bibliotheksdatei kann Attribute des Typs ändern.
Hinweis
Die Typattribute bleiben erhalten, auch wenn alle Elemente des Typs gelöscht werden.
Beispiel
Für eine Bibliothek X.1 soll gelten:
Es dürfen nur vorgegebene Typen verwendet werden.
Für alle Elemente des Typs S wird die Konvention STD-SEQUENCE mit dem Versions- Beispiel V001 eingestellt.
Dem benutzerdefinierten Typ USER1 soll der SUPER-TYPE ́S ́ zugewiesen werden.
//MODIFY-LIBRARY-ATTRIBUTES LIBRARY=X.1,- "Bibliothek X" // ADMIN=*PAR(USER=*NONE) "typspez. Einstellung" //MODIFY-TYPE-ATTRIBUTES TYPE=S,- "Standardtyp S" // SUPER-TYPE=*NONE,- "kein Supertyp" // CONVENTION=*STD-SEQUENCE - "Versionskonvention" // (EXAMPLE=V001),- "Defaultversion" // ADMIN=*PAR(USER=*ALL) "jeder darf verwalten" //MODIFY-TYPE-ATTRIBUTS TYPE=USER1,- "pro benutzerdef. Typ" // SUPER-TYPE=S,- "geeigneter Supertyp" // ADMIN=*PAR(USER=*UNCHANGED) "selektive Einstellung" //SHOW-TYPE-ATTRIBUTES TYPE=S INPUT LIBRARY= :1OSQ:$USER.X.1 TYPE = S SUPER-TYPE = *NONE BASE-TYPE = S CONVENTION = *STD-SEQUENCE EXAMPLE = V001 INIT-ELEM-P= *NONE ADMIN-PASS = *NONE ADMIN-USER = *OWNER *GROUP *OTHERS STORAGE = *NONE WR-CONTROL = *NONE
Ein weiteres Beispiel für den Elementschutz und Einstellung der Typattribute siehe "Schutzattribute vergeben und anzeigen".