Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

MODIFY-TYPE-ATTRIBUTES

This statement can be used to set or modify certain attributes for the specified type:

  • the supertype

  • the applicable version convention

  • the storage form of the members

  • additional checks performed when members are generated or overwritten

  • the group of persons authorized to generate, delete and rename members

  • the initial member protection

At the beginning of the LMS run, the values immediately following *UNCHANGED apply. The default or current values can be output with the appropriate SHOW statement. .

MODIFY-TYPE-ATTRIBUTES

LIBRARY = *STD / <filename 1..54 without-vers> / *LINK(...)


*LINK(...)



|

LINK-NAME = <structured-name 1..8>

,TYPE = *LMS-DEF AULT / <alphanum-name 1..8>

,SUPER-TYPE = *UNCHA NGED / *NONE / <alphanum-name 1..8>

,CONVENTION = *UNCHA NGED / *NONE / *STD-TREE / *STD-SEQUENCE(...) / *MULTI-SEQUENCE(...)


*STD-SEQUENCE(...)



|

EXAMPLE = 001 / <composed-name 1..24 with-under>


*MULTI-SEQUENCE(...)



|

EXAMPLE = <composed-name 1..24 with-under>

,STORAGE-FORM = *UNCHA NGED / *NONE / *STD / *FULL / *DELTA

,WRITE-CONTROL = *UNCHA NGED / *NONE / *DEACTIVATE / *ACTIVATE

,ADMINISTRATION = *UNCHA NGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)


*BY-GUARD(...)



|

GUARD-NAME = <filename 1..18 without-cat-gen-vers>


*PARAMETERS(...)



|

USER = *UNCHA NGED / *NONE / *ALL / list-poss(3): *OWNER / *GROUP / *OTHERS



|

,PASSWORD = *UNCHA NGED / *SECRET / *NONE / <c-string 1..4> /



|


<x-string 1..8> / <integer -2147483648..2147483647>

,INIT-ELEM-PROTECTION = *UNCHA NGED / *NONE / *PARAMETERS(...)


*PARAMETERS(...)



|

READ = *UNCHA NGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)



|


*BY-GUARD(...)



|



|

GUARD-NAME = <filename 1..18 without-cat-gen-vers>



|


*PARAMETERS(...)



|



|

USER = *UNCHA NGED / *NONE / *ALL / list-poss(3): *OWNER / *GROUP / *OTHERS



|



|

,PASSWORD = *UNCHA NGED / *SECRET / *NONE / <c-string 1..4> /



|



|


<x-string 1..8> / <integer -2147483648..2147483647>



|

,WRITE = *UNCHA NGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)



|


*BY-GUARD(...)



|



|

GUARD-NAME = <filename 1..18 without-cat-gen-vers>



|


*PARAMETERS(...)



|



|

USER = *UNCHA NGED / *NONE / *ALL / list-poss(3): *OWNER / *GROUP / *OTHERS



|



|

,PASSWORD = *UNCHA NGED / *SECRET / *NONE / <c-string 1..4> /



|



|


<x-string 1..8> / <integer -2147483648..2147483647>



|

,EXEC = *UNCHA NGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)



|


*BY-GUARD(...)



|



|

GUARD-NAME = <filename 1..18 without-cat-gen-vers>



|


*PARAMETERS(...)



|



|

USER = *UNCHA NGED / *NONE / *ALL / list-poss(3): *OWNER / *GROUP / *OTHERS



|



|

,PASSWORD = *UNCHA NGED / *SECRET / *NONE / <c-string 1..4> /



|



|


<x-string 1..8> / <integer -2147483648..2147483647>



|

,HOLD = *UNCHA NGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)



|


*BY-GUARD(...)



|



|

GUARD-NAME = <filename 1..18 without-cat-gen-vers>



|


*PARAMETERS(...)



|



|

USER = *UNCHA NGED / *NONE / *ALL / list-poss(3): *OWNER / *GROUP / *OTHERS



|



|

,PASSWORD = *UNCHA NGED / *SECRET / *NONE / <c-string 1..4> /



|



|


<x-string 1..8> / <integer -2147483648..2147483647>

LIBRARY = *STD / <filename 1..54 without-vers> / *LINK(...)

Specifies the library in which the type attributes are to be defined.

LIBRARY = *STD
The library opened by OPEN-LIBRARY.

LIBRARY = <filename 1..54 without-vers>
Name of the library in which the type attributes are to be defined.

LIBRARY = *LINK(..)
The library assigned via the link name.

LINK-NAME = <structured-name 1..8>
Link name of the library; this name was defined by means of a /ADD-FILE-LINK command prior to calling LMS.

TYPE = *LMS-DEFAULT / <alphanum-name 1..8>
Member type whose attributes are to be set or modified.

SUPER-TYPE = *UNCHANGED / *NONE / <alphanum-name 1..8>
Name of the superordinate type.

SUPER-TYPE = *NONE
No superordinate type exists.

SUPER-TYPE = <alphanum-name 1..8>
Name of the superordinate type. The resulting graph must contain no cycles (tree).
No SUPER-TYPE can be defined for standard types (those with one-character designations) and types with designations beginning with $ or SYS. The values R, C and L are not allowed as SUPER-TYPEs.

CONVENTION = *UNCHANGED / *NONE / *STD-TREE / *STD-SEQUENCE(...) / *MULTI-SEQUENCE(...)
Version convention which is henceforth to apply to the specified type.

CONVENTION = *NONE
The version convention is removed from the specified type. This can be done at any time.

CONVENTION = *STD-TREE
The version convention *STD-TREE applies to the type concerned. It is not permissible to specify *STD-TREE if a member exists under the specified type.

CONVENTION = *STD-SEQUENCE(...)
The version convention *STD-SEQUENCE applies to the type concerned. All members of the type have the same version format, as specified by means of an example.
It is not permissible to specify *STD-SEQUENCE if a member exists under the specified type.

EXAMPLE = 001 / <composed-name 1..24 with-under>

Example for the version format. The format comprises a leading part, possibly empty, and the maximum-length concluding digit group, which must not be empty. For all versions under the type concerned, both these parts must have the same length as the example. The concluding digit group is used for automatic version incrementation.
If no explicit specification is made here, the value “001” is used as the example for the version format.

CONVENTION = *MULTI-SEQUENCE(...)
The *MULTI-SEQUENCE version convention only applies to the affected type. All
members of the type have the same version format. This is specified using an example. It is not permissible to specify *MULTI-SEQUENCE if a member exists under the specified type.

EXAMPLE = <composed-name 1..24 with-under>
Example for the version format. The format comprises a leading part, possibly empty, and the maximum-length concluding digit group, which must not be empty. For all versions under the type concerned, both these parts must have the same length as the example. The concluding digit group is used for automatic version incrementation.

STORAGE-FORM = *UNCHANGED / *NONE / *STD / *FULL / *DELTA
Permissible storage form for members of this type. Also, all members of the same type and name must have the same storage form.

STORAGE-FORM = *NONE
Both full storage and delta storage are permitted.

STORAGE-FORM = *STD
Both full storage and delta storage are permitted.

STORAGE-FORM = *FULL
Only full storage is permitted.

STORAGE-FORM = *DELTA
Only delta storage is permitted.

WRITE-CONTROL = *UNCHANGED / *NONE / *DEACTIVATE / *ACTIVATEAttribute for controlling additional checks.

WRITE-CONTROL = *NONE
The WRITE-CONTROL setting for the library applies.

WRITE-CONTROL = *DEACTIVATE
No additional checks are performed when generating or overwriting versions.

WRITE-CONTROL = *ACTIVATE
A version can be written only

  • if the USERID of the user wanting to write it is entered as the HOLDER in the relevant base version and

  • if either a new version is generated or the base version is overwritten.

For the first version of a name, no base yet exists; it can be generated only by persons with ADMIN authorization. Whenever versions are generated or overwritten, LMS automatically adds a type-2 record documenting the HOLDER=author and the DATE and TIME of the operation. In addition, the STATE and HOLDER attributes and all rights are applied to the new version, provided the current statement does not require different values.

ADMINISTRATION = *UNCHANGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)Administer authorization. The circle of those with administer authorization for this type is specified explicitly. Only these persons may create, delete and rename members.

ADMINISTRATION = *NONE
No administer authorization is granted for this type. The setting for the library applies.

ADMINISTRATION = *BY-GUARD(...)
The administer authorization for this type is controlled by means of a guard.

GUARD-NAME = <filename 1..18 without-cat-gen-vers>
Name of the guard.

ADMINISTRATION = *PARAMETERS(...)
Specifies the group of authorized users and perhaps a password for the administration of the specified type.

USER = *UNCHANGED / *NONE / *ALL / list-poss(3): *OWNER / *GROUP / *OTHERS
The circle of those with administer authorization is explicitly listed.

USER = *NONE
No one has administer authorization.

USER = *ALL
All users have administer authorization (full listing).

USER = *OWNER
Only the owner of the library file has administer authorization.

USER = *GROUP
Those belonging to the group of the owner of the library file have administer authorization.

USER = *OTHERS
All others have administer authorization.

PASSWORD = *UNCHANGED / *SECRET / *NONE / <c-string 1..4> / <x-string 1..8> / <integer -2147483648..2147483647>

The circle of authorized persons is further restricted. In addition to the necessary access right, the correct password is required. Specifying 0 or X’00000000’ does not cause the last value to be changed.
Specifying *SECRET or ^ allows the desired password to be entered invisibly. If the “secret” value is entered as a c-string, it must be enclosed in apostrophes. If it is entered as an x-string, it must similarly be enclosed in apostrophes and also be prefixed by
an X.

INIT-ELEM-PROTECTION = *UNCHANGED / *NONE/ *PARAMETERS(...)
Specifies the initial member protection that is to be entered for the members newly created under the above type.

INIT-ELEM-PROTECTION = *NONE
No initial protection is defined for this member type.

INIT-ELEM-PROTECTION = *PARAMETERS(...)
Specifies the protection rights that the type specified above is to receive.

READ = *UNCHANGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...) An initial read authorization is explicitly specified.

READ = *NONE
No further access restriction is provided.

READ = *BY-GUARD(...)
Specifies the read guard.

GUARD-NAME = <filename 1..18 without-cat-gen-vers>
Name of the guard.

READ = *PARAMETERS(...)
Specifies the user circles for the read authorization.

USER = *UNCHANGED / *NONE / *ALL/ list-poss(3): *OWNER / *GROUP / *OTHERS
The circle of those with read authorization is explicitly listed.

USER = *NONE
None may access in the specified manner.

USER = *ALL
All may access in the specified manner (full listing).

USER = *OWNER
The owner of the library file may access.

USER = *GROUP

Those belonging to the group of the owner of the library file may access.

USER = *OTHERS
All others may access.

PASSWORD = *UNCHANGED /*SECRET / *NONE / <c-string 1..4> /
<x-string 1..8> / <integer -2147483648..2147483647>
The circle of authorized persons is further restricted. In addition to the necessary access right, the correct password is required.
Specifying *SECRET or ^ allows the desired password to be entered invisibly. If the “secret” value is entered as a c-string, it must be enclosed in apostrophes. If it is entered as an x-string, it must similarly be enclosed in apostrophes and also be prefixed by an X.

WRITE = *UNCHANGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...) An initial write authorization is explicitly defined.
The operands are analogous to those described for READ, see "MODIFY-TYPE-ATTRIBUTES".

EXEC = *UNCHANGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)An initial execute authorization is explicitly defined.
The operands are analogous to those described for READ.

HOLD = *UNCHANGED / *NONE / *BY-GUARD(...) / *PARAMETERS(...)An initial hold authorization is explicitly defined.
The operands are analogous to those described for READ.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1
32
64
130
130
130

CMD0001
CMD0230
LMS1002
LMS1004
LMS0041
LMS0411
LMS0413

No error
Syntax error
Internal error
Other error
System address space exhausted
Library locked
Type locked

Required access rights

Read and write authorization for LIBRARY

Only the owner of the library file can modify attributes of the type.

Note

The type attributes are retained even if all the members of a given type are deleted.

Example

Three changes are to be made regarding library X.1:

  • Only specified types are to be permitted.

  • The STD-SEQUENCE convention with version example V001 is to be set for all S-type members.

  • The SUPER-TYPE ́S ́ is to be assigned to the user-defined type USER1.

//MODIFY-LIBRARY-ATTRIBUTES LIBRARY=X.1,-                "library X" 
//                       ADMIN=*PAR(USER=*NONE)          "type-specific setting" 
//MODIFY-TYPE-ATTRIBUTES TYPE=S,-                        "standard type S" 
//                       SUPER-TYPE=*NONE,-              "no supertype" 
//                       CONVENTION=*STD-SEQUENCE -      "version convention" 
//                                  (EXAMPLE=V001),-     "default version" 
//                       ADMIN=*PAR(USER=*ALL)           "everyone may administer" 
//MODIFY-TYPE-ATTRIBUTS TYPE=USER1,-                     "for user-defined type" 
//                       SUPER-TYPE=S,-                  "suitable supertype" 
//                       ADMIN=*PAR(USER=*UNCHANGED)     "selective setting" 
//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

For another example dealing with member protection and showing how to set type attributes, see "Granting and displaying protection attributes".