PROVIDE reserves a member of a source library and makes a copy available in an output library. If write control is active, a reserved member is protected against modification by other users. If the appropriate convention is also set, the entire version space for the specified version is reserved for the holder.
ED1 specifies the source member, LD1 the source library, ED2 the target member and LD2 the target library. LD1 and LD2 may designate the same library. The complete type, name and version of the member must be specified.
There are four possible subcode specifications: UNUSE, INCP, HIGP and INCB
Subcode specifications other than UNUSE result in special treatment of the version specification (see "ED (Element Description)").
Moreover, the user can enter a date or time of day in the fields USER-DATE and USER-TIME of ED1. These fields must contain blanks if the date and time are to be copied from the input member.
The parameters OVERWRITE and DESTROY are interpreted.
OVERWRITE=EXTEND and OVERWRITE=NAME are not allowed.
The ED2.STORE-FORM field defines the storage mode for the member being added. The storage mode must not conflict with the type or library attribute settings, and all the members of one type and name must have the same storage mode. Delta members may be overwritten only if they are part of a delta tree.
STORE-FORM=FULL
The member is created in full storage mode (error if not allowed).
STORE-FORM=STD
The member is created in the storage mode appropriate to its scope. Conflicting requirements result in an error. If there are no special requirements, full storage mode is selected.
If the required storage mode is DELTA and the subcode is UNUSE, the base is defined as the standard base. With all other subcodes the base is defined by the ED2.VERSION specification.
STORE-FORM=DELTA
The member is created in delta storage mode (error if not allowed). This is a valid specification for members of types S, P, D, J, M and X and types derived from them. If the subcode is UNUSE, the ED3 descriptor defining the base member must also be specified. If version automation is used, ED3 is ignored and the base version must then be specified in ED2.
Handling of delta members without version automation
If the member is to be stored as a delta member, the following must be true:
ED2.STORE-FORM=DELTA, ED2.TYP=ED3.TYP, ED2.NAME=ED3.NAME
If the member is to be added as the first member of a delta tree, no member of the same type and name may exist and in addition the following must apply:
ED2.VERSION=ED3.VERSION
If the member is to be added as a subsequent member of a delta tree, ED3 must be used to specify the existing base member and the following must apply:
ED2.VERSION ? ED3.VERSION
Call parameters
The parameter structures must be given in the following sequence in the subroutine call.
Parameter | Field | Meaning |
CB | SCBVERSION FUNCTION SUBCODE ACC DESTROY OVERWRITE LD-RETURN | Function control block Interface version Function code X'1D' Version automation Subroutine access identification Physical overwriting Logical overwriting Full DMS file name in LD |
LD1 | PASSWORD LINK MAX-NAME-LEN NAME | Source library descriptor Password as per PASSWORD command Link name Maximum length of library name Library name |
ED1 | TYP NAME VERSION | Source member descriptor Member type Member name Member version |
LD2 | PASSWORD LINK MAX-NAME-LEN NAME | Target library descriptor Password as per PASSWORD command Link name Maximum length of library name Library name |
ED2 | TYP NAME VERSION STORE-FORM USER-DATE USER-TIME | Target member descriptor Member type Member name Member version Storage mode Date specified by user Time of day specified by user |
ED3 | TYP NAME VERSION | Base member descriptor if ED2.STORE-FORM = DELTA and subcode=blank Member type Member name Member version |
Return parameters
Parameter | Field | Meaning |
CB | RETURNCODE LMS-MSG DMS-MSG PLAM-MSG | Function control block Return code LMS message code DMS message code PLAM message code |
LD1 | NAME | Source library descriptor Full DMS file name of library (dependent on LD-RETURN field |
ED1 | VERSION | Source member descriptor Member version (if call used *HIGH) |
LD2 | NAME | Target library descriptor Full DMS file name of library (dependent on LD-RETURN field of CB) |
ED2 | VERSION | Target member descriptor Member version (with call using *HIGH or with version |